|
From: <jc...@us...> - 2007-12-14 20:10:07
|
Revision: 510
http://omc.svn.sourceforge.net/omc/?rev=510&view=rev
Author: jcarey
Date: 2007-12-14 12:10:09 -0800 (Fri, 14 Dec 2007)
Log Message:
-----------
Implemented the OMC_HostedTimeService association
Modified Paths:
--------------
pybase/trunk/OMC_TimeService-peg.reg
pybase/trunk/OMC_TimeService.py
pybase/trunk/OMC_TimeService.reg
Modified: pybase/trunk/OMC_TimeService-peg.reg
===================================================================
--- pybase/trunk/OMC_TimeService-peg.reg 2007-12-14 16:24:00 UTC (rev 509)
+++ pybase/trunk/OMC_TimeService-peg.reg 2007-12-14 20:10:09 UTC (rev 510)
@@ -18,39 +18,40 @@
CapabilityID = "OMC_TimeService_Capability1";
ProviderModuleName = "OMC_TimeServiceProvider_Module";
ProviderName = "OMC_TimeService_Provider";
- ClassName = "OMC_TimeService";
+ ClassName = "OMC_SystemTimeService";
Namespaces = {"root/cimv2"};
ProviderType = {2,5}; // Instance, Method
};
instance of PG_ProviderCapabilities
{
- CapabilityID = "OMC_TimeService_Capability2";
+ CapabilityID = "OMC_TimeService_Capability4";
ProviderModuleName = "OMC_TimeServiceProvider_Module";
ProviderName = "OMC_TimeService_Provider";
- ClassName = "OMC_RemoteTimeServicePort";
+ ClassName = "OMC_HostedTimeService";
Namespaces = {"root/cimv2"};
- ProviderType = {2,5}; // Instance, Method
+ ProviderType = {2,3}; // Instance, Associator
};
+/*
instance of PG_ProviderCapabilities
{
- CapabilityID = "OMC_TimeService_Capability3";
+ CapabilityID = "OMC_TimeService_Capability2";
ProviderModuleName = "OMC_TimeServiceProvider_Module";
ProviderName = "OMC_TimeService_Provider";
- ClassName = "OMC_TimeZoneSettingData";
+ ClassName = "OMC_RemoteTimeServicePort";
Namespaces = {"root/cimv2"};
- ProviderType = {2}; // Instance
+ ProviderType = {2,5}; // Instance, Method
};
instance of PG_ProviderCapabilities
{
- CapabilityID = "OMC_TimeService_Capability4";
+ CapabilityID = "OMC_TimeService_Capability3";
ProviderModuleName = "OMC_TimeServiceProvider_Module";
ProviderName = "OMC_TimeService_Provider";
- ClassName = "OMC_HostedTimeService";
+ ClassName = "OMC_TimeZoneSettingData";
Namespaces = {"root/cimv2"};
- ProviderType = {2,3}; // Instance, Associator
+ ProviderType = {2}; // Instance
};
instance of PG_ProviderCapabilities
@@ -83,6 +84,7 @@
ProviderType = {2,3}; // Instance, Associator
};
+*/
@@ -92,4 +94,3 @@
-
Modified: pybase/trunk/OMC_TimeService.py
===================================================================
--- pybase/trunk/OMC_TimeService.py 2007-12-14 16:24:00 UTC (rev 509)
+++ pybase/trunk/OMC_TimeService.py 2007-12-14 20:10:09 UTC (rev 510)
@@ -6,6 +6,7 @@
_fqdn = socket.getfqdn()
+###############################################################################
def _clock_conf_key_value(line):
tline = line.strip(' \n\r')
if not len(tline) or tline.startswith('#'):
@@ -17,6 +18,7 @@
return (key,value)
return None
+###############################################################################
def _clock_conf_get_time_zone():
is_utc = False
timezone = ''
@@ -42,6 +44,7 @@
finally:
f.close()
+###############################################################################
def _clock_conf_modify(is_utc, timezone):
modified = False
tfname = None
@@ -80,6 +83,16 @@
pass
raise einst
+###############################################################################
+def _is_cs_ref(model):
+ if 'CreationClassName' not in model \
+ or 'Name' not in model:
+ return False
+ if model['CreationClassName'].lower() != 'omc_unitarycomputersystem':
+ return False
+ return model['Name'].lower() == _fqdn.lower()
+
+###############################################################################
def _is_service_ref(model):
for nm in ['SystemCreationClassName', 'SystemName', 'CreationClassName', 'Name']:
if nm not in model:
@@ -92,6 +105,7 @@
return False
return model['Name'].lower() == 'timeservice'
+###############################################################################
def _fill_service_instance(model, keys_only):
model['SystemCreationClassName'] = 'OMC_UnitaryComputerSystem'
model['SystemName'] = _fqdn
@@ -112,9 +126,11 @@
model['StartMode'] = 'Automatic'
return model
-class OMC_TimeServiceProvider(pywbem.CIMProvider):
- """Instrument the CIM class OMC_TimeService"""
+###############################################################################
+class OMC_SystemTimeServiceProvider(pywbem.CIMProvider):
+ """Instrument the CIM class OMC_SystemTimeService"""
+ ###########################################################################
def __init__ (self, env):
logger = env.get_logger()
logger.log_debug('Initializing provider %s from %s' \
@@ -124,6 +140,7 @@
# parameters, set self.filter_results to False
# self.filter_results = False
+ ###########################################################################
def get_instance(self, env, model, cim_class):
logger = env.get_logger()
logger.log_debug('Entering %s.get_instance()' \
@@ -132,36 +149,40 @@
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
return _fill_service_instance(model, False)
+ ###########################################################################
def enum_instances(self, env, model, cim_class, keys_only):
logger = env.get_logger()
logger.log_debug('Entering %s.enum_instances()' \
% self.__class__.__name__)
yield _fill_service_instance(model, keys_only)
+ ###########################################################################
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 cim_method_requeststatechange(self, env, object_name, method,
- param_requestedstate,
- param_timeoutperiod):
+ param_requestedstate, param_timeoutperiod):
# Not supported
return (pywbem.Uint32(1), {})
+ ###########################################################################
def cim_method_startservice(self, env, object_name, method):
# Not supported
return (pywbem.Uint32(1), {})
+ ###########################################################################
def cim_method_stopservice(self, env, object_name, method):
# Not supported
return (pywbem.Uint32(1), {})
+ ###########################################################################
def cim_method_managetime(self, env, object_name, method,
- param_timedata,
- param_getrequest,
- param_managedelement):
+ param_timedata, param_getrequest, param_managedelement):
logger = env.get_logger()
logger.log_debug('Entering %s.cim_method_managetime()' \
% self.__class__.__name__)
@@ -219,8 +240,97 @@
'time' % str(inst))
return (pywbem.Uint32(0), {})
-## end of class OMC_TimeServiceProvider
+## end of class OMC_SystemTimeServiceProvider
+###############################################################################
+class OMC_HostedTimeServiceProvider(pywbem.CIMProvider):
+ """Instrument the CIM class OMC_HostedTimeService"""
+
+ ###########################################################################
+ def __init__ (self, env):
+ logger = env.get_logger()
+ logger.log_debug('Initializing provider %s from %s' \
+ % (self.__class__.__name__, __file__))
+ # If you will be filtering instances yourself according to
+ # property_list, role, result_role, and result_class_name
+ # parameters, set self.filter_results to False
+ # self.filter_results = False
+
+ ###########################################################################
+ def get_instance(self, env, model, cim_class):
+ # TODO
+ logger = env.get_logger()
+ logger.log_debug('Entering %s.get_instance()' \
+ % self.__class__.__name__)
+ return model
+
+ ###########################################################################
+ def enum_instances(self, env, model, cim_class, keys_only):
+ # TODO
+ logger = env.get_logger()
+ logger.log_debug('Entering %s.enum_instances()' \
+ % self.__class__.__name__)
+ if False:
+ yield None
+
+ ###########################################################################
+ 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 not _is_service_ref(object_name):
+ return
+ if role and role.lower() != 'dependent':
+ return
+ if result_role and result_role.lower() != 'antecedent':
+ return
+ if result_class_name:
+ if not pywbem.is_subclass(env.get_cimom_handle(),
+ object_name.namespace, sub='omc_unitarycomputersystem',
+ super=result_class_name):
+ return
+ model['Dependent'] = object_name
+ model['Antecedent'] = 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 not _is_cs_ref(object_name):
+ return
+ if role and role.lower() != 'antecedent':
+ return
+ if result_role and result_role.lower() != 'dependent':
+ return
+ if result_class:
+ if not pywbem.is_subclass(env.get_cimom_handle(),
+ object_name.namespace, sub='omc_systemtimeservice',
+ super=result_class_name):
+ return
+ model['Antecedent'] = object_name
+ ref = pywbem.CIMInstanceName(classname='OMC_SystemTimeService',
+ namespace=object_name.namespace)
+ model['Dependent'] = _fill_service_instance(ref, True)
+ yield model
+
+## end of class OMC_HostedTimeServiceProvider
+
def get_providers(env):
- omc_timeservice_prov = OMC_TimeServiceProvider(env)
- return {'OMC_TimeService': omc_timeservice_prov}
+ omc_systemtimeservice_prov = OMC_SystemTimeServiceProvider(env)
+ omc_hostedtimeservice_prov = OMC_HostedTimeServiceProvider(env)
+ return {'OMC_SystemTimeService': omc_systemtimeservice_prov,
+ 'OMC_HostedTimeService': omc_hostedtimeservice_prov}
+
Modified: pybase/trunk/OMC_TimeService.reg
===================================================================
--- pybase/trunk/OMC_TimeService.reg 2007-12-14 16:24:00 UTC (rev 509)
+++ pybase/trunk/OMC_TimeService.reg 2007-12-14 20:10:09 UTC (rev 510)
@@ -3,7 +3,7 @@
{
InstanceID = "OMC_TimeService:0001";
NamespaceNames = {"root/cimv2"};
- ClassName = "OMC_TimeService";
+ ClassName = "OMC_SystemTimeService";
ProviderTypes = {1,6}; // Instance, Method
ModulePath = "/usr/lib/pycim/OMC_TimeService.py";
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|