version 1.114, 2008/12/16 18:56:34
|
version 1.114.2.1, 2010/07/07 07:34:37
|
|
|
*/ | */ |
static const CIMName _START_PROVIDER = CIMNameCast("Start"); | static const CIMName _START_PROVIDER = CIMNameCast("Start"); |
| |
|
/** |
|
setting provider module group method |
|
*/ |
|
static const CIMName _SET_MODULEGROUPNAME = CIMNameCast("SetModuleGroupName"); |
|
|
|
/** |
|
input param for setModuleGroupName name method |
|
*/ |
|
static const CIMName _PARAM_MODULEGROUPNAME = CIMNameCast("ModuleGroupName"); |
|
|
|
|
ProviderRegistrationProvider::ProviderRegistrationProvider( | ProviderRegistrationProvider::ProviderRegistrationProvider( |
ProviderRegistrationManager * providerRegistrationManager) | ProviderRegistrationManager * providerRegistrationManager) |
{ | { |
|
|
} | } |
} | } |
| |
|
|
// if _PROPERTY_PROVIDERMODULE_NAME key not found | // if _PROPERTY_PROVIDERMODULE_NAME key not found |
if( !moduleFound) | if( !moduleFound) |
{ | { |
|
|
// enable module | // enable module |
ret_value = _enableModule(objectReference, moduleName, al); | ret_value = _enableModule(objectReference, moduleName, al); |
} | } |
|
else if (methodName.equal(_SET_MODULEGROUPNAME)) |
|
{ |
|
String paramName; |
|
if (!inParameters.size() || |
|
((paramName = inParameters[0].getParameterName()) |
|
!= _PARAM_MODULEGROUPNAME)) |
|
{ |
|
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_INVALID_PARAMETER, paramName); |
|
} |
|
// set group |
|
String moduleGroupName; |
|
inParameters[0].getValue().get(moduleGroupName); |
|
ret_value = _setModuleGroupName( |
|
objectReference, moduleName, moduleGroupName, al); |
|
} |
else | else |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_METHOD_NOT_AVAILABLE, | throw PEGASUS_CIM_EXCEPTION(CIM_ERR_METHOD_NOT_AVAILABLE, |
|
|
handler.complete(); | handler.complete(); |
} | } |
| |
|
Sint16 ProviderRegistrationProvider::_setModuleGroupName( |
|
const CIMObjectPath & moduleRef, |
|
const String & moduleName, |
|
const String & moduleGroupName, |
|
const AcceptLanguageList & al) |
|
{ |
|
Sint32 disableRC = _disableModule (moduleRef, moduleName, false, al); |
|
|
|
if (disableRC == -1) |
|
{ |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, |
|
MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider." |
|
"ProviderRegistrationProvider." |
|
"DISABLE_PROVIDER_FAILED", |
|
"disable the provider failed.")); |
|
} |
|
|
|
if (disableRC == -2) |
|
{ |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, |
|
MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider." |
|
"ProviderRegistrationProvider." |
|
"DISABLE_PROVIDER_FAILED_PROVIDER_BUSY", |
|
"disable the provider failed: Provider is busy.")); |
|
} |
|
|
|
if (!_providerRegistrationManager->setProviderModuleGroupName( |
|
moduleName, moduleGroupName)) |
|
{ |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, |
|
MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider." |
|
"ProviderRegistrationProvider." |
|
"SET_PROVIDERMODULEGROUPNAME_FAILED", |
|
"Failed to set the module group name.")); |
|
} |
|
|
|
// Enable the module only if it was previously enabled. |
|
if (disableRC == 0) |
|
{ |
|
try |
|
{ |
|
_enableModule(moduleRef, moduleName, al); |
|
} |
|
catch(const Exception &e) |
|
{ |
|
PEG_TRACE((TRC_CONTROLPROVIDER,Tracer::LEVEL1, |
|
"Exception caught while enabling the provider module %s : %s", |
|
(const char*)moduleName.getCString(), |
|
(const char*)e.getMessage().getCString())); |
|
} |
|
catch(...) |
|
{ |
|
PEG_TRACE(( |
|
TRC_CONTROLPROVIDER, |
|
Tracer::LEVEL1, |
|
"Unknown error occurred while" |
|
" enabling the provider modules %s.", |
|
(const char*)moduleName.getCString())); |
|
} |
|
} |
|
|
|
return 0; |
|
} |
|
|
|
|
// get provider manager service | // get provider manager service |
MessageQueueService * ProviderRegistrationProvider::_getProviderManagerService() | MessageQueueService * ProviderRegistrationProvider::_getProviderManagerService() |
{ | { |