summaryrefslogtreecommitdiffstats
path: root/src/lib/Client/Tools
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2010-12-08 21:38:29 -0600
committerNarayan Desai <desai@mcs.anl.gov>2010-12-08 21:38:29 -0600
commitdfcabfcbfc6970c526c80e6f688744966e532c66 (patch)
tree7994cc2d40fcb4bbc4e3c3a508d8f4c26a13ce30 /src/lib/Client/Tools
parent19dd6674fe58f3f83a5fa85d2f8ebacf2bfd5e13 (diff)
parentd08c7ba3ca269639edd8e7696558c74bc06fb487 (diff)
downloadbcfg2-dfcabfcbfc6970c526c80e6f688744966e532c66.tar.gz
bcfg2-dfcabfcbfc6970c526c80e6f688744966e532c66.tar.bz2
bcfg2-dfcabfcbfc6970c526c80e6f688744966e532c66.zip
Merge branch 'master' of git.mcs.anl.gov:bcfg2
Diffstat (limited to 'src/lib/Client/Tools')
-rw-r--r--src/lib/Client/Tools/Pacman.py22
-rw-r--r--src/lib/Client/Tools/YUMng.py7
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 != []: