summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client/Tools/RPM.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-03-21 14:35:04 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-03-21 14:35:04 -0400
commit38f99b402d3118e2c26ff42d72ddf9b666adac13 (patch)
tree705d18bed66337192816325facb1733280291ff5 /src/lib/Bcfg2/Client/Tools/RPM.py
parenta3f2a731bbef5d9c2033eed23432aa7792d47989 (diff)
parent71d7285c405bd639f1f9f2642ea8fb567b97caec (diff)
downloadbcfg2-38f99b402d3118e2c26ff42d72ddf9b666adac13.tar.gz
bcfg2-38f99b402d3118e2c26ff42d72ddf9b666adac13.tar.bz2
bcfg2-38f99b402d3118e2c26ff42d72ddf9b666adac13.zip
Merge branch '1.3.2' into maint
Conflicts: src/lib/Bcfg2/Client/Tools/__init__.py src/sbin/bcfg2-test testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/Test__init.py testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIXUsers.py testsuite/Testsrc/test_code_checks.py
Diffstat (limited to 'src/lib/Bcfg2/Client/Tools/RPM.py')
-rw-r--r--src/lib/Bcfg2/Client/Tools/RPM.py67
1 files changed, 31 insertions, 36 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/RPM.py b/src/lib/Bcfg2/Client/Tools/RPM.py
index 3d93149ff..a4dd2b730 100644
--- a/src/lib/Bcfg2/Client/Tools/RPM.py
+++ b/src/lib/Bcfg2/Client/Tools/RPM.py
@@ -80,13 +80,12 @@ class RPM(Bcfg2.Client.Tools.PkgTool):
# Many, if not most package verifies can be caused by out of
# date prelinking.
if os.path.isfile('/usr/sbin/prelink') and not self.setup['dryrun']:
- cmdrc, output = self.cmd.run('/usr/sbin/prelink -a -mR')
- if cmdrc == 0:
+ rv = self.cmd.run('/usr/sbin/prelink -a -mR')
+ if rv.success:
self.logger.debug('Pre-emptive prelink succeeded')
else:
# FIXME : this is dumb - what if the output is huge?
- self.logger.error('Pre-emptive prelink failed: %s' % output)
-
+ self.logger.error('Pre-emptive prelink failed: %s' % rv.error)
def RefreshPackages(self):
"""
@@ -593,29 +592,26 @@ class RPM(Bcfg2.Client.Tools.PkgTool):
# Fix installOnlyPackages
if len(install_only_pkgs) > 0:
self.logger.info("Attempting to install 'install only packages'")
- install_args = " ".join([os.path.join(self.instance_status[inst].get('pkg').get('uri'), \
- inst.get('simplefile')) \
- for inst in install_only_pkgs])
- self.logger.debug("rpm --install --quiet --oldpackage %s" % install_args)
- cmdrc, output = self.cmd.run("rpm --install --quiet --oldpackage --replacepkgs %s" % \
- install_args)
- if cmdrc == 0:
+ install_args = \
+ " ".join(os.path.join(self.instance_status[inst].get('pkg').get('uri'),
+ inst.get('simplefile'))
+ for inst in install_only_pkgs)
+ if self.cmd.run("rpm --install --quiet --oldpackage --replacepkgs "
+ "%s" % install_args):
# The rpm command succeeded. All packages installed.
self.logger.info("Single Pass for InstallOnlyPkgs Succeded")
self.RefreshPackages()
-
else:
# The rpm command failed. No packages installed.
# Try installing instances individually.
self.logger.error("Single Pass for InstallOnlyPackages Failed")
installed_instances = []
for inst in install_only_pkgs:
- install_args = os.path.join(self.instance_status[inst].get('pkg').get('uri'), \
- inst.get('simplefile'))
- self.logger.debug("rpm --install --quiet --oldpackage %s" % install_args)
- cmdrc, output = self.cmd.run("rpm --install --quiet --oldpackage --replacepkgs %s" % \
- install_args)
- if cmdrc == 0:
+ install_args = \
+ os.path.join(self.instance_status[inst].get('pkg').get('uri'),
+ inst.get('simplefile'))
+ if self.cmd.run("rpm --install --quiet --oldpackage "
+ "--replacepkgs %s" % install_args):
installed_instances.append(inst)
else:
self.logger.debug("InstallOnlyPackage %s %s would not install." % \
@@ -632,15 +628,15 @@ class RPM(Bcfg2.Client.Tools.PkgTool):
self.logger.info("Installing GPG keys.")
key_arg = os.path.join(self.instance_status[inst].get('pkg').get('uri'), \
inst.get('simplefile'))
- cmdrc, output = self.cmd.run("rpm --import %s" % key_arg)
- if cmdrc != 0:
- self.logger.debug("Unable to install %s-%s" % \
- (self.instance_status[inst].get('pkg').get('name'), \
- self.str_evra(inst)))
+ if not self.cmd.run("rpm --import %s" % key_arg):
+ self.logger.debug("Unable to install %s-%s" %
+ (self.instance_status[inst].get('pkg').get('name'),
+ self.str_evra(inst)))
else:
- self.logger.debug("Installed %s-%s-%s" % \
- (self.instance_status[inst].get('pkg').get('name'), \
- inst.get('version'), inst.get('release')))
+ self.logger.debug("Installed %s-%s-%s" %
+ (self.instance_status[inst].get('pkg').get('name'),
+ inst.get('version'),
+ inst.get('release')))
self.RefreshPackages()
self.gpg_keyids = self.getinstalledgpg()
pkg = self.instance_status[gpg_keys[0]].get('pkg')
@@ -652,13 +648,12 @@ class RPM(Bcfg2.Client.Tools.PkgTool):
upgrade_args = " ".join([os.path.join(self.instance_status[inst].get('pkg').get('uri'), \
inst.get('simplefile')) \
for inst in upgrade_pkgs])
- cmdrc, output = self.cmd.run("rpm --upgrade --quiet --oldpackage --replacepkgs %s" % \
- upgrade_args)
- if cmdrc == 0:
+ if self.cmd.run("rpm --upgrade --quiet --oldpackage --replacepkgs "
+ "%s" % upgrade_args):
# The rpm command succeeded. All packages upgraded.
self.logger.info("Single Pass for Upgraded Packages Succeded")
- upgrade_pkg_set = set([self.instance_status[inst].get('pkg') \
- for inst in upgrade_pkgs])
+ upgrade_pkg_set = set([self.instance_status[inst].get('pkg')
+ for inst in upgrade_pkgs])
self.RefreshPackages()
else:
# The rpm command failed. No packages upgraded.
@@ -670,13 +665,13 @@ class RPM(Bcfg2.Client.Tools.PkgTool):
inst.get('simplefile'))
#self.logger.debug("rpm --upgrade --quiet --oldpackage --replacepkgs %s" % \
# upgrade_args)
- cmdrc, output = self.cmd.run("rpm --upgrade --quiet --oldpackage --replacepkgs %s" % upgrade_args)
- if cmdrc == 0:
+ if self.cmd.run("rpm --upgrade --quiet --oldpackage "
+ "--replacepkgs %s" % upgrade_args):
upgraded_instances.append(inst)
else:
- self.logger.debug("Package %s %s would not upgrade." % \
- (self.instance_status[inst].get('pkg').get('name'), \
- self.str_evra(inst)))
+ self.logger.debug("Package %s %s would not upgrade." %
+ (self.instance_status[inst].get('pkg').get('name'),
+ self.str_evra(inst)))
upgrade_pkg_set = set([self.instance_status[inst].get('pkg') \
for inst in upgrade_pkgs])