diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-05-07 10:21:45 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-05-07 10:22:26 -0400 |
commit | b70e9d2ebf5c4bfb9de7dc6a52cb870e15ec4db3 (patch) | |
tree | e3990b31384f90a92909aa927a0b783b602f039c /src/sbin/bcfg2-info | |
parent | ef6f78b2ef85ffd6c7e2a55247ce2238c3f874f0 (diff) | |
download | bcfg2-b70e9d2ebf5c4bfb9de7dc6a52cb870e15ec4db3.tar.gz bcfg2-b70e9d2ebf5c4bfb9de7dc6a52cb870e15ec4db3.tar.bz2 bcfg2-b70e9d2ebf5c4bfb9de7dc6a52cb870e15ec4db3.zip |
bcfg2-info: running packageresolve with no packages uses the actual package list of the host
Diffstat (limited to 'src/sbin/bcfg2-info')
-rwxr-xr-x | src/sbin/bcfg2-info | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/sbin/bcfg2-info b/src/sbin/bcfg2-info index ac4c3af13..6aafd24d1 100755 --- a/src/sbin/bcfg2-info +++ b/src/sbin/bcfg2-info @@ -627,30 +627,34 @@ Bcfg2 client itself.""") self.fam.debug = True def do_packageresolve(self, args): - """ packageresolve <hostname> <package> [<package>...] - - Resolve the specified set of packages """ + """ packageresolve <hostname> [<package> [<package>...]] - + Resolve packages for the given host, optionally specifying a + set of packages """ arglist = args.split(" ") - if len(arglist) < 2: + if len(arglist) < 1: print(self._get_usage(self.do_packageresolve)) return - if 'Packages' not in self.plugins: + try: + pkgs = self.plugins['Packages'] + except KeyError: print("Packages plugin not enabled") return - self.plugins['Packages'].toggle_debug() - - indep = lxml.etree.Element("Independent") - structures = [lxml.etree.Element("Bundle", name="packages")] - for arg in arglist[1:]: - lxml.etree.SubElement(structures[0], "Package", name=arg) + pkgs.toggle_debug() hostname = arglist[0] metadata = self.build_metadata(hostname) - # pylint: disable=W0212 - self.plugins['Packages']._build_packages(metadata, indep, structures) - # pylint: enable=W0212 + indep = lxml.etree.Element("Independent") + if len(arglist) > 1: + structures = [lxml.etree.Element("Bundle", name="packages")] + for arg in arglist[1:]: + lxml.etree.SubElement(structures[0], "Package", name=arg) + else: + structures = self.GetStructures(metadata) + pkgs._build_packages(metadata, indep, # pylint: disable=W0212 + structures) print("%d new packages added" % len(indep.getchildren())) if len(indep.getchildren()): print(" %s" % "\n ".join(lxml.etree.tostring(p) |