summaryrefslogtreecommitdiffstats
path: root/src/software/openlmi/software/yumdb/jobs.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/software/openlmi/software/yumdb/jobs.py')
-rw-r--r--src/software/openlmi/software/yumdb/jobs.py30
1 files changed, 28 insertions, 2 deletions
diff --git a/src/software/openlmi/software/yumdb/jobs.py b/src/software/openlmi/software/yumdb/jobs.py
index 5195f50..966e625 100644
--- a/src/software/openlmi/software/yumdb/jobs.py
+++ b/src/software/openlmi/software/yumdb/jobs.py
@@ -534,14 +534,40 @@ class YumCheckPackage(YumSpecificPackageJob): #pylint: disable=R0903
"""
Request verification information for instaled package and its files.
- Worker replies with new instance of yumdb.PackageCheck.
+ Arguments:
+ pkg - either instance of PackageInfo or nevra string.
+ In latter case it will be replaced for YumWorker with instance
+ of PackageInfo.
+
+ Worker replies with ``(pkg_info, pkg_check)``.
+ where:
+ ``pkg_info`` - is instance of PackageInfo
+ ``pkg_check`` - new instance of yumdb.PackageCheck
"""
def __init__(self, pkg, async=False, metadata=None):
YumSpecificPackageJob.__init__(self, pkg, async=async,
metadata=metadata)
- if not pkg.installed:
+ if isinstance(pkg, PackageInfo) and not pkg.installed:
raise ValueError("package must be installed to check it")
+class YumCheckPackageFile(YumCheckPackage): #pylint: disable=R0903
+ """
+ Request verification information for particular file of installed
+ package.
+
+ Worker replies with ``(pkg_info, pkg_check)``.
+ where:
+ ``pkg_info`` - is instance of PackageInfo
+ ``pkg_check`` - new instance of yumdb.PackageCheck containing only
+ requested file.
+ """
+ __slots__ = ('file_name', )
+ def __init__(self, pkg, file_name, *args, **kwargs):
+ YumCheckPackage.__init__(self, pkg, *args, **kwargs)
+ if not isinstance(file_name, basestring):
+ raise TypeError("file_name must be string")
+ self.file_name = file_name
+
class YumInstallPackageFromURI(YumAsyncJob): #pylint: disable=R0903
"""
Job requesting installation of specific package from URI.