From 445d65f4093ffb0b5f03c427711e7c8a9e348ee6 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 19 Feb 2015 02:21:02 +0100 Subject: Client/Tools: Report the version of extra packages as current_version. The version of extra packages should be reported as current_version and not as target_version. --- src/lib/Bcfg2/Client/Tools/APT.py | 4 ++-- src/lib/Bcfg2/Client/Tools/Pkgng.py | 4 ++-- src/lib/Bcfg2/Client/Tools/__init__.py | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Client/Tools/APT.py b/src/lib/Bcfg2/Client/Tools/APT.py index aaeb969e3..9ff77d310 100644 --- a/src/lib/Bcfg2/Client/Tools/APT.py +++ b/src/lib/Bcfg2/Client/Tools/APT.py @@ -94,8 +94,8 @@ class APT(Bcfg2.Client.Tools.Tool): packages = [entry.get('name') for entry in self.getSupportedEntries()] extras = [(p.name, p.installed.version) for p in self.pkg_cache if p.is_installed and p.name not in packages] - return [Bcfg2.Client.XML.Element('Package', name=name, - type='deb', version=version) + return [Bcfg2.Client.XML.Element('Package', name=name, type='deb', + current_version=version) for (name, version) in extras] def VerifyDebsums(self, entry, modlist): diff --git a/src/lib/Bcfg2/Client/Tools/Pkgng.py b/src/lib/Bcfg2/Client/Tools/Pkgng.py index 8989e084d..08f7dc517 100644 --- a/src/lib/Bcfg2/Client/Tools/Pkgng.py +++ b/src/lib/Bcfg2/Client/Tools/Pkgng.py @@ -66,8 +66,8 @@ class Pkgng(Bcfg2.Client.Tools.Tool): packages = [entry.get('name') for entry in self.getSupportedEntries()] extras = [(name, value) for (name, value) in self.pkg_cache.items() if name not in packages] - return [Bcfg2.Client.XML.Element('Package', name=name, - type='pkgng', version=version) + return [Bcfg2.Client.XML.Element('Package', name=name, type='pkgng', + current_version=version) for (name, version) in extras] def VerifyChecksums(self, entry, modlist): diff --git a/src/lib/Bcfg2/Client/Tools/__init__.py b/src/lib/Bcfg2/Client/Tools/__init__.py index aaadc1428..2e3421840 100644 --- a/src/lib/Bcfg2/Client/Tools/__init__.py +++ b/src/lib/Bcfg2/Client/Tools/__init__.py @@ -503,7 +503,8 @@ class PkgTool(Tool): extras = [data for data in list(self.installed.items()) if data[0] not in packages] return [Bcfg2.Client.XML.Element('Package', name=name, - type=self.pkgtype, version=version) + type=self.pkgtype, + current_version=version) for (name, version) in extras] FindExtra.__doc__ = Tool.FindExtra.__doc__ -- cgit v1.2.3-1-g7c22 From 115c7368fc133d556e8635236e89bf8ecf5c6989 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 19 Feb 2015 02:22:44 +0100 Subject: Reporting/Storage: Fix handling of extra packages. The code before for extra packages only worked for rpms because it only evaluated the version information of the contained tag and droped the package if no one was avilable. Now the handling of is optional and the package is imported everytime. --- src/lib/Bcfg2/Reporting/Storage/DjangoORM.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py index 96226c424..efd9e594c 100644 --- a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py +++ b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py @@ -109,8 +109,8 @@ class DjangoORM(StorageBase): # extra entries are a bit different. They can have Instance # objects if not act_dict['target_version']: - for instance in entry.findall("Instance"): - # FIXME - this probably only works for rpms + instance = entry.find("Instance") + if instance: release = instance.get('release', '') arch = instance.get('arch', '') act_dict['current_version'] = instance.get('version') @@ -118,9 +118,8 @@ class DjangoORM(StorageBase): act_dict['current_version'] += "-" + release if arch: act_dict['current_version'] += "." + arch - self.logger.debug("Adding package %s %s" % - (name, act_dict['current_version'])) - return PackageEntry.entry_get_or_create(act_dict) + self.logger.debug("Adding extra package %s %s" % + (name, act_dict['current_version'])) else: self.logger.debug("Adding package %s %s" % (name, act_dict['target_version'])) @@ -128,7 +127,7 @@ class DjangoORM(StorageBase): # not implemented yet act_dict['verification_details'] = \ entry.get('verification_details', '') - return PackageEntry.entry_get_or_create(act_dict) + return PackageEntry.entry_get_or_create(act_dict) def _import_Path(self, entry, state): name = entry.get('name') -- cgit v1.2.3-1-g7c22