| 
     
      
      
      From: <jc...@us...> - 2007-12-18 18:46:27
      
     
   | 
Revision: 518
          http://omc.svn.sourceforge.net/omc/?rev=518&view=rev
Author:   jcarey
Date:     2007-12-18 10:46:31 -0800 (Tue, 18 Dec 2007)
Log Message:
-----------
Implemented the time service available to element association. TimeService providers now complete
Modified Paths:
--------------
    pybase/trunk/OMC_TimeService-peg.reg
    pybase/trunk/OMC_TimeService.py
Modified: pybase/trunk/OMC_TimeService-peg.reg
===================================================================
--- pybase/trunk/OMC_TimeService-peg.reg	2007-12-18 18:15:00 UTC (rev 517)
+++ pybase/trunk/OMC_TimeService-peg.reg	2007-12-18 18:46:31 UTC (rev 518)
@@ -73,7 +73,6 @@
     ProviderType = {2,3}; // Instance, Associator
 };
 
-/*
 instance of PG_ProviderCapabilities
 {
     CapabilityID = "OMC_TimeService_Capability7";
@@ -84,7 +83,6 @@
     ProviderType = {2,3}; // Instance, Associator
 };
 
-*/
 
 
 
@@ -93,4 +91,3 @@
 
 
 
-
Modified: pybase/trunk/OMC_TimeService.py
===================================================================
--- pybase/trunk/OMC_TimeService.py	2007-12-18 18:15:00 UTC (rev 517)
+++ pybase/trunk/OMC_TimeService.py	2007-12-18 18:46:31 UTC (rev 518)
@@ -563,7 +563,7 @@
                 return
             if result_role and result_role.lower() != 'dependent':
                 return
-            if result_class:
+            if result_class_name:
                 if not pywbem.is_subclass(env.get_cimom_handle(),
                         object_name.namespace, sub='omc_systemtimeservice',
                         super=result_class_name):
@@ -698,14 +698,17 @@
 
 ## end of class OMC_RemoteTimeServicePortProvider
 
+###############################################################################
 class OMC_TimeServiceAccessBySAPProvider(pywbem.CIMProvider):
     """Instrument the CIM class OMC_TimeServiceAccessBySAP"""
 
+    ###########################################################################
     def __init__ (self, env):
         logger = env.get_logger()
         logger.log_debug('Initializing provider %s from %s' \
                 % (self.__class__.__name__, __file__))
 
+    ###########################################################################
     def get_instance(self, env, model, cim_class):
         logger = env.get_logger()
         logger.log_debug('Entering %s.get_instance()' \
@@ -729,6 +732,7 @@
             raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
         return model
 
+    ###########################################################################
     def enum_instances(self, env, model, cim_class, keys_only):
         logger = env.get_logger()
         logger.log_debug('Entering %s.enum_instances()' \
@@ -745,12 +749,15 @@
             model['Dependent'] = svr.fill_cim_obj(ref, True)
             yield model
 
+    ###########################################################################
     def set_instance(self, env, instance, previous_instance, cim_class):
         raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED)
 
+    ###########################################################################
     def delete_instance(self, env, instance_name):
         raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED)
         
+    ###########################################################################
     def references(self, env, object_name, model, assoc_class,
                    result_class_name, role, result_role, keys_only):
         logger = env.get_logger()
@@ -802,14 +809,17 @@
             yield model
 ## end of class OMC_TimeServiceAccessBySAPProvider
 
+###############################################################################
 class OMC_TimeZoneSettingDataProvider(pywbem.CIMProvider):
     """Instrument the CIM class OMC_TimeZoneSettingData"""
 
+    ###########################################################################
     def __init__ (self, env):
         logger = env.get_logger()
         logger.log_debug('Initializing provider %s from %s' \
                 % (self.__class__.__name__, __file__))
 
