(file) Return to DefaultProviderManager.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / Default

Diff for /pegasus/src/Pegasus/ProviderManager2/Default/DefaultProviderManager.cpp between version 1.11.4.5 and 1.34

version 1.11.4.5, 2004/03/24 00:50:34 version 1.34, 2004/06/10 08:57:32
Line 30 
Line 30 
 //              Mike Day, IBM (mdday@us.ibm.com) //              Mike Day, IBM (mdday@us.ibm.com)
 //              Karl Schopmeyer(k.schopmeyer@opengroup.org) - Fix associators. //              Karl Schopmeyer(k.schopmeyer@opengroup.org) - Fix associators.
 //                      Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com) //                      Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)
   //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
   //                              Seema Gupta (gseema@in.ibm.com) for PEP135
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 43 
Line 45 
 #include <Pegasus/Common/Logger.h> #include <Pegasus/Common/Logger.h>
 #include <Pegasus/Common/MessageLoader.h> //l10n #include <Pegasus/Common/MessageLoader.h> //l10n
  
 //#include <Pegasus/Common/QueryExpression.h>  #include <Pegasus/Common/QueryExpression.h>
 //#include <Pegasus/ProviderManager2/QueryExpressionFactory.h>  #include <Pegasus/ProviderManager2/QueryExpressionFactory.h>
   
 #include <Pegasus/Config/ConfigManager.h>  
  
 #include <Pegasus/ProviderManager2/Default/Provider.h> #include <Pegasus/ProviderManager2/Default/Provider.h>
 #include <Pegasus/ProviderManager2/OperationResponseHandler.h> #include <Pegasus/ProviderManager2/OperationResponseHandler.h>
  
 #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h>  
 #include <Pegasus/ProviderManager2/ProviderManagerService.h> #include <Pegasus/ProviderManager2/ProviderManagerService.h>
   #include <Pegasus/ProviderManager2/ProviderType.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 83 
Line 83 
 static const Uint16 _MODULE_STOPPING = 9; static const Uint16 _MODULE_STOPPING = 9;
 static const Uint16 _MODULE_STOPPED  = 10; static const Uint16 _MODULE_STOPPED  = 10;
  
 // provider manager  
 static LocalProviderManager providerManager;  
  
   //
   // Default Provider Manager
   //
 DefaultProviderManager::DefaultProviderManager(void) DefaultProviderManager::DefaultProviderManager(void)
 { {
 } }
Line 128 
Line 129 
         response = handleDeleteInstanceRequest(request);         response = handleDeleteInstanceRequest(request);
  
         break;         break;
  //   case CIM_EXEC_QUERY_REQUEST_MESSAGE:      case CIM_EXEC_QUERY_REQUEST_MESSAGE:
  //       response = handleExecQueryRequest(request);          response = handleExecQueryRequest(request);
  
  //       break;          break;
     case CIM_ASSOCIATORS_REQUEST_MESSAGE:     case CIM_ASSOCIATORS_REQUEST_MESSAGE:
         response = handleAssociatorsRequest(request);         response = handleAssociatorsRequest(request);
  
Line 180 
Line 181 
         response = handleDisableIndicationsRequest(request);         response = handleDisableIndicationsRequest(request);
  
         break;         break;
     case CIM_CONSUME_INDICATION_REQUEST_MESSAGE:  
         response = handleConsumeIndicationRequest(request);  
         break;  
   
     case CIM_EXPORT_INDICATION_REQUEST_MESSAGE:     case CIM_EXPORT_INDICATION_REQUEST_MESSAGE:
         response = handleExportIndicationRequest(request);         response = handleExportIndicationRequest(request);
         break;         break;
Line 200 
Line 197 
         response = handleStopAllProvidersRequest(request);         response = handleStopAllProvidersRequest(request);
  
         break;         break;
       case CIM_INITIALIZE_PROVIDER_REQUEST_MESSAGE:
           response = handleInitializeProviderRequest(request);
   
           break;
     default:     default:
         response = handleUnsupportedRequest(request);         response = handleUnsupportedRequest(request);
  
