summaryrefslogtreecommitdiffstats
path: root/src/yum/providers/util/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/yum/providers/util/common.py')
-rw-r--r--src/yum/providers/util/common.py45
1 files changed, 19 insertions, 26 deletions
diff --git a/src/yum/providers/util/common.py b/src/yum/providers/util/common.py
index 0cd5116..ba0d16d 100644
--- a/src/yum/providers/util/common.py
+++ b/src/yum/providers/util/common.py
@@ -38,7 +38,7 @@ import singletonmixin
re_evra = re.compile(r'^(?P<epoch>\d+):(?P<ver>[^-]+)'
r'-(?P<rel>.+)\.(?P<arch>[^.]+)$')
-re_nevra = re.compile(r'^(?P<name>.+)-(?P<evra>(?P<epoch>\d+):(?P<ver>[^-]+)'
+re_nevra = re.compile(r'^(?P<name>.+)-(?P<evra>((?P<epoch>\d+):)?(?P<ver>[^-]+)'
r'-(?P<rel>.+)\.(?P<arch>[^.]+))$')
rpmdb_path = '/var/lib/rpm/Packages'
@@ -601,18 +601,14 @@ class YumPackage:
if not m:
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
"Wrong SotwareElementID. Expected valid nevra"
- " (name-epoch:version-release.arch).")
+ " (name-[epoch:]version-release.arch).")
if op['Version'] != m.group('ver'):
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
"Version does not match version part in SoftwareElementID.")
- kwargs = dict((k, m.group(k)) for k in
- ('name', 'epoch', 'ver', 'rel', 'arch'))
+ evra = "{}:{}-{}.{}".format(*(
+ (m.group(k) if k != "epoch" or m.group(k) else "0")
+ for k in ("epoch", 'ver', 'rel', 'arch')))
with YumDB.getInstance(env) as yb:
- if ( package_list == 'installed'
- and not yb.rpmdb.installed(**kwargs)):
- raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "Package not installed")
-
pl = yb.doPackageLists(package_list,
showdups=package_list != 'installed')
if package_list != 'all':
@@ -622,10 +618,10 @@ class YumPackage:
pl = itertools.chain(pl.available, pl.installed)
exact,_,_ = yum.packages.parsePackages(pl, [op['Name']])
for pkg in yum.misc.unique(exact):
- if pkg.evra == m.group('evra'): break
+ if pkg.evra == evra: break
else:
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "No matching package found")
+ "No matching package found.")
return pkg
@staticmethod
@@ -928,29 +924,26 @@ class YumFileCheck:
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
"Version does not match version part in SoftwareElementID.")
- kwargs = dict((k, m.group(k)) for k in
- ('name', 'epoch', 'ver', 'rel', 'arch'))
+ evra = "{}:{}-{}.{}".format(*(
+ (m.group(k) if k != "epoch" or m.group(k) else "0")
+ for k in ("epoch", 'ver', 'rel', 'arch')))
with YumDB.getInstance(env) as yb:
- if not yb.rpmdb.installed(**kwargs):
- raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "Package not installed")
-
pl = yb.doPackageLists('installed')
exact, matched, unmatched = yum.packages.parsePackages(
- pl.installed, [kwargs['name']])
+ pl.installed, [m.group('name')])
exact = yum.misc.unique(exact)
for pkg in exact:
- if pkg.evra == m.group('evra'): break
+ if pkg.evra == evra: break
else:
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "No matching package installed")
+ "No matching package installed.")
- fi = pkg.hdr.fiFromHeader()
- vpkg = yum.packages._RPMVerifyPackage(pkg, fi,
- YumFileCheck.pkg_checksum_type(pkg), [], True)
- if not op['Name'] in vpkg:
- raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "File not found in RPM package")
+ fi = pkg.hdr.fiFromHeader()
+ vpkg = yum.packages._RPMVerifyPackage(pkg, fi,
+ YumFileCheck.pkg_checksum_type(pkg), [], True)
+ if not op['Name'] in vpkg:
+ raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
+ "File not found in RPM package.")
return vpkg
"""