|
From: <jc...@us...> - 2007-12-17 23:44:31
|
Revision: 515
http://omc.svn.sourceforge.net/omc/?rev=515&view=rev
Author: jcarey
Date: 2007-12-17 15:44:33 -0800 (Mon, 17 Dec 2007)
Log Message:
-----------
Implemented the OMC_TimeServiceAccessBySAP association
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-17 22:51:17 UTC (rev 514)
+++ pybase/trunk/OMC_TimeService-peg.reg 2007-12-17 23:44:33 UTC (rev 515)
@@ -43,25 +43,25 @@
ProviderType = {2,5}; // Instance, Method
};
-/*
instance of PG_ProviderCapabilities
{
- CapabilityID = "OMC_TimeService_Capability3";
+ CapabilityID = "OMC_TimeService_Capability5";
ProviderModuleName = "OMC_TimeServiceProvider_Module";
ProviderName = "OMC_TimeService_Provider";
- ClassName = "OMC_TimeZoneSettingData";
+ ClassName = "OMC_TimeServiceAccessBySAP";
Namespaces = {"root/cimv2"};
- ProviderType = {2}; // Instance
+ ProviderType = {2,3}; // Instance, Associator
};
+/*
instance of PG_ProviderCapabilities
{
- CapabilityID = "OMC_TimeService_Capability5";
+ CapabilityID = "OMC_TimeService_Capability3";
ProviderModuleName = "OMC_TimeServiceProvider_Module";
ProviderName = "OMC_TimeService_Provider";
- ClassName = "OMC_TimeServiceAccessBySAP";
+ ClassName = "OMC_TimeZoneSettingData";
Namespaces = {"root/cimv2"};
- ProviderType = {2,3}; // Instance, Associator
+ ProviderType = {2}; // Instance
};
instance of PG_ProviderCapabilities
Modified: pybase/trunk/OMC_TimeService.py
===================================================================
--- pybase/trunk/OMC_TimeService.py 2007-12-17 22:51:17 UTC (rev 514)
+++ pybase/trunk/OMC_TimeService.py 2007-12-17 23:44:33 UTC (rev 515)
@@ -97,7 +97,7 @@
return server
- def fill_cim_instance(self, model, keys_only=False):
+ def fill_cim_obj(self, model, keys_only=False):
global ntp_inst_date
model['SystemName'] = _fqdn
model['SystemCreationClassName'] = 'OMC_UnitaryComputerSystem'
@@ -599,7 +599,6 @@
logger = env.get_logger()
logger.log_debug('Entering %s.get_instance()' \
% self.__class__.__name__)
- global ntp_inst_date
try:
server_name = model['Name']
except KeyError:
@@ -607,7 +606,7 @@
svr = NTPServer.get_server(server_name)
if not svr:
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
- return svr.fill_cim_instance(model, False)
+ return svr.fill_cim_obj(model, False)
###########################################################################
def enum_instances(self, env, model, cim_class, keys_only):
@@ -616,7 +615,7 @@
% self.__class__.__name__)
servers = NTPServer.get_servers()
for svr in servers:
- yield svr.fill_cim_instance(model, keys_only)
+ yield svr.fill_cim_obj(model, keys_only)
###########################################################################
def set_instance(self, env, instance, previous_instance, cim_class):
@@ -696,11 +695,121 @@
## 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()' \
+ % self.__class__.__name__)
+ try:
+ antref = model['Antecedent']
+ depref = model['Dependent']
+ except KeyError:
+ raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+ # Verify service ref
+ if not _is_service_ref(antref):
+ raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+
+ # Verify SAP ref
+ try:
+ server_name = depref['Name']
+ except KeyError:
+ raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND)
+ svr = NTPServer.get_server(server_name)
+ if not svr:
+ 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__)
+ ref = pywbem.CIMInstanceName(
+ classname='OMC_SystemTimeService',
+ namespace=model.path.namespace);
+ model['Antecedent'] = _fill_service_instance(ref, True)
+ ref = pywbem.CIMInstanceName(
+ classname='OMC_RemoteTimeServicePort',
+ namespace=model.path.namespace);
+ servers = NTPServer.get_servers()
+ for svr in servers:
+ 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()
+ 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() != 'antecedent':
+ return
+ if result_role and result_role.lower() != 'dependent':
+ return
+ if result_class_name and len(result_class_name):
+ if not pywbem.is_subclass(ch, object_name.namespace,
+ sub='OMC_RemoteTimeServicePort',
+ super=result_class_name):
+ return
+ model['Antecedent'] = object_name
+ ref = pywbem.CIMInstanceName(
+ classname='OMC_RemoteTimeServicePort',
+ namespace=object_name.namespace);
+ servers = NTPServer.get_servers()
+ for svr in servers:
+ model['Dependent'] = svr.fill_cim_obj(ref, True)
+ yield model
+ elif object_name.classname.lower() == 'omc_remotetimeserviceport':
+ if role and role.lower() != 'dependent':
+ return
+ if result_role and result_role.lower() != 'antecedent':
+ return
+ if result_class_name and len(result_class_name):
+ if not pywbem.is_subclass(ch, object_name.namespace,
+ sub='OMC_SystemTimeService',
+ super=result_class_name):
+ return
+ try:
+ server_name = object_name['Name']
+ except KeyError:
+ return
+ svr = NTPServer.get_server(server_name)
+ if not svr:
+ return
+ model['Dependent'] = object_name
+ ref = pywbem.CIMInstanceName(
+ classname='OMC_SystemTimeService',
+ namespace=object_name.namespace);
+ model['Antecedent'] = _fill_service_instance(ref, True)
+ yield model
+
+## end of class OMC_TimeServiceAccessBySAPProvider
+
def get_providers(env):
+ return {'OMC_TimeServiceAccessBySAP': omc_timeserviceaccessbysap_prov}
+
+def get_providers(env):
+ omc_timeserviceaccessbysap_prov = OMC_TimeServiceAccessBySAPProvider(env)
omc_remotetimeserviceport_prov = OMC_RemoteTimeServicePortProvider(env)
omc_systemtimeservice_prov = OMC_SystemTimeServiceProvider(env)
omc_hostedtimeservice_prov = OMC_HostedTimeServiceProvider(env)
return {'OMC_SystemTimeService': omc_systemtimeservice_prov,
'OMC_HostedTimeService': omc_hostedtimeservice_prov,
- 'OMC_RemoteTimeServicePort': omc_remotetimeserviceport_prov}
+ 'OMC_RemoteTimeServicePort': omc_remotetimeserviceport_prov,
+ 'OMC_TimeServiceAccessBySAP': omc_timeserviceaccessbysap_prov}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|