Line 221 
Line 222 
     return(0);     return(0);
 } }
  
   Message * DefaultProviderManager::handleInitializeProviderRequest(
       const Message * message)
   {
       PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
           "DefaultProviderManager::handleInitializeProviderRequest");
   
       CIMInitializeProviderRequestMessage * request =
           dynamic_cast<CIMInitializeProviderRequestMessage *>
               (const_cast<Message *>(message));
   
       PEGASUS_ASSERT(request != 0);
   
       CIMInitializeProviderResponseMessage * response =
           new CIMInitializeProviderResponseMessage(
           request->messageId,
           CIMException(),
           request->queueIds.copyAndPop());
   
       // preserve message key
       response->setKey(request->getKey());
   
       //  Set HTTP method in response from request
       response->setHttpMethod(request->getHttpMethod());
   
       OperationResponseHandler handler(request, response);
   
       try
       {
           // resolve provider name
           ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
   
           // get cached or load new provider module
           OpProviderHolder ph =
               providerManager.getProvider(name.getPhysicalName(),
                   name.getLogicalName(), String::EMPTY);
   
       }
       catch(CIMException & e)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL3,
               "CIMException: " + e.getMessage());
   
           handler.setStatus(e.getCode(), e.getContentLanguages(), e.getMessage());
       }
       catch(Exception & e)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL3,
               "Exception: " + e.getMessage());
   
           handler.setStatus(CIM_ERR_FAILED, e.getContentLanguages(), e.getMessage());
       }
       catch(...)
       {
           PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL3,
               "Exception: Unknown");
   
           handler.setStatus(CIM_ERR_FAILED, "Unknown error.");
       }
   
       PEG_METHOD_EXIT();
   
       return(response);
   }
   
 Message * DefaultProviderManager::handleGetInstanceRequest(const Message * message) Message * DefaultProviderManager::handleGetInstanceRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleGetInstanceRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleGetInstanceRequest");
Line 263 
Line 329 
             request->instanceName.getClassName(),             request->instanceName.getClassName(),
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(  
             objectPath,  
             ProviderType::INSTANCE);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 277 
Line 340 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         CIMPropertyList propertyList(request->propertyList);         CIMPropertyList propertyList(request->propertyList);
  
Line 370 
Line 433 
             request->nameSpace,             request->nameSpace,
             request->className);             request->className);
  
         ProviderName name(  
             objectPath,  
             ProviderType::INSTANCE);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph = providerManager.getProvider(name.getPhysicalName(),         OpProviderHolder ph = providerManager.getProvider(name.getPhysicalName(),
Line 384 
Line 444 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         CIMPropertyList propertyList(request->propertyList);         CIMPropertyList propertyList(request->propertyList);
  
Line 478 
Line 538 
             request->nameSpace,             request->nameSpace,
             request->className);             request->className);
  
         // build an internal provider name from the request arguments  
         ProviderName name(  
             objectPath,  
             ProviderType::INSTANCE);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 493 
Line 549 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         // forward request         // forward request
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
Line 583 
Line 639 
             request->newInstance.getPath().getClassName(),             request->newInstance.getPath().getClassName(),
             request->newInstance.getPath().getKeyBindings());             request->newInstance.getPath().getKeyBindings());
  
         ProviderName name(  
             objectPath,  
             ProviderType::INSTANCE);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 597 
Line 650 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         // forward request         // forward request
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
Line 687 
Line 740 
             request->modifiedInstance.getPath ().getClassName(),             request->modifiedInstance.getPath ().getClassName(),
             request->modifiedInstance.getPath ().getKeyBindings());             request->modifiedInstance.getPath ().getKeyBindings());
  
         ProviderName name(  
             objectPath,  
             ProviderType::INSTANCE);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 701 
Line 751 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         CIMPropertyList propertyList(request->propertyList);         CIMPropertyList propertyList(request->propertyList);
  
Line 795 
Line 845 
             request->instanceName.getClassName(),             request->instanceName.getClassName(),
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(  
             objectPath,  
             ProviderType::INSTANCE);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 809 
Line 856 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         // forward request         // forward request
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
Line 855 
Line 902 
  
     return(response);     return(response);
 } }
 /*  
 Message * DefaultProviderManager::handleExecQueryRequest(const Message * message) Message * DefaultProviderManager::handleExecQueryRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleExecQueryRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleExecQueryRequest");
Line 897 
Line 944 
             request->nameSpace,             request->nameSpace,
             request->className);             request->className);
  
         ProviderName name(  
             objectPath,  
             ProviderType::QUERY);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 919 
Line 963 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         QueryExpression qx(QueryExpressionFactory::routeBuildQueryExpressionRep         QueryExpression qx(QueryExpressionFactory::routeBuildQueryExpressionRep
            (request->queryLanguage,request->query));            (request->queryLanguage,request->query));
Line 952 
Line 996 
     }     }
     catch(Exception & e)     catch(Exception & e)
     {     {
            cout<<"--- exception not a CIMInstanceQueryProvider"<<endl;  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
             "Exception: " + e.getMessage());             "Exception: " + e.getMessage());
  
Line 970 
Line 1013 
  
     return(response);     return(response);
 } }
 */  
 Message * DefaultProviderManager::handleAssociatorsRequest(const Message * message) Message * DefaultProviderManager::handleAssociatorsRequest(const Message * message)
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleAssociatorsRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleAssociatorsRequest");
Line 1017 
Line 1060 
             request->nameSpace,             request->nameSpace,
             request->assocClass.getString());             request->assocClass.getString());
  
         ProviderName name(  
             assocPath,  
             ProviderType::ASSOCIATION);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 1031 
