diff options
Diffstat (limited to 'src/software/openlmi/software/LMI_SoftwarePackageChecks.py')
-rw-r--r-- | src/software/openlmi/software/LMI_SoftwarePackageChecks.py | 63 |
1 files changed, 21 insertions, 42 deletions
diff --git a/src/software/openlmi/software/LMI_SoftwarePackageChecks.py b/src/software/openlmi/software/LMI_SoftwarePackageChecks.py index a2f798b..facf90e 100644 --- a/src/software/openlmi/software/LMI_SoftwarePackageChecks.py +++ b/src/software/openlmi/software/LMI_SoftwarePackageChecks.py @@ -26,12 +26,12 @@ Instruments the CIM class LMI_SoftwarePackageChecks """ import pywbem +import yum from pywbem.cim_provider2 import CIMProvider2 -from openlmi.software.LMI_SoftwareFileCheck import filecheck2model -from openlmi.software.LMI_SoftwarePackage import pkg2model -from openlmi.software.util.common import * +from openlmi.software.util import common +from openlmi.software.util.common import (SoftwarePackage, SoftwareFileCheck) -class LMI_SoftwarePackageChecks(CIMProvider2): +class LMI_SoftwarePackageChecks(CIMProvider2): #pylint: disable=R0904 """Instrument the CIM class LMI_SoftwarePackageChecks This association ties a SoftwareElement to a specific Check to validate @@ -81,9 +81,11 @@ class LMI_SoftwarePackageChecks(CIMProvider2): raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND, "Missing Element property.") vpkg = SoftwareFileCheck.object_path2yumcheck(env, model['Check']) - model['Check'] = filecheck2model(vpkg, model['Check']['Name'], + model['Check'] = SoftwareFileCheck.filecheck2model( + vpkg, model['Check']['Name'], env, keys_only=True) - model['Element'] = pkg2model(env, vpkg.po, keys_only=True) + model['Element'] = SoftwarePackage.pkg2model( + env, vpkg.po, keys_only=True) return model def enum_instances(self, env, model, keys_only): @@ -112,26 +114,8 @@ class LMI_SoftwarePackageChecks(CIMProvider2): logger = env.get_logger() logger.log_debug('Entering %s.enum_instances()' \ % self.__class__.__name__) - - # Prime model.path with knowledge of the keys, so key values on - # the CIMInstanceName (model.path) will automatically be set when - # we set property values on the model. - model.path.update({'Check': None, 'Element': None}) - - while False: # TODO more instances? - # TODO fetch system resource - # Key properties - #model['Check'] = pywbem.CIMInstanceName(classname='LMI_SoftwareFileCheck', ...) # TODO (type = REF (pywbem.CIMInstanceName(classname='LMI_SoftwareFileCheck', ...)) - #model['Element'] = pywbem.CIMInstanceName(classname='LMI_SoftwarePackage', ...) # TODO (type = REF (pywbem.CIMInstanceName(classname='LMI_SoftwarePackage', ...)) - if keys_only: - yield model - else: - try: - yield self.get_instance(env, model) - except pywbem.CIMError, (num, msg): - if num not in (pywbem.CIM_ERR_NOT_FOUND, - pywbem.CIM_ERR_ACCESS_DENIED): - raise + raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED, + "Enumeration of instances is not supported.") def set_instance(self, env, instance, modify_existing): """Return a newly created or modified instance. @@ -163,9 +147,7 @@ class LMI_SoftwarePackageChecks(CIMProvider2): logger = env.get_logger() logger.log_debug('Entering %s.set_instance()' \ % self.__class__.__name__) - # TODO create or modify the instance - raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED) # Remove to implement - return instance + raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED) def delete_instance(self, env, instance_name): """Delete an instance. @@ -192,9 +174,7 @@ class LMI_SoftwarePackageChecks(CIMProvider2): logger = env.get_logger() logger.log_debug('Entering %s.delete_instance()' \ % self.__class__.__name__) - - # TODO delete the resource - raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED) # Remove to implement + raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED) def references(self, env, object_name, model, result_class_name, role, result_role, keys_only): @@ -258,16 +238,16 @@ class LMI_SoftwarePackageChecks(CIMProvider2): logger = env.get_logger() logger.log_debug('Entering %s.references()' \ % self.__class__.__name__) - ch = env.get_cimom_handle() + cimhandle = env.get_cimom_handle() # Prime model.path with knowledge of the keys, so key values on # the CIMInstanceName (model.path) will automatically be set when # we set property values on the model. model.path.update({'Check': None, 'Element': None}) - with YumDB.getInstance(env): + with common.YumDB.getInstance(env): if ( (not role or role.lower() == 'element') - and ch.is_subclass(object_name.namespace, + and cimhandle.is_subclass(object_name.namespace, sub=object_name.classname, super='LMI_SoftwarePackage')): filecheck_model = pywbem.CIMInstanceName( @@ -280,20 +260,20 @@ class LMI_SoftwarePackageChecks(CIMProvider2): vpkg = yum.packages._RPMVerifyPackage( pkg, pkg.hdr.fiFromHeader(), SoftwareFileCheck.pkg_checksum_type(pkg), [], True) - for fc in vpkg: - model['Check'] = filecheck2model( - vpkg, fc.filename, env, keys_only=True, + for file_check in vpkg: + model['Check'] = SoftwareFileCheck.filecheck2model( + vpkg, file_check.filename, env, keys_only=True, model=filecheck_model) yield model if ( (not role or role.lower() == 'check') - and ch.is_subclass(object_name.namespace, + and cimhandle.is_subclass(object_name.namespace, sub=object_name.classname, super='LMI_SoftwareFileCheck')): model['Check'] = object_name vpkg = SoftwareFileCheck.object_path2yumcheck(env, object_name) - model['Element'] = pkg2model( + model['Element'] = SoftwarePackage.pkg2model( env, vpkg.po, keys_only=True) yield model @@ -304,8 +284,7 @@ class LMI_SoftwarePackageChecks(CIMProvider2): ## end of class LMI_SoftwarePackageChecksProvider -## get_providers() for associating CIM Class Name to python provider class name - def get_providers(env): + """Associates CIM Class Name to python provider class name""" lmi_softwarepackagechecks_prov = LMI_SoftwarePackageChecks(env) return {'LMI_SoftwarePackageChecks': lmi_softwarepackagechecks_prov} |