From 4ef9ef7772d2f06f924ab6c6d23f727aa36a825a Mon Sep 17 00:00:00 2001 From: Michal Minar Date: Thu, 4 Oct 2012 14:23:43 +0200 Subject: fixed check_integrity method made more generic checking of System property of YumInstalledPackage object paths --- src/yum/providers/LMI_YumInstalledPackage.py | 37 ++++++---------------------- 1 file changed, 7 insertions(+), 30 deletions(-) (limited to 'src/yum/providers/LMI_YumInstalledPackage.py') diff --git a/src/yum/providers/LMI_YumInstalledPackage.py b/src/yum/providers/LMI_YumInstalledPackage.py index f4c4cba..5a20b3c 100644 --- a/src/yum/providers/LMI_YumInstalledPackage.py +++ b/src/yum/providers/LMI_YumInstalledPackage.py @@ -24,20 +24,11 @@ Instruments the CIM class LMI_YumInstalledPackage import itertools import pywbem -import socket from pywbem.cim_provider2 import CIMProvider2 from LMI_YumPackage import pkg2model from LMI_YumFileCheck import filecheck2model from util.common import * -def get_computer_system_op(): - return pywbem.CIMInstanceName( - classname='CIM_ComputerSystem', - keybindings={ - "CreationClassName": "CIM_ComputerSystem" - , "Name" : socket.gethostname() }, - namespace="root/cimv2") - class LMI_YumInstalledPackage(CIMProvider2): """Instrument the CIM class LMI_YumInstalledPackage @@ -78,9 +69,7 @@ class LMI_YumInstalledPackage(CIMProvider2): logger.log_debug('Entering %s.get_instance()' \ % self.__class__.__name__) - if model['System'] != get_computer_system_op(): - raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND, - "Unknown \"System\"") + check_computer_system_op(env, model['System']) with YumDB.getInstance(env): pkg = YumPackage.object_path2pkg(env, model['Software']) model['Software'] = pkg2model(pkg, env, True) @@ -197,10 +186,7 @@ class LMI_YumInstalledPackage(CIMProvider2): logger.log_debug('Entering %s.delete_instance()' \ % self.__class__.__name__) - if instance_name['System'] != get_computer_system_op(): - raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND, - "Unknown \"System\"") - + check_computer_system_op(env, instance_name['System']) with YumDB.getInstance(env) as yb: pkg = YumPackage.object_path2pkg(env, instance_name["Software"]) logger.log_info('removing package "%s"' % pkg.nevra) @@ -326,17 +312,11 @@ class LMI_YumInstalledPackage(CIMProvider2): % self.__class__.__name__) failed = [] - with YumDB.getInstance(env): + with YumDB.getInstance(env) as yb: pkg = YumPackage.object_path2pkg(env, object_name['Software']) + csum = YumFileCheck.pkg_checksum_type(pkg) vpkg = yum.packages._RPMVerifyPackage( - pkg, pkg.hdr.fiFromHeader(), - pkg.yumdb_info.checksum_type, [], True) - filecheck_model = pywbem.CIMInstanceName( - classname='LMI_YumFileCheck', - namespace=object_name.namespace, - host=object_name.host) - csum = YumFileCheck.checksumtype_str2pywbem( - pkg.yumdb_info.checksum_type) + pkg, pkg.hdr.fiFromHeader(), csum, [], True) for vpf in vpkg: fc = YumFileCheck.test_file(env, csum, vpf) if ( fc.exists @@ -344,8 +324,7 @@ class LMI_YumInstalledPackage(CIMProvider2): for v in fc if isinstance(v, tuple))): continue failed.append(filecheck2model( - vpkg, vpf.filename, env, keys_only=True, - model=filecheck_model, fc=fc)) + vpkg, vpf.filename, env, keys_only=True, fc=fc)) out_params = [ pywbem.CIMParameter('Failed', type='reference', value=failed) ] return ( getattr(self.Values.CheckIntegrity, @@ -400,9 +379,7 @@ class LMI_YumInstalledPackage(CIMProvider2): logger.log_debug('Entering %s.cim_method_update()' \ % self.__class__.__name__) - if object_name['System'] != get_computer_system_op(): - raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND, - "Unknown \"System\"") + check_computer_system_op(env, object_name['System']) with YumDB.getInstance(env) as yb: orig = YumPackage.object_path2pkg(env, object_name['Software']) -- cgit