Line 1071 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         // ATTN KS STAT_GETSTARTTIME;         // ATTN KS STAT_GETSTARTTIME;
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
Line 1128 
Line 1168 
             request->nameSpace,             request->nameSpace,
             request->assocClass.getString());             request->assocClass.getString());
  
         ProviderName name(  
             assocPath,  
             ProviderType::ASSOCIATION);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 1142 
Line 1179 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         pm_service_op_lock op_lock(&ph.GetProvider());         pm_service_op_lock op_lock(&ph.GetProvider());
  
Line 1235 
Line 1272 
             request->nameSpace,             request->nameSpace,
             request->resultClass.getString());             request->resultClass.getString());
  
         ProviderName name(  
             resultPath,  
             ProviderType::ASSOCIATION);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 1249 
Line 1283 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         STAT_GETSTARTTIME;         STAT_GETSTARTTIME;
  
Line 1347 
Line 1381 
             request->nameSpace,             request->nameSpace,
             request->resultClass.getString());             request->resultClass.getString());
  
         ProviderName name(  
             resultPath,  
             ProviderType::ASSOCIATION);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 1361 
Line 1392 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         STAT_GETSTARTTIME;         STAT_GETSTARTTIME;
  
Line 1451 
Line 1482 
             request->instanceName.getClassName(),             request->instanceName.getClassName(),
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(  
             objectPath,  
             0);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 1465 
Line 1493 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         CIMName propertyName = request->propertyName;         CIMName propertyName = request->propertyName;
  
Line 1559 
Line 1587 
             request->instanceName.getClassName(),             request->instanceName.getClassName(),
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(  
             objectPath,  
             0);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 1573 
Line 1598 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         CIMName propertyName = request->propertyName;         CIMName propertyName = request->propertyName;
         CIMValue propertyValue = request->newValue;         CIMValue propertyValue = request->newValue;
Line 1670 
Line 1695 
             request->instanceName.getClassName(),             request->instanceName.getClassName(),
             request->instanceName.getKeyBindings());             request->instanceName.getKeyBindings());
  
         ProviderName name(  
             objectPath,  
             ProviderType::METHOD,  
             request->methodName);  
   
         // resolve provider name         // resolve provider name
         name = _resolveProviderName(name);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 1685 
Line 1706 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(ContentLanguageListContainer(request->contentLanguages));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
         CIMObjectPath instanceReference(request->instanceName);         CIMObjectPath instanceReference(request->instanceName);
  
Line 1784 
Line 1805 
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);             temp);
  
         String physicalName=_resolvePhysicalName(                  CIMInstance req_provider, req_providerModule;
            request->providerModule.getProperty(                  ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);
            request->providerModule.findProperty("Location")).getValue().toString());                  req_provider = pidc.getProvider();
                   req_providerModule = pidc.getModule();
  
         ProviderName name(          String physicalName=_resolvePhysicalName( req_providerModule.getProperty(
            request->provider.getProperty(request->provider.findProperty                                                    req_providerModule.findProperty("Location")).getValue().toString());
               ("Name")).getValue ().toString (),  
           ProviderName name(req_provider.getProperty(req_provider.findProperty("Name")).getValue ().toString (),
            physicalName,            physicalName,
            request->providerModule.getProperty(request->providerModule.findProperty                                    req_providerModule.getProperty(req_providerModule.findProperty
               ("InterfaceType")).getValue().toString(),               ("InterfaceType")).getValue().toString(),
             0);             0);
   
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);
Line 1803 
Line 1825 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(SubscriptionInstanceContainer                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             (request->subscriptionInstance));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
         context.insert(SubscriptionFilterConditionContainer              context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));
             (request->condition, request->queryLanguage));              context.insert(request->operationContext.get(SubscriptionLanguageListContainer::NAME));
         context.insert(SubscriptionLanguageListContainer              context.insert(request->operationContext.get(SubscriptionFilterConditionContainer::NAME));
             (request->acceptLanguages));  
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));  
         context.insert(ContentLanguageListContainer(request->contentLanguages));  
  
         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();
  
Line 1916 
Line 1935 
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);             temp);
  
         String physicalName=_resolvePhysicalName(                  CIMInstance req_provider, req_providerModule;
            request->providerModule.getProperty(                  ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);
            request->providerModule.findProperty("Location")).getValue().toString());                  req_provider = pidc.getProvider();
                   req_providerModule = pidc.getModule();
  
         ProviderName name(          String physicalName=_resolvePhysicalName( req_providerModule.getProperty(
            request->provider.getProperty(request->provider.findProperty                                                    req_providerModule.findProperty("Location")).getValue().toString());
               ("Name")).getValue ().toString (),  
           ProviderName name(req_provider.getProperty(req_provider.findProperty("Name")).getValue ().toString (),
            physicalName,            physicalName,
            request->providerModule.getProperty(request->providerModule.findProperty                                    req_providerModule.getProperty(req_providerModule.findProperty
               ("InterfaceType")).getValue().toString(),               ("InterfaceType")).getValue().toString(),
             0);             0);
  
