version 1.19, 2011/01/07 02:35:33
|
version 1.20, 2012/07/30 11:18:27
|
|
|
{ | { |
PEG_METHOD_ENTER(TRC_WSMSERVER, "WsmToCimRequestMapper::mapToCimRequest"); | PEG_METHOD_ENTER(TRC_WSMSERVER, "WsmToCimRequestMapper::mapToCimRequest"); |
AutoPtr<CIMOperationRequestMessage> cimRequest; | AutoPtr<CIMOperationRequestMessage> cimRequest; |
|
|
switch (request->getType()) | switch (request->getType()) |
{ | { |
case WS_TRANSFER_GET: | case WS_TRANSFER_GET: |
|
|
(WxfPutRequest*) request)); | (WxfPutRequest*) request)); |
break; | break; |
| |
|
case WS_SUBSCRIPTION_CREATE: |
|
cimRequest.reset(mapToCimCreateInstanceRequest(request, true)); |
|
break; |
|
|
case WS_TRANSFER_CREATE: | case WS_TRANSFER_CREATE: |
cimRequest.reset(mapToCimCreateInstanceRequest( |
cimRequest.reset(mapToCimCreateInstanceRequest(request)); |
(WxfCreateRequest*) request)); |
|
break; | break; |
| |
case WS_TRANSFER_DELETE: | case WS_TRANSFER_DELETE: |
cimRequest.reset(mapToCimDeleteInstanceRequest( |
cimRequest.reset(mapToCimDeleteInstanceRequest(request)); |
(WxfDeleteRequest*) request)); |
break; |
|
|
|
case WS_SUBSCRIPTION_DELETE: |
|
cimRequest.reset(mapToCimDeleteInstanceRequest(request, true)); |
break; | break; |
| |
case WS_ENUMERATION_ENUMERATE: | case WS_ENUMERATION_ENUMERATE: |
|
|
| |
CIMCreateInstanceRequestMessage* | CIMCreateInstanceRequestMessage* |
WsmToCimRequestMapper::mapToCimCreateInstanceRequest( | WsmToCimRequestMapper::mapToCimCreateInstanceRequest( |
WxfCreateRequest* request) |
WsmRequest* request,Boolean isSubscriptionCreateReq) |
{ | { |
CIMNamespaceName nameSpace; | CIMNamespaceName nameSpace; |
CIMObjectPath instanceName; | CIMObjectPath instanceName; |
|
WsmEndpointReference epr; |
|
WsmInstance wsmInstance; |
|
if(isSubscriptionCreateReq) |
|
{ |
|
WxfSubCreateRequest * req = (WxfSubCreateRequest *)request; |
|
epr = req->epr; |
|
wsmInstance = req->instance; |
|
} |
|
else |
|
{ |
|
WxfCreateRequest *createReq = (WxfCreateRequest *)request; |
|
epr = createReq->epr; |
|
wsmInstance = createReq->instance; |
|
} |
|
|
| |
// EPR to object path does a generic conversion, including conversion | // EPR to object path does a generic conversion, including conversion |
// of EPR address to host and namespace selector to CIM namespace. | // of EPR address to host and namespace selector to CIM namespace. |
// For CreateInstance operation instance name should only contain a | // For CreateInstance operation instance name should only contain a |
// class name and key bindings. | // class name and key bindings. |
convertEPRToObjectPath(request->epr, instanceName); |
convertEPRToObjectPath(epr, instanceName); |
nameSpace = instanceName.getNameSpace(); | nameSpace = instanceName.getNameSpace(); |
instanceName.setNameSpace(CIMNamespaceName()); | instanceName.setNameSpace(CIMNamespaceName()); |
instanceName.setHost(String::EMPTY); | instanceName.setHost(String::EMPTY); |
| |
CIMInstance instance; | CIMInstance instance; |
convertWsmToCimInstance(request->instance, nameSpace, instance); |
convertWsmToCimInstance(wsmInstance, nameSpace, instance); |
| |
CIMCreateInstanceRequestMessage* cimRequest = | CIMCreateInstanceRequestMessage* cimRequest = |
new CIMCreateInstanceRequestMessage( | new CIMCreateInstanceRequestMessage( |
|
|
| |
return cimRequest; | return cimRequest; |
} | } |
|
|
CIMDeleteInstanceRequestMessage* | CIMDeleteInstanceRequestMessage* |
WsmToCimRequestMapper::mapToCimDeleteInstanceRequest( | WsmToCimRequestMapper::mapToCimDeleteInstanceRequest( |
WxfDeleteRequest* request) |
WsmRequest* request , Boolean isSubDeleteReq) |
{ | { |
CIMNamespaceName nameSpace; | CIMNamespaceName nameSpace; |
CIMObjectPath instanceName; | CIMObjectPath instanceName; |
|
WsmEndpointReference epr; |
|
if(isSubDeleteReq) |
|
{ |
|
WxfSubDeleteRequest * req = (WxfSubDeleteRequest *)request; |
|
epr = req->epr; |
|
|
|
} |
|
else |
|
{ |
|
WxfDeleteRequest * deleteReq = (WxfDeleteRequest *)request; |
|
epr = deleteReq->epr; |
|
} |
| |
_disallowAllClassesResourceUri(request->epr.resourceUri); |
|
|
_disallowAllClassesResourceUri(epr.resourceUri); |
| |
// EPR to object path does a generic conversion, including conversion | // EPR to object path does a generic conversion, including conversion |
// of EPR address to host and namespace selector to CIM namespace. | // of EPR address to host and namespace selector to CIM namespace. |
// For DeleteInstance operation instance name should only contain a | // For DeleteInstance operation instance name should only contain a |
// class name and key bindings. | // class name and key bindings. |
convertEPRToObjectPath(request->epr, instanceName); |
convertEPRToObjectPath(epr, instanceName); |
nameSpace = instanceName.getNameSpace(); | nameSpace = instanceName.getNameSpace(); |
instanceName.setNameSpace(CIMNamespaceName()); | instanceName.setNameSpace(CIMNamespaceName()); |
instanceName.setHost(String::EMPTY); | instanceName.setHost(String::EMPTY); |
|
|
if (CIMNameLegalASCII(className)) | if (CIMNameLegalASCII(className)) |
return CIMNameCast(String(className)); | return CIMNameCast(String(className)); |
} | } |
|
if (strcmp(cstr, WSM_RESOURCEURI_INDICATION_FILTER) == 0 ) |
|
{ |
|
return CIMNameCast(String("CIM_IndicationFilter")); |
|
} |
| |
throw WsmFault( | throw WsmFault( |
WsmFault::wsa_DestinationUnreachable, | WsmFault::wsa_DestinationUnreachable, |
|
|
keyBindings.append(newKeyBinding); | keyBindings.append(newKeyBinding); |
} | } |
} | } |
|
|
objectPath = CIMObjectPath( | objectPath = CIMObjectPath( |
convertEPRAddressToHostname(epr.address), | convertEPRAddressToHostname(epr.address), |
namespaceName, | namespaceName, |