diff options
Diffstat (limited to 'src/lib/Client/Tools')
-rw-r--r-- | src/lib/Client/Tools/Pacman.py | 22 | ||||
-rw-r--r-- | src/lib/Client/Tools/YUMng.py | 7 |
2 files changed, 16 insertions, 13 deletions
diff --git a/src/lib/Client/Tools/Pacman.py b/src/lib/Client/Tools/Pacman.py index a9edc4d65..be3fb0c94 100644 --- a/src/lib/Client/Tools/Pacman.py +++ b/src/lib/Client/Tools/Pacman.py @@ -1,8 +1,7 @@ """This is the bcfg2 support for pacman""" import Bcfg2.Client.Tools -import Bcfg2.Options -import Bcfg2.Client.Tools + class Pacman(Bcfg2.Client.Tools.PkgTool): '''Archlinux package support''' @@ -31,7 +30,8 @@ class Pacman(Bcfg2.Client.Tools.PkgTool): def VerifyPackage(self, entry, modlist): '''Verify Package status for entry''' - print "VerifyPackage : " + entry.get('name')+ " : " + entry.get('version') + self.logger.info("VerifyPackage : %s : %s" % entry.get('name'), + entry.get('version')) if not 'version' in entry.attrib: self.logger.info("Cannot verify unversioned package %s" % @@ -44,8 +44,8 @@ class Pacman(Bcfg2.Client.Tools.PkgTool): elif self.installed[entry.attrib['name']] == entry.attrib['version']: #if not self.setup['quick'] and \ # entry.get('verify', 'true') == 'true': - #FIXME: We should be able to check this once - # http://trac.macports.org/ticket/15709 is implemented + #FIXME: need to figure out if pacman + # allows you to verify packages return True else: entry.set('current_version', self.installed[entry.get('name')]) @@ -76,11 +76,7 @@ class Pacman(Bcfg2.Client.Tools.PkgTool): print "packages : " + pkgline try: - self.logger.debug('Running Pacman.Install()') - print "running : %s -S %s" % (self.pkgtool, pkgline) - s = self.cmd.run("%s -S %s" % (self.pkgtool, pkgline)) - print "pacman : " + str(s) - except Exception as ex: - print "error in cmd.run ", ex - - self.logger.debug('Running Pacman.Install()') + self.logger.debug("Running : %s -S %s" % (self.pkgtool, pkgline)) + self.cmd.run("%s -S %s" % (self.pkgtool, pkgline)) + except Exception, e: + self.logger.error("Error occurred during installation: %s" % e) diff --git a/src/lib/Client/Tools/YUMng.py b/src/lib/Client/Tools/YUMng.py index 9cdcdca40..f0d906717 100644 --- a/src/lib/Client/Tools/YUMng.py +++ b/src/lib/Client/Tools/YUMng.py @@ -210,6 +210,8 @@ class YUMng(Bcfg2.Client.Tools.PkgTool): "version_fail_action", "upgrade").lower() == "upgrade" self.doReinst = CP.get(self.name, "verify_fail_action", "reinstall").lower() == "reinstall" + self.verifyFlags = CP.get(self.name, "verify_flags", + "").lower().replace(' ', ',') self.installOnlyPkgs = self.yb.conf.installonlypkgs if 'gpg-pubkey' not in self.installOnlyPkgs: @@ -225,6 +227,7 @@ class YUMng(Bcfg2.Client.Tools.PkgTool): % self.doReinst) self.logger.debug("YUMng: installOnlyPkgs: %s" \ % str(self.installOnlyPkgs)) + self.logger.debug("YUMng: verify_flags: %s" % self.verifyFlags) def _fixAutoVersion(self, entry): # old style entry; synthesize Instances from current installed @@ -436,6 +439,8 @@ class YUMng(Bcfg2.Client.Tools.PkgTool): stat['verify_fail'] = False stat['pkg'] = entry stat['modlist'] = modlist + verify_flags = inst.get('verify_flags', self.verifyFlags) + verify_flags = verify_flags.lower().replace(' ', ',').split(',') if len(POs) == 0: # Package not installed @@ -505,6 +510,8 @@ class YUMng(Bcfg2.Client.Tools.PkgTool): for p in probs: if p.type == 'missing' and os.path.islink(fn): continue + elif 'no' + p.type in verify_flags: + continue if p.type not in ['missingok', 'ghost']: tmp.append((p.type, p.message)) if tmp != []: |