Line 1934 
Line 1955 
  
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
                   context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
         context.insert(SubscriptionInstanceContainer              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
             (request->subscriptionInstance));              context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));
         context.insert(SubscriptionFilterConditionContainer              context.insert(request->operationContext.get(SubscriptionLanguageListContainer::NAME));
             (request->condition, request->queryLanguage));              context.insert(request->operationContext.get(SubscriptionFilterConditionContainer::NAME));
         context.insert(SubscriptionLanguageListContainer  
             (request->acceptLanguages));  
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));  
         context.insert(ContentLanguageListContainer(request->contentLanguages));  
  
         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();
  
Line 2048 
Line 2065 
             request->nameSpace.getString(),             request->nameSpace.getString(),
             temp);             temp);
  
         String physicalName=_resolvePhysicalName(                  CIMInstance req_provider, req_providerModule;
            request->providerModule.getProperty(                  ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);
            request->providerModule.findProperty("Location")).getValue().toString());  
  
         ProviderName name(                  req_provider = pidc.getProvider();
            request->provider.getProperty(request->provider.findProperty                  req_providerModule = pidc.getModule();
               ("Name")).getValue ().toString (),  
                 String physicalName=_resolvePhysicalName( req_providerModule.getProperty(
                                                     req_providerModule.findProperty("Location")).getValue().toString());
   
                 ProviderName name(req_provider.getProperty(req_provider.findProperty("Name")).getValue ().toString (),
            physicalName,            physicalName,
            request->providerModule.getProperty(request->providerModule.findProperty                                    req_providerModule.getProperty(req_providerModule.findProperty
               ("InterfaceType")).getValue().toString(),               ("InterfaceType")).getValue().toString(),
             0);             0);
  
Line 2067 
Line 2087 
         // convert arguments         // convert arguments
         OperationContext context;         OperationContext context;
  
         context.insert(IdentityContainer(request->userName));                  context.insert(request->operationContext.get(IdentityContainer::NAME));
         context.insert(SubscriptionInstanceContainer                  context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME));
             (request->subscriptionInstance));              context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
         context.insert(SubscriptionLanguageListContainer              context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME));
             (request->acceptLanguages));              context.insert(request->operationContext.get(SubscriptionLanguageListContainer::NAME));
         context.insert(AcceptLanguageListContainer(request->acceptLanguages));  
         context.insert(ContentLanguageListContainer(request->contentLanguages));  
  
         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();         CIMObjectPath subscriptionName = request->subscriptionInstance.getPath();
  
Line 2142 
Line 2160 
         CIMException(),         CIMException(),
         request->queueIds.copyAndPop());         request->queueIds.copyAndPop());
  
     CIMEnableIndicationsResponseMessage * responseforhandler =  
         new CIMEnableIndicationsResponseMessage(  
         request->messageId,  
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);     PEGASUS_ASSERT(response != 0);
  
     // preserve message key     // preserve message key
