summaryrefslogtreecommitdiffstats
path: root/src/lib/Client/Redhat.py
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2006-06-30 20:26:24 +0000
committerNarayan Desai <desai@mcs.anl.gov>2006-06-30 20:26:24 +0000
commit200a577626f891a6f2ca155d51f66914436a122f (patch)
treef5d747c868eb587d09ae73d78cf8832e4b11fe5b /src/lib/Client/Redhat.py
parentdae5ede5f40b3600f28cacab25414e954034b209 (diff)
downloadbcfg2-200a577626f891a6f2ca155d51f66914436a122f.tar.gz
bcfg2-200a577626f891a6f2ca155d51f66914436a122f.tar.bz2
bcfg2-200a577626f891a6f2ca155d51f66914436a122f.zip
Implement multiarch support (resolves Ticket #52)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1908 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/lib/Client/Redhat.py')
-rw-r--r--src/lib/Client/Redhat.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/Client/Redhat.py b/src/lib/Client/Redhat.py
index 80aa3a8c8..e980ad9c1 100644
--- a/src/lib/Client/Redhat.py
+++ b/src/lib/Client/Redhat.py
@@ -93,6 +93,19 @@ class ToolsetImpl(Toolset):
return False
if self.installed.has_key(entry.get('name')):
if entry.get('version') == self.installed[entry.get('name')]:
+ if entry.get('multiarch'):
+ archs = entry.get('multiarch').split()
+ info = self.saferun('rpm -q %s --qf "%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n"' % (entry.get('name')))[1]
+ while info:
+ (_, vers, arch) = info.pop()
+ if arch in archs:
+ archs.remove(arch)
+ else:
+ self.logger.error("Got pkg install for Package %s: arch %s" % (entry.get('name'), arch))
+ return False
+ if archs:
+ self.logger.error("Package %s not installed for arch: %s" % (entry.get('name'), archs))
+ return False
if (self.setup['quick'] or (entry.get('verify', 'true') == 'false')):
if entry.get('verify', 'true') == 'false':
self.logger.debug("Skipping checksum verification for package %s" % (entry.get('name')))