From 58b874d34e37d802799afa33a218eedb0e4778ec Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Thu, 24 Sep 2009 07:04:55 +0000 Subject: Packages: immediately add dependencies for packages added as single-choice virtual deps (Resolves Ticket #745) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5459 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Packages.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/lib/Server/Plugins') diff --git a/src/lib/Server/Plugins/Packages.py b/src/lib/Server/Plugins/Packages.py index 800be5bab..80ed089b6 100644 --- a/src/lib/Server/Plugins/Packages.py +++ b/src/lib/Server/Plugins/Packages.py @@ -133,6 +133,8 @@ class Source(object): while work: item = work.pop() seen.add(item) + if debug: + logger.debug("Handling pkg %s" % item) item_is_pkg = self.is_package(metadata, item) try: pset = self.get_provides(metadata, item) @@ -158,10 +160,17 @@ class Source(object): % (list(pset), item)) if len(pset) == 1: + provider = list(pset)[0] if debug: logger.debug("Using package %s for requirement %s" \ - % (list(pset)[0], item)) + % (provider, item)) work.update(pset.difference(newpkg)) + # add deps for provider + try: + newdeps = set(self.get_deps(metadata, provider)) + work.update(newdeps.difference(newpkg)) + except NoData: + pass else: if True in [p in newpkg for p in pset]: # dep satisfied -- cgit v1.2.3-1-g7c22