Line 2158 
Line 2170 
  
     response->dest = request->queueIds.top();     response->dest = request->queueIds.top();
  
     // ATTN: need pointer to Provider Manager Server!  
      EnableIndicationsResponseHandler *handler =      EnableIndicationsResponseHandler *handler =
         new EnableIndicationsResponseHandler(request, response,          new EnableIndicationsResponseHandler(
               request->provider, ProviderManagerService::providerManagerService);              request, response, request->provider, _indicationCallback);
   
           CIMInstance req_provider, req_providerModule;
           ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);
   
           req_provider = pidc.getProvider();
           req_providerModule = pidc.getModule();
  
     try     try
     {     {
        String physicalName=_resolvePhysicalName(            String physicalName=_resolvePhysicalName( req_providerModule.getProperty(
           request->providerModule.getProperty(                                                      req_providerModule.findProperty("Location")).getValue().toString());
               request->providerModule.findProperty("Location")).getValue().toString());  
  
        ProviderName name(            ProviderName name(req_provider.getProperty(req_provider.findProperty("Name")).getValue ().toString (),
                request->provider.getProperty(request->provider.findProperty  
                    ("Name")).getValue ().toString (),  
                physicalName,                physicalName,
                request->providerModule.getProperty(request->providerModule.findProperty                                    req_providerModule.getProperty(req_providerModule.findProperty
                     ("InterfaceType")).getValue().toString(),                     ("InterfaceType")).getValue().toString(),
                0);                0);
  
Line 2250 
Line 2264 
  
     OperationResponseHandler handler(request, response);     OperationResponseHandler handler(request, response);
  
           CIMInstance req_provider, req_providerModule;
           ProviderIdContainer pidc = (ProviderIdContainer)request->operationContext.get(ProviderIdContainer::NAME);
   
           req_provider = pidc.getProvider();
           req_providerModule = pidc.getModule();
   
     try     try
     {     {
        String physicalName=_resolvePhysicalName(        String physicalName=_resolvePhysicalName(
               request->providerModule.getProperty(                req_providerModule.getProperty(
                  request->providerModule.findProperty("Location")).getValue().toString());                  req_providerModule.findProperty("Location")).getValue().toString());
  
        ProviderName name(        ProviderName name(
                request->provider.getProperty(request->provider.findProperty                 req_provider.getProperty(req_provider.findProperty
                    ("Name")).getValue ().toString (),                    ("Name")).getValue ().toString (),
                physicalName,                physicalName,
                request->providerModule.getProperty(request->providerModule.findProperty                  req_providerModule.getProperty(req_providerModule.findProperty
                     ("InterfaceType")).getValue().toString(),                     ("InterfaceType")).getValue().toString(),
             0);             0);
   
         // get cached or load new provider module         // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);
Line 2312 
Line 2331 
     return(response);     return(response);
 } }
  
 Message * DefaultProviderManager::handleConsumeIndicationRequest(const Message *message)  
 {  
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handlConsumeIndicationRequest");  
   
     CIMConsumeIndicationRequestMessage *request =  
         dynamic_cast<CIMConsumeIndicationRequestMessage *>(const_cast<Message *>(message));  
   
     PEGASUS_ASSERT(request != 0);  
   
     CIMResponseMessage * response =  
         new CIMResponseMessage(  
         CIM_CONSUME_INDICATION_RESPONSE_MESSAGE,  
         request->messageId,  
         CIMException(),  
         request->queueIds.copyAndPop());  
   
     PEGASUS_ASSERT(response != 0);  
   
     response->setKey(request->getKey());  
   
     //  Set HTTP method in response from request  
     response->setHttpMethod (request->getHttpMethod ());  
   
     Uint32 type = 3;  
   
     try  
     {  
         ProviderName name(  
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             0);  
   
         /*  
         ProviderName name(  
             String::EMPTY,  
             String::EMPTY,  
             objectPath.toString());  
   
         // resolve provider name  
         name = _resolveProviderName(name);  
         */  
   
         // get cached or load new provider module  
         OpProviderHolder ph =  
             providerManager.getProvider(name.getPhysicalName(), name.getLogicalName(), String::EMPTY);  
   
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Calling provider.: " +  
             ph.GetProvider().getName());  
   
         OperationContext context;  
   
         //l10n  
         // ATTN-CEC 06/04/03 NOTE: I can't find where the consume msg is sent.  This  
         // does not appear to be hooked-up.  When it is added, need to  
         // make sure that Content-Language is set in the consume msg.  
         // NOTE: A-L is not needed to be set in the consume msg.  
         // add the langs to the context  
         context.insert(ContentLanguageListContainer(request->contentLanguages));  
   
         CIMInstance indication_copy = request->indicationInstance;  
   
         SimpleIndicationResponseHandler handler;  
   
         ph.GetProvider().consumeIndication(context,  
             "",  
             indication_copy);  
     }  
     catch(CIMException & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
   
         response->cimException = CIMException(e);  
     }  
     catch(Exception & e)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: " + e.getMessage());  
         //l10n  
         //response->cimException = CIMException(CIM_ERR_FAILED, "Internal Error");  
         response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(  
             "ProviderManager.DefaultProviderManager.INTERNAL_ERROR",  
             "Internal Error"));  
     }  
     catch(...)  
     {  
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,  
             "Exception: Unknown");  
         //l10n  
         //response->cimException = CIMException(CIM_ERR_FAILED, "Unknown Error");  
         response->cimException = CIMException(CIM_ERR_FAILED, MessageLoaderParms(  
             "ProviderManager.DefaultProviderManager.UNKNOWN_ERROR",  
             "Unknown Error"));  
     }  
   
     PEG_METHOD_EXIT();  
   
     return(response);  
 }  
   
   
 Message *DefaultProviderManager::handleExportIndicationRequest(const Message *message) Message *DefaultProviderManager::handleExportIndicationRequest(const Message *message)
 { {
    PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManagerService::handlExportIndicationRequest");    PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManagerService::handlExportIndicationRequest");
Line 2442 
Line 2358 
  
     try     try
     {     {
        ProviderName name(  
             String::EMPTY,  
             String::EMPTY,  
             String::EMPTY,  
             0);  
   
        // resolve provider name        // resolve provider name
        name = _resolveProviderName(request->destinationPath);          ProviderName name = _resolveProviderName(
               request->operationContext.get(ProviderIdContainer::NAME));
  
        // get cached or load new provider module        // get cached or load new provider module
         OpProviderHolder ph =         OpProviderHolder ph =
Line 2468 
Line 2379 
 // make sure that Content-Language is set in the consume msg. // make sure that Content-Language is set in the consume msg.
 // NOTE: A-L is not needed to be set in the consume msg. // NOTE: A-L is not needed to be set in the consume msg.
       // add the langs to the context       // add the langs to the context
       context.insert(ContentLanguageListContainer(request->contentLanguages));  
         context.insert(request->operationContext.get(ContentLanguageListContainer::NAME));
  
       CIMInstance indication_copy = request->indicationInstance;       CIMInstance indication_copy = request->indicationInstance;
       pm_service_op_lock op_lock(&ph.GetProvider());       pm_service_op_lock op_lock(&ph.GetProvider());
Line 2528 
Line 2440 
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     Array<Uint16> operationalStatus;     Array<Uint16> operationalStatus;
     Boolean disableProviderOnly = request->disableProviderOnly;  
     CIMException cimException;     CIMException cimException;
  
     ProviderRegistrationManager * _providerRegistrationManager = GetProviderRegistrationManager();      try
       {
     try {  
       // get provider module name       // get provider module name
       String moduleName;       String moduleName;
       CIMInstance mInstance = request->providerModule;       CIMInstance mInstance = request->providerModule;
       Uint32 pos = mInstance.findProperty(CIMName ("Name"));       Uint32 pos = mInstance.findProperty(CIMName ("Name"));
           PEGASUS_ASSERT(pos != PEG_NOT_FOUND);
       if(pos != PEG_NOT_FOUND) {  
          mInstance.getProperty(pos).getValue().get(moduleName);          mInstance.getProperty(pos).getValue().get(moduleName);
       }  
  
       Boolean disableProviderOnly = request->disableProviderOnly;       Boolean disableProviderOnly = request->disableProviderOnly;
  
       //       //
       // get operational status  
       //  
       if (!disableProviderOnly) {  
          Uint32 pos2 = mInstance.findProperty(CIMName ("OperationalStatus"));  
                if (pos2 != PEG_NOT_FOUND) {  
                //  
                //  ATTN-CAKG-P2-20020821: Check for null status?  
                //  
                mInstance.getProperty(pos2).getValue().get(operationalStatus);  
          }  
   
          //  
          // update module status from OK to Stopping  
          //  
          for (Uint32 i=0, n = operationalStatus.size(); i < n; i++) {  
                   if (operationalStatus[i] == _MODULE_OK) {  
                   operationalStatus.remove(i);  
                }  
          }  
   
          operationalStatus.append(_MODULE_STOPPING);  
   
          if(_providerRegistrationManager->setProviderModuleStatus  
                (moduleName, operationalStatus) == false) {  
                //l10n  
                //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, "set module status failed.");  
                   throw PEGASUS_CIM_EXCEPTION_L(  
                      CIM_ERR_FAILED,  
                      MessageLoaderParms("ProviderManager.ProviderManagerService."  
                               "SET_MODULE_STATUS_FAILED","set module status failed."));  
          }  
       }  
   
       // Unload providers       // Unload providers
           //
       Array<CIMInstance> _pInstances = request->providers;       Array<CIMInstance> _pInstances = request->providers;
          Array<Boolean> _indicationProviders = request->indicationProviders;          Array<Boolean> _indicationProviders = request->indicationProviders;
  
Line 2587 
Line 2463 
             mInstance.getProperty(             mInstance.getProperty(
                mInstance.findProperty("Location")).getValue().toString());                mInstance.findProperty("Location")).getValue().toString());
  
       for (Uint32 i = 0, n = _pInstances.size(); i < n; i++) {          for(Uint32 i = 0, n = _pInstances.size(); i < n; i++)
           {
          String pName(_pInstances[i].getProperty(          String pName(_pInstances[i].getProperty(
                   _pInstances[i].findProperty("Name")).getValue().toString());                   _pInstances[i].findProperty("Name")).getValue().toString());
  
          Sint16 ret_value = providerManager.disableProvider(physicalName,pName);          Sint16 ret_value = providerManager.disableProvider(physicalName,pName);
  
          if (ret_value == 0) {              if (ret_value == 0)
               {
             // disable failed since there are pending requests,             // disable failed since there are pending requests,
             // update module status from Stopping to OK if                  // stop trying to disable other providers in this module.
             // disableProviderOnly is not true  
             if (!disableProviderOnly) {  
                for(Uint32 j=0, m = operationalStatus.size(); j < m; j++) {  
                   if (operationalStatus[j] == _MODULE_STOPPING) {  
                      operationalStatus.remove(j);  
                   }  
                }  
   
                operationalStatus.append(_MODULE_OK);                operationalStatus.append(_MODULE_OK);
                   break;
                if (_providerRegistrationManager->setProviderModuleStatus  
                      (moduleName, operationalStatus) == false) {  
                   throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,  
                      MessageLoaderParms("ProviderManager.ProviderManagerService."  
                         "SET_MODULE_STATUS_FAILED","set module status failed."));  
                }  
             }  
          }          }
               else if (ret_value == 1)  // Success
          else if (ret_value == 1) {              {
             // if It is an indication provider             // if It is an indication provider
             // remove the entry from the table since the             // remove the entry from the table since the
             // provider has been disabled             // provider has been disabled
             if (_indicationProviders[i]) {                  if (_indicationProviders[i])
                _removeEntry(_generateKey(pName,physicalName));                  {
                       delete _removeEntry(_generateKey(pName,physicalName));
             }             }
          }          }
          else {              else
               {
             // disable failed for other reason, throw exception             // disable failed for other reason, throw exception
             // update module status from Stopping to OK if                  throw PEGASUS_CIM_EXCEPTION_L(
             // disableProviderOnly is not true                      CIM_ERR_FAILED,
             if (!disableProviderOnly) {                      MessageLoaderParms(
                for (Uint32 j=0, m = operationalStatus.size(); j < m; j++) {                          "ProviderManager.ProviderManagerService."
                   if (operationalStatus[j] == _MODULE_STOPPING) {                              "DISABLE_PROVIDER_FAILED",
                      operationalStatus.remove(j);                          "Failed to disable the provider."));
                   }  
                }  
   
                operationalStatus.append(_MODULE_OK);  
   
                if (_providerRegistrationManager->setProviderModuleStatus  
                            (moduleName, operationalStatus) == false) {  
                   throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,  
                      MessageLoaderParms("ProviderManager.ProviderManagerService."  
                         "SET_MODULE_STATUS_FAILED","set module status failed."));  
                }  
             }  
   
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,  
                MessageLoaderParms("ProviderManager.ProviderManagerService."  
                   "DISABLE_PROVIDER_FAILED","Failed to disable the provider."));  
          }  
       }  
       // disable succeed  
       // update module status from Stopping to Stopped if  
       // disableProviderOnly is not true  
       if (!disableProviderOnly) {  
          // update module status from Stopping to Stopped  
          for (Uint32 j=0, m = operationalStatus.size(); j < m; j++) {  
             if (operationalStatus[j] == _MODULE_STOPPING) {  
                operationalStatus.remove(j);  
                operationalStatus.append(_MODULE_STOPPED);  
             }  
          }  
   
          if (_providerRegistrationManager->setProviderModuleStatus  
                (moduleName, operationalStatus) == false) {  
             //l10n  
             //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
             //"set module status failed.");  
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,  
                MessageLoaderParms("ProviderManager.ProviderManagerService."  
                   "SET_MODULE_STATUS_FAILED","set module status failed."));  
          }          }
       }       }
     }     }
