version 1.45, 2003/06/06 19:41:04
|
version 1.49, 2003/08/19 18:06:57
|
|
|
#include <Pegasus/Common/CIMMessage.h> | #include <Pegasus/Common/CIMMessage.h> |
#include <Pegasus/Common/OperationContext.h> | #include <Pegasus/Common/OperationContext.h> |
#include <Pegasus/Common/System.h> | #include <Pegasus/Common/System.h> |
|
#include <Pegasus/Common/MessageLoader.h> //l10n |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
|
| |
if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && | if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && | !className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && |
|
!className.equal (PEGASUS_CLASSNAME_CONSUMERCAPABILITIES) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) | !className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, | throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
|
| |
if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && | if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && | !className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && |
|
!className.equal (PEGASUS_CLASSNAME_CONSUMERCAPABILITIES) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) | !className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, | throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
|
| |
if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && | if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && | !className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && |
|
!className.equal (PEGASUS_CLASSNAME_CONSUMERCAPABILITIES) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) | !className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, | throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
|
| |
if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName)) | if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, |
//l10n |
"You must have superuser privilege to modify the registration."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, |
|
//"You must have superuser privilege to modify the registration."); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.SUPERUSER_PRIVILEGE_REQUIRED_MODIFY_REGISTRATION", |
|
"You must have superuser privilege to modify the registration.")); |
} | } |
| |
if(!instanceReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP)) | if(!instanceReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP)) |
|
|
// | // |
if (propertyList.isNull()) | if (propertyList.isNull()) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
//l10n |
"Only can modify Namespaces, SupportedProperties, and SupportedMethods."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
//"Only can modify Namespaces, SupportedProperties, and SupportedMethods."); |
|
String s1 = "Namespaces"; |
|
String s2 = "SupportedProperties"; |
|
String s3 = "SupportedMethods"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED, MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.CAN_ONLY_MODIFY_ERR", |
|
"Only can modify $0, $1, and $2.", |
|
s1, s2, s3)); |
} | } |
| |
Array<CIMName> propertyArray = propertyList.getPropertyNameArray(); | Array<CIMName> propertyArray = propertyList.getPropertyNameArray(); |
|
|
ObjectPathResponseHandler & handler) | ObjectPathResponseHandler & handler) |
{ | { |
// get userName and only privileged user can execute this operation | // get userName and only privileged user can execute this operation |
|
String PG_ProviderModule_Name = "PG_ProviderModule"; //l10n |
|
String PG_ProviderCapabilities_Name = "PG_ProviderCapabilities"; //l10n |
|
String PG_Provider_Name = "PG_Provider"; |
String userName; | String userName; |
try | try |
{ | { |
|
|
| |
if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName)) | if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, |
//l10n |
"You must have superuser privilege to register providers."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, |
|
//"You must have superuser privilege to register providers."); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED, MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.SUPERUSER_PRIVILEGE_REQUIRED_REGISTER_PROVIDERS", |
|
"You must have superuser privilege to register providers.")); |
} | } |
| |
CIMName className = instanceReference.getClassName(); | CIMName className = instanceReference.getClassName(); |
|
|
// ensure the class existing in the specified namespace | // ensure the class existing in the specified namespace |
if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && | if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && | !className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && |
|
!className.equal (PEGASUS_CLASSNAME_CONSUMERCAPABILITIES) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) | !className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, | throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
|
if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULE_NAME) == | if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULE_NAME) == |
PEG_NOT_FOUND) | PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing Name which is required property in PG_ProviderModule class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing Name which is required property in PG_ProviderModule class."); |
|
String missing = "Name"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderModule_Name)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_VENDOR) == PEG_NOT_FOUND) | if (instanceObject.findProperty(_PROPERTY_VENDOR) == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing Vendor which is required property in PG_ProviderModule class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing Vendor which is required property in PG_ProviderModule class."); |
|
String missing = "Vendor"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderModule_Name)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_VERSION) == PEG_NOT_FOUND) | if (instanceObject.findProperty(_PROPERTY_VERSION) == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing Version which is required property in PG_ProviderModule class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing Version which is required property in PG_ProviderModule class."); |
|
String missing = "Version"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderModule_Name)); |
} | } |
| |
Uint32 ifcTypeIndex = | Uint32 ifcTypeIndex = |
instanceObject.findProperty(_PROPERTY_INTERFACETYPE); | instanceObject.findProperty(_PROPERTY_INTERFACETYPE); |
if (ifcTypeIndex == PEG_NOT_FOUND) | if (ifcTypeIndex == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing InterfaceType which is required property in PG_ProviderModule class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing InterfaceType which is required property in PG_ProviderModule class."); |
|
String missing = "InterfaceType"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderModule_Name)); |
} | } |
String ifcTypeString; | String ifcTypeString; |
instanceObject.getProperty(ifcTypeIndex).getValue(). | instanceObject.getProperty(ifcTypeIndex).getValue(). |
|
|
| |
if(ifcTypeString != "C++Default" && ifcTypeString != "CMPI" ) | if(ifcTypeString != "C++Default" && ifcTypeString != "CMPI" ) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
//l10n |
"Unsupported InterfaceType value: \"" + ifcTypeString + "\""); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
//"Unsupported InterfaceType value: \"" + ifcTypeString + "\""); |
|
String unsupported = "InterfaceType"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.UNSUPPORTED_VALUE", |
|
"Unsupported $0 value: \"$1\"",unsupported,ifcTypeString)); |
} | } |
| |
Uint32 ifcVersionIndex = | Uint32 ifcVersionIndex = |
instanceObject.findProperty(_PROPERTY_INTERFACEVERSION); | instanceObject.findProperty(_PROPERTY_INTERFACEVERSION); |
if (ifcVersionIndex == PEG_NOT_FOUND) | if (ifcVersionIndex == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing InterfaceVersion which is required property in PG_ProviderModule class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing InterfaceVersion which is required property in PG_ProviderModule class."); |
|
String missing = "InterfaceVersion"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderModule_Name)); |
} | } |
String ifcVersionString; | String ifcVersionString; |
instanceObject.getProperty(ifcVersionIndex).getValue(). | instanceObject.getProperty(ifcVersionIndex).getValue(). |
get(ifcVersionString); | get(ifcVersionString); |
if ((ifcVersionString != "2.1.0") && | if ((ifcVersionString != "2.1.0") && |
(ifcVersionString != "2.2.0")) |
(ifcVersionString != "2.2.0") && |
|
(ifcVersionString != "2.3.0")) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
//l10n |
"Unsupported InterfaceVersion value: \"" + ifcVersionString + |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
"\""); |
//"Unsupported InterfaceVersion value: \"" + ifcVersionString + |
|
// "\""); |
|
String unsupported = "InterfaceVersion"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.UNSUPPORTED_VALUE", |
|
"Unsupported $0 value: \"$1\"",unsupported,ifcVersionString)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_LOCATION) == PEG_NOT_FOUND) | if (instanceObject.findProperty(_PROPERTY_LOCATION) == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing Location which is required property in PG_ProviderModule class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing Location which is required property in PG_ProviderModule class."); |
|
String missing = "Location"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderModule_Name)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_OPERATIONALSTATUS) == | if (instanceObject.findProperty(_PROPERTY_OPERATIONALSTATUS) == |
|
|
if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) == | if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) == |
PEG_NOT_FOUND) | PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing ProviderModuleName which is required property in PG_ProviderCapabilities class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing ProviderModuleName which is required property in PG_ProviderCapabilities class."); |
|
String missing = "ProviderModuleName"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderCapabilities_Name)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_PROVIDERNAME) == | if (instanceObject.findProperty(_PROPERTY_PROVIDERNAME) == |
PEG_NOT_FOUND) | PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing ProviderName which is required property in PG_ProviderCapabilities class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing ProviderName which is required property in PG_ProviderCapabilities class."); |
|
String missing = "ProviderName"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderCapabilities_Name)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_CAPABILITYID) == | if (instanceObject.findProperty(_PROPERTY_CAPABILITYID) == |
PEG_NOT_FOUND) | PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing CapabilityID which is required property in PG_ProviderCapabilities class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing CapabilityID which is required property in PG_ProviderCapabilities class."); |
|
String missing = "CapabilityID"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderCapabilities_Name)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_CLASSNAME) == PEG_NOT_FOUND) | if (instanceObject.findProperty(_PROPERTY_CLASSNAME) == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing ClassName which is required property in PG_ProviderCapabilities class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing ClassName which is required property in PG_ProviderCapabilities class."); |
|
String missing = "ClassName"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderCapabilities_Name)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_NAMESPACES) == PEG_NOT_FOUND) | if (instanceObject.findProperty(_PROPERTY_NAMESPACES) == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing Namespaces which is required property in PG_ProviderCapabilities class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing Namespaces which is required property in PG_ProviderCapabilities class."); |
|
String missing = "Namespaces"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderCapabilities_Name)); |
|
} |
|
|
|
if (instanceObject.findProperty(_PROPERTY_PROVIDERTYPE) == PEG_NOT_FOUND) |
|
{ |
|
//l10n |
|
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing ProviderType which is required property in PG_ProviderCapabilities class."); |
|
String missing = "ProviderType"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_ProviderCapabilities_Name)); |
|
} |
|
} |
|
else if (className.equal (PEGASUS_CLASSNAME_CONSUMERCAPABILITIES)) |
|
{ |
|
// |
|
// ProviderModuleName, ProviderName, CapabilityID, ProviderType, |
|
// and Destinations properties must be set |
|
// |
|
|
|
if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) == |
|
PEG_NOT_FOUND) |
|
{ |
|
//L10N_ TODO DONE |
|
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing ProviderModuleName which is required property in PG_ConsumerCapabilities class."); |
|
MessageLoaderParms parms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_PROVIDER_MODULE_NAME_WHICH_IS_REQUIRED", |
|
"Missing ProviderModuleName which is required property in PG_ConsumerCapabilities class."); |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms); |
|
} |
|
|
|
if (instanceObject.findProperty(_PROPERTY_PROVIDERNAME) == |
|
PEG_NOT_FOUND) |
|
{ |
|
//L10N_ TODO DONE |
|
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing ProviderName which is required property in PG_ConsumerCapabilities class."); |
|
|
|
MessageLoaderParms parms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_PROVIDER_NAME_WHICH_IS_REQUIRED", |
|
"Missing ProviderName which is required property in PG_ConsumerCapabilities class."); |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms); |
|
} |
|
|
|
if (instanceObject.findProperty(_PROPERTY_CAPABILITYID) == |
|
PEG_NOT_FOUND) |
|
{ |
|
//L10N_ TODO DONE |
|
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing CapabilityID which is required property in PG_ConsumerCapabilities class."); |
|
|
|
MessageLoaderParms parms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_CAPABILITY_ID_WHICH_IS_REQUIRED", |
|
"Missing CapabilityID which is required property in PG_ConsumerCapabilities class."); |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_PROVIDERTYPE) == PEG_NOT_FOUND) | if (instanceObject.findProperty(_PROPERTY_PROVIDERTYPE) == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//L10N_ TODO DONE |
"Missing ProviderType which is required property in PG_ProviderCapabilities class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing ProviderType which is required property in PG_ConsumerCapabilities class."); |
|
|
|
MessageLoaderParms parms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_PROVIDER_TYPE_WHICH_IS_REQUIRED", |
|
"Missing ProviderType which is required property in PG_ConsumerCapabilities class."); |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms); |
|
} |
|
|
|
if (instanceObject.findProperty(_PROPERTY_INDICATIONDESTINATIONS) == |
|
PEG_NOT_FOUND) |
|
{ |
|
//L10N_ TODO DONE |
|
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing Destinations which is required property in PG_ConsumerCapabilities class."); |
|
|
|
MessageLoaderParms parms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_DESTINATIONS_TYPE_WHICH_IS_REQUIRED", |
|
"Missing Destinations which is required property in PG_ConsumerCapabilities class."); |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms); |
} | } |
} | } |
else // PEGASUS_CLASSNAME_PROVIDER | else // PEGASUS_CLASSNAME_PROVIDER |
|
|
// | // |
if (instanceObject.findProperty(_PROPERTY_PROVIDER_NAME) == PEG_NOT_FOUND) | if (instanceObject.findProperty(_PROPERTY_PROVIDER_NAME) == PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing Name which is required property in PG_Provider class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing Name which is required property in PG_Provider class."); |
|
String missing = "Name"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_Provider_Name)); |
} | } |
| |
if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) == | if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) == |
PEG_NOT_FOUND) | PEG_NOT_FOUND) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"Missing ProviderModuleName which is required property in PG_Provider class."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"Missing ProviderModuleName which is required property in PG_Provider class."); |
|
String missing = "ProviderModuleName"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY", |
|
"Missing $0 which is required property in $1 class.",missing,PG_Provider_Name)); |
} | } |
} | } |
| |
|
|
| |
if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName)) | if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, |
//l10n |
"You must have superuser privilege to unregister providers."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, |
|
//"You must have superuser privilege to unregister providers."); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.SUPERUSER_PRIVILEGE_REQUIRED_UNREGISTER_PROVIDERS", |
|
"You must have superuser privilege to unregister providers.")); |
} | } |
| |
if(!instanceReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP)) | if(!instanceReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP)) |
|
|
instanceReference.getNameSpace().getString()); | instanceReference.getNameSpace().getString()); |
} | } |
| |
|
|
|
// l10n |
|
// Get the client's list of preferred languages for the response |
|
AcceptLanguages al = AcceptLanguages::EMPTY; |
|
try |
|
{ |
|
AcceptLanguageListContainer al_container = |
|
(AcceptLanguageListContainer)context.get(AcceptLanguageListContainer::NAME); |
|
al = al_container.getLanguages(); |
|
} |
|
catch (...) |
|
{ |
|
; // Leave AcceptLanguages empty |
|
} |
|
|
CIMName className = instanceReference.getClassName(); | CIMName className = instanceReference.getClassName(); |
| |
// ensure the class existing in the specified namespace | // ensure the class existing in the specified namespace |
if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && | if(!className.equal (PEGASUS_CLASSNAME_PROVIDER) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && | !className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) && |
|
!className.equal (PEGASUS_CLASSNAME_CONSUMERCAPABILITIES) && |
!className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) | !className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, | throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
|
// if _PROPERTY_PROVIDERMODULENAME key not found | // if _PROPERTY_PROVIDERMODULENAME key not found |
if( !moduleFound) | if( !moduleFound) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
//l10n |
"key ProviderModuleName was not found"); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
//"key ProviderModuleName was not found"); |
|
String sub = "ProviderModuleName"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.KEY_NOT_FOUND", |
|
"key $0 was not found",sub)); |
} | } |
| |
// | // |
|
|
// | // |
// if the provider disable failed | // if the provider disable failed |
// | // |
if (_disableModule(instanceReference, moduleName, true) == -1) |
// l10n |
|
if (_disableModule(instanceReference, moduleName, true, al) == -1) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"disable the provider failed."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"disable the provider failed."); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.DISABLE_PROVIDER_FAILED", |
|
"disable the provider failed.")); |
} | } |
} | } |
catch(CIMException&) | catch(CIMException&) |
|
|
// if _PROPERTY_PROVIDERMODULE_NAME key not found | // if _PROPERTY_PROVIDERMODULE_NAME key not found |
if( !moduleFound) | if( !moduleFound) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
//l10n |
"key Name was not found"); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
|
//"key Name was not found"); |
|
String sub = "Name"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.KEY_NOT_FOUND", |
|
"key $0 was not found",sub)); |
} | } |
| |
// | // |
|
|
// | // |
// if the provider module disable failed | // if the provider module disable failed |
// | // |
if (_disableModule(instanceReference, moduleName, false) == -1) |
// l10n |
|
if (_disableModule(instanceReference, moduleName, false, al) == -1) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
//l10n |
"disable the provider module failed."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, |
|
//"disable the provider module failed."); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.DISABLE_PROVIDER_MODULE_FAILED", |
|
"disable the provider module failed.")); |
} | } |
} | } |
catch(CIMException& e) | catch(CIMException& e) |
|
|
| |
if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName)) | if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName)) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, |
//l10n |
"You must have superuser privilege to disable or enable providers."); |
//throw PEGASUS_CIM_EXCEPTION(CIM_ERR_ACCESS_DENIED, |
|
//"You must have superuser privilege to disable or enable providers."); |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.SUPERUSER_PRIVILEGE_REQUIRED_DISABLE_ENABLE_PROVIDERS", |
|
"You must have superuser privilege to disable or enable providers.")); |
} | } |
| |
if(!objectReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP)) | if(!objectReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP)) |
|
|
objectReference.getNameSpace().getString()); | objectReference.getNameSpace().getString()); |
} | } |
| |
|
|
|
// l10n |
|
// Get the client's list of preferred languages for the response |
|
AcceptLanguages al = AcceptLanguages::EMPTY; |
|
try |
|
{ |
|
AcceptLanguageListContainer al_container = |
|
(AcceptLanguageListContainer)context.get(AcceptLanguageListContainer::NAME); |
|
al = al_container.getLanguages(); |
|
} |
|
catch (...) |
|
{ |
|
; // Leave AcceptLanguages empty |
|
} |
|
|
String moduleName; | String moduleName; |
Boolean moduleFound = false; | Boolean moduleFound = false; |
| |
|
|
// if _PROPERTY_PROVIDERMODULE_NAME key not found | // if _PROPERTY_PROVIDERMODULE_NAME key not found |
if( !moduleFound) | if( !moduleFound) |
{ | { |
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, |
//l10n |
"key Name was not found"); |
String sub = "Name"; |
|
throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,MessageLoaderParms( |
|
"ControlProviders.ProviderRegistrationProvider.ProviderRegistrationProvider.KEY_NOT_FOUND", |
|
"key $0 was not found",sub)); |
} | } |
| |
handler.processing(); | handler.processing(); |
|
|
// disable module | // disable module |
try | try |
{ | { |
ret_value = _disableModule(objectReference, moduleName, false); |
// l10n |
|
ret_value = _disableModule(objectReference, moduleName, false, al); |
} | } |
catch(CIMException& e) | catch(CIMException& e) |
{ | { |
|
|
XmlWriter::getNextMessageId (), | XmlWriter::getNextMessageId (), |
mInstance, | mInstance, |
QueueIdStack(_service->getQueueId())); | QueueIdStack(_service->getQueueId())); |
|
// l10n |
|
enable_req->acceptLanguages = al; |
| |
Array<Uint16> _opStatus; | Array<Uint16> _opStatus; |
_opStatus = _sendEnableMessageToProviderManager(enable_req); | _opStatus = _sendEnableMessageToProviderManager(enable_req); |
|
|
// send termination message to subscription service | // send termination message to subscription service |
void ProviderRegistrationProvider::_sendTerminationMessageToSubscription( | void ProviderRegistrationProvider::_sendTerminationMessageToSubscription( |
const CIMObjectPath & ref, const String & moduleName, | const CIMObjectPath & ref, const String & moduleName, |
const Boolean disableProviderOnly) |
const Boolean disableProviderOnly, |
|
const AcceptLanguages & al) |
{ | { |
CIMInstance instance; | CIMInstance instance; |
String _moduleName; | String _moduleName; |
|
|
instances, | instances, |
QueueIdStack(_service->getQueueId())); | QueueIdStack(_service->getQueueId())); |
| |
|
// l10n |
|
termination_req->acceptLanguages = al; |
|
|
// create request envelope | // create request envelope |
AsyncLegacyOperationStart * asyncRequest = | AsyncLegacyOperationStart * asyncRequest = |
new AsyncLegacyOperationStart ( | new AsyncLegacyOperationStart ( |
|
|
Sint16 ProviderRegistrationProvider::_disableModule( | Sint16 ProviderRegistrationProvider::_disableModule( |
const CIMObjectPath & objectReference, | const CIMObjectPath & objectReference, |
const String & moduleName, | const String & moduleName, |
Boolean disableProviderOnly) |
Boolean disableProviderOnly, |
|
const AcceptLanguages & al) // l10n |
{ | { |
// | // |
// get module status | // get module status |
|
|
instances, | instances, |
disableProviderOnly, | disableProviderOnly, |
QueueIdStack(_service->getQueueId())); | QueueIdStack(_service->getQueueId())); |
|
// l10n |
|
disable_req->acceptLanguages = al; |
| |
Array<Uint16> _opStatus = | Array<Uint16> _opStatus = |
_sendDisableMessageToProviderManager(disable_req); | _sendDisableMessageToProviderManager(disable_req); |
|
|
{ | { |
// send termination message to subscription service | // send termination message to subscription service |
_sendTerminationMessageToSubscription(objectReference, | _sendTerminationMessageToSubscription(objectReference, |
moduleName, false); |
moduleName, false, al); |
return (0); | return (0); |
} | } |
} | } |
|
|
else // disable provider | else // disable provider |
{ | { |
_sendTerminationMessageToSubscription(objectReference, | _sendTerminationMessageToSubscription(objectReference, |
moduleName, true); |
moduleName, true, al); |
return (0); | return (0); |
} | } |
} | } |