diff options
Diffstat (limited to 'src/software/openlmi/software/yumdb/jobs.py')
-rw-r--r-- | src/software/openlmi/software/yumdb/jobs.py | 30 |
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. |