diff options
Diffstat (limited to 'src/software/providers/util/common.py')
-rw-r--r-- | src/software/providers/util/common.py | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/src/software/providers/util/common.py b/src/software/providers/util/common.py index 4190d41..4c73830 100644 --- a/src/software/providers/util/common.py +++ b/src/software/providers/util/common.py @@ -354,19 +354,20 @@ class SoftwarePackage: if not m: raise pywbem.CIMError(pywbem.CIM_ERR_INVALID_PARAMETER, "SoftwareElementID could not be parsed.") - match_props['nevra'] = _get_key('SoftwareElementID') - match_props['name'] = m.group('name') + for k in ('name', 'version', 'release', 'arch'): + mk = k if k not in ('version', 'release') else k[:3] + match_props[k] = m.group(mk) + if not m.group("epoch"): + match_props["epoch"] = "0" else: - for matchattr, instattr in ( - ('name', 'name'), ('epoch', 'epoch'), ('version', 'ver'), - ('release', 'rel'), ('arch', 'arch')): - if _get_key(matchattr): - match_props[matchattr] = _get_key(matchattr) + for k in ('name', 'epoch', 'version', 'release', 'arch'): + ik = k if k != 'arch' else "architecture" + if _get_key(ik): match_props[k] = _get_key(ik) if not match_props: raise pywbem.CIMError(pywbem.CIM_ERR_FAILED, "Too few key values given (give at least a Name).") - if not 'name' in match_props and not 'nevra' in match_props: + if not 'name' in match_props: raise pywbem.CIMError(pywbem.CIM_ERR_FAILED, "Missing either Name or SoftwareElementID property.") @@ -460,7 +461,7 @@ class SoftwareFileCheck: "File Type", "File Size", "File Mode", - "Checksum", + "File Checksum", "Device major/minor number", "Symlink Target", "User Ownership", "Group Ownership", @@ -652,7 +653,7 @@ class SoftwareFileCheck: """ FileCheck = collections.namedtuple('FileCheck', 'exists, md5_checksum, file_type, file_size, file_mode, ' - 'checksum, device, link_target, user_id, group_id, ' + 'file_checksum, device, link_target, user_id, group_id, ' 'last_modification_time') @staticmethod @@ -667,14 +668,14 @@ class SoftwareFileCheck: exists = os.path.lexists(vpf.filename) md5_checksum = None expected = { - "file_type" : SoftwareFileCheck.filetype_str2pywbem(vpf.ftype), - "user_id" : pywbem.Uint32(pwd.getpwnam(vpf.user).pw_uid), - "group_id" : pywbem.Uint32(grp.getgrnam(vpf.group).gr_gid), - "file_mode" : pywbem.Uint32(vpf.mode), - "file_size" : pywbem.Uint64(vpf.size), - "link_target" : vpf.readlink if vpf.readlink else None, - "checksum" : vpf.digest[1], - "device" : (pywbem.Uint64(vpf.dev) + "file_type" : SoftwareFileCheck.filetype_str2pywbem(vpf.ftype), + "user_id" : pywbem.Uint32(pwd.getpwnam(vpf.user).pw_uid), + "group_id" : pywbem.Uint32(grp.getgrnam(vpf.group).gr_gid), + "file_mode" : pywbem.Uint32(vpf.mode), + "file_size" : pywbem.Uint64(vpf.size), + "link_target" : vpf.readlink if vpf.readlink else None, + "file_checksum" : vpf.digest[1], + "device" : (pywbem.Uint64(vpf.dev) if vpf.ftype.endswith('device') else None), "last_modification_time" : pywbem.Uint64(vpf.mtime) } @@ -697,7 +698,7 @@ class SoftwareFileCheck: if os.path.islink(vpf.filename) else None) md5_checksum, checksum = SoftwareFileCheck.compute_checksums( env, checksum_type, reality["file_type"], vpf.filename) - reality["checksum"] = checksum + reality["file_checksum"] = checksum kwargs = dict(exists=exists, md5_checksum=md5_checksum, **dict((k, (expected[k], reality[k])) for k in expected)) return SoftwareFileCheck.FileCheck(**kwargs) @@ -769,7 +770,7 @@ class SoftwareFileCheck: #model['ElementName'] = '' # TODO #model['InstanceID'] = '' # TODO model['FileName'] = os.path.basename(vpf.filename) - model['ChecksumType'] = csumt = \ + model['FileChecksumType'] = csumt = \ pywbem.Uint16(SoftwareFileCheck.pkg_checksum_type(pkg)) if fc is None: fc = SoftwareFileCheck.test_file(env, csumt, vpf) @@ -781,7 +782,7 @@ class SoftwareFileCheck: ('LastModificationTime', 'last_modification_time'), ('FileSize', 'file_size'), ('LinkTarget', 'link_target'), - ('Checksum', 'checksum')): + ('FileChecksum', 'file_checksum')): exp, rea = getattr(fc, fattr) if exp is not None: model['Expected' + mattr] = exp |