summaryrefslogtreecommitdiffstats
path: root/src/sbin/bcfg2-info
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-05-07 10:21:45 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-05-07 10:22:26 -0400
commitb70e9d2ebf5c4bfb9de7dc6a52cb870e15ec4db3 (patch)
treee3990b31384f90a92909aa927a0b783b602f039c /src/sbin/bcfg2-info
parentef6f78b2ef85ffd6c7e2a55247ce2238c3f874f0 (diff)
downloadbcfg2-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-xsrc/sbin/bcfg2-info30
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)