Line 2684 
Line 2511 
                          "Exception: " + e.getMessage());                          "Exception: " + e.getMessage());
         cimException = CIMException(CIM_ERR_FAILED, e.getMessage());         cimException = CIMException(CIM_ERR_FAILED, e.getMessage());
     }     }
     catch(...) {      catch(...)
       {
         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                          "Exception: Unknown");                          "Exception: Unknown");
         //l10n         //l10n
Line 2696 
Line 2524 
                 "Unknown Error"));                 "Unknown Error"));
     }     }
  
       if (cimException.getCode() == CIM_ERR_SUCCESS)
       {
           // Status is set to OK if a provider was busy
           if (operationalStatus.size() == 0)
           {
               operationalStatus.append(_MODULE_STOPPED);
           }
       }
       else
       {
           // If exception occurs, module is not stopped
           operationalStatus.append(_MODULE_OK);
       }
   
     CIMDisableModuleResponseMessage * response =     CIMDisableModuleResponseMessage * response =
         new CIMDisableModuleResponseMessage(         new CIMDisableModuleResponseMessage(
         request->messageId,         request->messageId,
Line 2716 
Line 2558 
  
 Message * DefaultProviderManager::handleEnableModuleRequest(const Message * message) Message * DefaultProviderManager::handleEnableModuleRequest(const Message * message)
 { {
     // HACK  
     ProviderRegistrationManager * _providerRegistrationManager = GetProviderRegistrationManager();  
   
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleEnableModuleRequest");     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "DefaultProviderManager::handleEnableModuleRequest");
  
     CIMEnableModuleRequestMessage * request =     CIMEnableModuleRequestMessage * request =
Line 2726 
Line 2565 
  
     PEGASUS_ASSERT(request != 0);     PEGASUS_ASSERT(request != 0);
  
     //  
     // get module status  
     //  
     CIMInstance mInstance = request->providerModule;  
     Array<Uint16> operationalStatus;     Array<Uint16> operationalStatus;
     Uint32 pos = mInstance.findProperty(CIMName ("OperationalStatus"));  
   
     if(pos != PEG_NOT_FOUND)  
     {  
         //  
         //  ATTN-CAKG-P2-20020821: Check for null status?  
         //  
         mInstance.getProperty(pos).getValue().get(operationalStatus);  
     }  
   
     // update module status from Stopped to OK  
     for(Uint32 i=0, n = operationalStatus.size(); i < n; i++)  
     {  
         if(operationalStatus[i] == _MODULE_STOPPED)  
         {  
             operationalStatus.remove(i);  
         }  
     }  
   
     operationalStatus.append(_MODULE_OK);     operationalStatus.append(_MODULE_OK);
  
     //  
     // get module name  
     //  
     String moduleName;  
   
     Uint32 pos2 = mInstance.findProperty(CIMName ("Name"));  
   
     if(pos2 != PEG_NOT_FOUND)  
     {  
         mInstance.getProperty(pos2).getValue().get(moduleName);  
     }  
   
     if(_providerRegistrationManager->setProviderModuleStatus  
         (moduleName, operationalStatus) == false)  
     {  
         //l10n  
         //throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, "set module status failed.");  
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms(  
             "ProviderManager.DefaultProviderManager.SET_MODULE_STATUS_FAILED",  
             "set module status failed."));  
     }  
   
     CIMEnableModuleResponseMessage * response =     CIMEnableModuleResponseMessage * response =
         new CIMEnableModuleResponseMessage(         new CIMEnableModuleResponseMessage(
         request->messageId,         request->messageId,
Line 2781 
Line 2575 
         request->queueIds.copyAndPop(),         request->queueIds.copyAndPop(),
         operationalStatus);         operationalStatus);
  
     PEGASUS_ASSERT(response != 0);  
   
     // preserve message key     // preserve message key
     response->setKey(request->getKey());     response->setKey(request->getKey());
  
Line 2790 
Line 2582 
     response->setHttpMethod (request->getHttpMethod ());     response->setHttpMethod (request->getHttpMethod ());
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
   
     return(response);     return(response);
 } }
  
Line 2895 
Line 2686 
     return tableKey;     return tableKey;
 } }
  
 ProviderName DefaultProviderManager::_resolveProviderName(const ProviderName & providerName)  ProviderName DefaultProviderManager::_resolveProviderName(
       const ProviderIdContainer & providerId)
 { {
     ProviderName temp = findProvider(providerName);      String providerName;
     String physicalName = _resolvePhysicalName(temp.getPhysicalName());      String fileName;
     temp.setPhysicalName(physicalName);      String interfaceName;
       CIMValue genericValue;
   
       genericValue = providerId.getProvider().getProperty(
           providerId.getProvider().findProperty("Name")).getValue();
       genericValue.get(providerName);
   
       genericValue = providerId.getModule().getProperty(
           providerId.getModule().findProperty("Location")).getValue();
       genericValue.get(fileName);
       fileName = _resolvePhysicalName(fileName);
   
       // ATTN: This attribute is probably not required
       genericValue = providerId.getModule().getProperty(
           providerId.getModule().findProperty("InterfaceType")).getValue();
       genericValue.get(interfaceName);
  
     return(temp);      // Check if the provider module is blocked
 }      Array<Uint16> operationalStatus;
       Uint32 pos = providerId.getModule().findProperty(
           CIMName("OperationalStatus"));
       PEGASUS_ASSERT(pos != PEG_NOT_FOUND);
       providerId.getModule().getProperty(pos).getValue().get(operationalStatus);
  
 ProviderName DefaultProviderManager::_resolveProviderName(String & destinationPath)      for(Uint32 i = 0; i < operationalStatus.size(); i++)
 { {
     ProviderName temp = findProvider(destinationPath);          if(operationalStatus[i] == _MODULE_STOPPED ||
              operationalStatus[i] == _MODULE_STOPPING)
     String physicalName = _resolvePhysicalName(temp.getPhysicalName());          {
               throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,
                   MessageLoaderParms(
                       "ProviderManager.ProviderManagerService.PROVIDER_BLOCKED",
                       "provider blocked."));
           }
       }
  
     temp.setPhysicalName(physicalName);      return ProviderName(providerName, fileName, interfaceName, 0);
   }
  
     return(temp);  Boolean DefaultProviderManager::hasActiveProviders()
   {
       return providerManager.hasActiveProviders();
 } }
  
 void DefaultProviderManager::unload_idle_providers()  void DefaultProviderManager::unloadIdleProviders()
 { {
    providerManager.unload_idle_providers();      providerManager.unloadIdleProviders();
 } }
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.11.4.5  
changed lines
  Added in v.1.34

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2