+    ###########################################################################
     def get_instance(self, env, model, cim_class):
         logger = env.get_logger()
         logger.log_debug('Entering %s.get_instance()' \
@@ -830,6 +840,7 @@
         model['Description'] = 'Local time zone for the system'
         return model
 
+    ###########################################################################
     def enum_instances(self, env, model, cim_class, keys_only):
         logger = env.get_logger()
         logger.log_debug('Entering %s.enum_instances()' \
@@ -846,6 +857,7 @@
             model['Description'] = 'Local time zone for the system'
         yield model
 
+    ###########################################################################
     def set_instance(self, env, instance, previous_instance, cim_class):
         logger = env.get_logger()
         logger.log_debug('Entering %s.set_instance()' \
@@ -903,45 +915,73 @@
             raise einst
         return instance
 
+    ###########################################################################
     def delete_instance(self, env, instance_name):
         raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED)
         
 ## end of class OMC_TimeZoneSettingDataProvider
 
+###############################################################################
 class OMC_TimeServiceTimeZoneSettingDataProvider(pywbem.CIMProvider):
     """Instrument the CIM class OMC_TimeServiceTimeZoneSettingData"""
+
+    ###########################################################################
     def __init__ (self, env):
         logger = env.get_logger()
         logger.log_debug('Initializing provider %s from %s' \
                 % (self.__class__.__name__, __file__))
 
+    ###########################################################################
     def get_instance(self, env, model, cim_class):
         logger = env.get_logger()
         logger.log_debug('Entering %s.get_instance()' \
                 % self.__class__.__name__)
-        # TODO
+        try:
+            srvref = model['managedelement']
+            if not _is_service_ref(srvref):
+                raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+            sdref = model['settingdata']
+            if sdref['InstanceID'].lower() != 'omc:timezone':
+                raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+        except KeyError:
+            raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+        model['IsDefault'] = pywbem.Uint16(0)
+        model['IsCurrent'] = pywbem.Uint16(1)
         return model
 
+    ###########################################################################
     def enum_instances(self, env, model, cim_class, keys_only):
-        # TODO
-        if False:
-            yield None
+        logger = env.get_logger()
+        logger.log_debug('Entering %s.enum_instances()' \
+                % self.__class__.__name__)
+        model['settingdata'] = pywbem.CIMInstanceName(
+            classname='OMC_TimeZoneSettingData',
+            namespace=model.path.namespace,
+            keybindings={'InstanceID':'omc:timezone'})
+        ref = pywbem.CIMInstanceName(classname='OMC_SystemTimeService',
+            namespace=model.path.namespace)
+        model['managedelement'] = _fill_service_instance(ref, True)
+        if not keys_only:
+            model['IsDefault'] = pywbem.Uint16(0)
+            model['IsCurrent'] = pywbem.Uint16(1)
+        yield model
 
+    ###########################################################################
     def set_instance(self, env, instance, previous_instance, cim_class):
         raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED)
 
+    ###########################################################################
     def delete_instance(self, env, instance_name):
         raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED)
         
+    ###########################################################################
     def references(self, env, object_name, model, assoc_class,
                    result_class_name, role, result_role, keys_only):
-        print '#### my references called'
         logger = env.get_logger()
         logger.log_debug('Entering %s.references()' \
                 % self.__class__.__name__)
         ch = env.get_cimom_handle()
         if object_name.classname.lower() == 'omc_systemtimeservice':
-            print '#### my references the service!'
             if role and role.lower() != 'managedelement':
                 return
             if result_role and result_role.lower() != 'settingdata':
@@ -958,6 +998,8 @@
                 classname='OMC_TimeZoneSettingData',
                 namespace=object_name.namespace,
                 keybindings={'InstanceID':'omc:timezone'})
+            model['IsDefault'] = pywbem.Uint16(0)
+            model['IsCurrent'] = pywbem.Uint16(1)
             yield model
         elif object_name.classname.lower() == 'omc_timezonesettingdata':
             if role and role.lower() != 'settingdata':
@@ -970,22 +1012,119 @@
                         super=result_class_name):
                     return
             try:
-                print '### object_name[instanceid] =',object_name['instanceid']
                 if object_name['InstanceID'].lower() != 'omc:timezone':
-                    print '### No match on instance id'
                     return
             except KeyError:
-                print '### KeyError on instance id'
                 return
             model['settingdata'] = object_name
             ref = pywbem.CIMInstanceName(classname='OMC_SystemTimeService',
                 namespace=object_name.namespace)
             model['managedelement'] = _fill_service_instance(ref, True)
+            model['IsDefault'] = pywbem.Uint16(0)
+            model['IsCurrent'] = pywbem.Uint16(1)
             yield model
 
 ## end of class OMC_TimeServiceTimeZoneSettingDataProvider
 
+###############################################################################
+class OMC_TimeServiceAvailableToElementProvider(pywbem.CIMProvider):
+    """Instrument the CIM class OMC_TimeServiceAvailableToElement"""
+
+    ###########################################################################
+    def __init__ (self, env):
+        logger = env.get_logger()
+        logger.log_debug('Initializing provider %s from %s' \
+                % (self.__class__.__name__, __file__))
+
+    ###########################################################################
+    def get_instance(self, env, model, cim_class):
+        logger = env.get_logger()
+        logger.log_debug('Entering %s.get_instance()' \
+                % self.__class__.__name__)
+        try:
+            tsref = model['serviceprovided']
+            if not _is_service_ref(tsref):
+                raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+            csref = model['userofservice']
+            if not _is_cs_ref(csref):
+                raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+        except KeyError:
+            raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+        return model
+
+    ###########################################################################
+    def enum_instances(self, env, model, cim_class, keys_only):
+        logger = env.get_logger()
+        logger.log_debug('Entering %s.enum_instances()' \
+                % self.__class__.__name__)
+        model['userofservice'] = pywbem.CIMInstanceName(
+            classname='OMC_UnitaryComputerSystem',
+            namespace=model.path.namespace,
+            keybindings={'CreationClassName':'OMC_UnitaryComputerSystem',
+                'Name':_fqdn})
+        ref = pywbem.CIMInstanceName(classname='OMC_SystemTimeService',
+                namespace=model.path.namespace)
+        model['serviceprovided'] = _fill_service_instance(ref, True)
+        yield model
+
+    ###########################################################################
+    def set_instance(self, env, instance, previous_instance, cim_class):
+        raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED)
+
+    ###########################################################################
+    def delete_instance(self, env, instance_name):
+        raise pywbem.CIMError(pywbem.CIM_ERR_NOT_SUPPORTED)
+        
+    ###########################################################################
+    def references(self, env, object_name, model, assoc_class,
+                   result_class_name, role, result_role, keys_only):
+        logger = env.get_logger()
+        logger.log_debug('Entering %s.references()' \
+                % self.__class__.__name__)
+        ch = env.get_cimom_handle()
+        if object_name.classname.lower() == 'omc_systemtimeservice':
+            if role and role.lower() != 'serviceprovided':
+                return
+            if result_role and result_role.lower() != 'userofservice':
+                return
+            if result_class_name:
+                if not pywbem.is_subclass(ch, object_name.namespace, 
+                        sub='omc_unitarycomputersystem',
+                        super=result_class_name):
+                    return
+            if not _is_service_ref(object_name):
+                return
+            model['serviceprovided'] = object_name
+            model['userofservice'] = pywbem.CIMInstanceName(
+                classname='OMC_UnitaryComputerSystem',
+                namespace=object_name.namespace,
+                keybindings={'CreationClassName':'OMC_UnitaryComputerSystem',
+                    'Name':_fqdn})
+            yield model
+
+        elif object_name.classname.lower() == 'omc_unitarycomputersystem':
+            if role and role.lower() != 'userofservice':
+                return
+            if result_role and result_role.lower() != 'serviceprovided':
+                return
+            if result_class_name:
+                if not pywbem.is_subclass(ch, object_name.namespace, 
+                        sub='omc_systemtimeservice',
+                        super=result_class_name):
+                    return
+            if not _is_cs_ref(object_name):
+                return
+            model['userofservice'] = object_name
+            ref = pywbem.CIMInstanceName(classname='OMC_SystemTimeService',
+                    namespace=object_name.namespace)
+            model['serviceprovided'] = _fill_service_instance(ref, True)
+            yield model
+
+## end of class OMC_TimeServiceAvailableToElementProvider
+
+###############################################################################
 def get_providers(env): 
+    omc_timeserviceavailabletoelement_prov = OMC_TimeServiceAvailableToElementProvider(env)  
     omc_timeservicetimezonesettingdata_prov = OMC_TimeServiceTimeZoneSettingDataProvider(env)  
     omc_timezonesettingdata_prov = OMC_TimeZoneSettingDataProvider(env)  
     omc_timeserviceaccessbysap_prov = OMC_TimeServiceAccessBySAPProvider(env)  
@@ -997,5 +1136,6 @@
         'OMC_RemoteTimeServicePort': omc_remotetimeserviceport_prov,
         'OMC_TimeServiceAccessBySAP': omc_timeserviceaccessbysap_prov,
         'OMC_TimeZoneSettingData': omc_timezonesettingdata_prov,
-        'OMC_TimeServiceTimeZoneSettingData': omc_timeservicetimezonesettingdata_prov} 
+        'OMC_TimeServiceTimeZoneSettingData': omc_timeservicetimezonesettingdata_prov,
+        'OMC_TimeServiceAvailableToElement': omc_timeserviceavailabletoelement_prov}
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |