(file) Return to ProviderRegistrationProvider.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ControlProviders / ProviderRegistrationProvider

Diff for /pegasus/src/Pegasus/ControlProviders/ProviderRegistrationProvider/ProviderRegistrationProvider.cpp between version 1.98 and 1.117

version 1.98, 2007/11/07 09:18:05 version 1.117, 2010/10/29 05:29:51
Line 1 
Line 1 
 //%2006////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development  // Licensed to The Open Group (TOG) under one or more contributor license
 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.  // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;  // this work for additional information regarding copyright ownership.
 // IBM Corp.; EMC Corporation, The Open Group.  // Each contributor licenses this file to you under the OpenPegasus Open
 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;  // Source License; you may not use this file except in compliance with the
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.  // License.
 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;  //
 // EMC Corporation; VERITAS Software Corporation; The Open Group.  // Permission is hereby granted, free of charge, to any person obtaining a
 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;  // copy of this software and associated documentation files (the "Software"),
 // EMC Corporation; Symantec Corporation; The Open Group.  // to deal in the Software without restriction, including without limitation
 //  // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 // Permission is hereby granted, free of charge, to any person obtaining a copy  // and/or sell copies of the Software, and to permit persons to whom the
 // of this software and associated documentation files (the "Software"), to  // Software is furnished to do so, subject to the following conditions:
 // deal in the Software without restriction, including without limitation the  //
 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  // The above copyright notice and this permission notice shall be included
 // sell copies of the Software, and to permit persons to whom the Software is  // in all copies or substantial portions of the Software.
 // furnished to do so, subject to the following conditions:  //
 //  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT  // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR  // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT  // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  
 // //
 //==============================================================================  //////////////////////////////////////////////////////////////////////////
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #include "ProviderRegistrationProvider.h" #include "ProviderRegistrationProvider.h"
Line 40 
Line 38 
 #include <Pegasus/Common/System.h> #include <Pegasus/Common/System.h>
 #include <Pegasus/Common/MessageLoader.h> //l10n #include <Pegasus/Common/MessageLoader.h> //l10n
 #include <Pegasus/Common/Constants.h> #include <Pegasus/Common/Constants.h>
   #include <Pegasus/Common/Tracer.h>
   #include <Pegasus/Common/CIMNameCast.h>
   
   #include <Pegasus/Server/ProviderRegistrationManager/ProviderManagerMap.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 /** /**
    The name of the CapabilityID property for provider capabilities class    The name of the CapabilityID property for provider capabilities class
 */ */
 static const CIMName _PROPERTY_CAPABILITYID  = CIMName ("CapabilityID");  static const CIMName _PROPERTY_CAPABILITYID = CIMNameCast("CapabilityID");
  
 /** /**
    stopping provider method    stopping provider method
 */ */
 static const CIMName _STOP_PROVIDER     = CIMName ("Stop");  static const CIMName _STOP_PROVIDER = CIMNameCast("Stop");
  
 /** /**
    starting provider method    starting provider method
 */ */
 static const CIMName _START_PROVIDER   = CIMName ("Start");  static const CIMName _START_PROVIDER = CIMNameCast("Start");
   
   /**
      setting provider module group method
   */
   static const CIMName _SET_MODULEGROUPNAME = CIMNameCast("SetModuleGroupName");
   
   /**
      input param for setModuleGroupName name method
   */
   static const CIMName _PARAM_MODULEGROUPNAME = CIMNameCast("ModuleGroupName");
   
  
 ProviderRegistrationProvider::ProviderRegistrationProvider( ProviderRegistrationProvider::ProviderRegistrationProvider(
     ProviderRegistrationManager * providerRegistrationManager)     ProviderRegistrationManager * providerRegistrationManager)
Line 220 
Line 233 
         userName = String::EMPTY;         userName = String::EMPTY;
     }     }
  
   #ifndef PEGASUS_OS_ZOS
     if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName))     if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName))
     {     {
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,MessageLoaderParms(         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,MessageLoaderParms(
Line 229 
Line 243 
             "You must have superuser privilege to modify the"             "You must have superuser privilege to modify the"
                 " registration."));                 " registration."));
     }     }
   #endif
  
     if(!instanceReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP))     if(!instanceReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP))
     {     {
Line 278 
Line 293 
     _providerRegistrationManager->modifyInstance(     _providerRegistrationManager->modifyInstance(
         instanceReference, instanceObject, includeQualifiers, propertyArray);         instanceReference, instanceObject, includeQualifiers, propertyArray);
  
   #ifdef PEGASUS_ENABLE_INTEROP_PROVIDER
       _sendUpdateCacheMessagetoInteropProvider(context);
   #endif
   
     // complete processing the request     // complete processing the request
     handler.complete();     handler.complete();
 } }
Line 301 
Line 320 
         userName = String::EMPTY;         userName = String::EMPTY;
     }     }
  
   #ifndef PEGASUS_OS_ZOS
     if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName))     if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName))
     {     {
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED, MessageLoaderParms(         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED, MessageLoaderParms(
Line 309 
Line 329 
                 "SUPERUSER_PRIVILEGE_REQUIRED_REGISTER_PROVIDERS",                 "SUPERUSER_PRIVILEGE_REQUIRED_REGISTER_PROVIDERS",
             "You must have superuser privilege to register providers."));             "You must have superuser privilege to register providers."));
     }     }
   #endif
  
     CIMName className = instanceReference.getClassName();     CIMName className = instanceReference.getClassName();
     CIMNamespaceName nameSpace = instanceReference.getNameSpace();     CIMNamespaceName nameSpace = instanceReference.getNameSpace();
Line 346 
Line 367 
         if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULE_NAME) ==         if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULE_NAME) ==
             PEG_NOT_FOUND)             PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_NAME_IN_PG_PROVIDERMODULE",                     "MISSING_NAME_IN_PG_PROVIDERMODULE",
                 "Missing Name which is required property in PG_ProviderModule"                      "Missing Name which is required property in "
                     " class."));                          "PG_ProviderModule class."));
         }         }
  
         if (instanceObject.findProperty(_PROPERTY_VENDOR) == PEG_NOT_FOUND)         if (instanceObject.findProperty(_PROPERTY_VENDOR) == PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_VENDOR_IN_PG_PROVIDERMODULE",                     "MISSING_VENDOR_IN_PG_PROVIDERMODULE",
Line 364 
Line 387 
                     " PG_ProviderModule class."));                     " PG_ProviderModule class."));
         }         }
  
           Uint32 bitnessIndx = instanceObject.findProperty(
                PEGASUS_PROPERTYNAME_MODULE_BITNESS);
   
           if (bitnessIndx != PEG_NOT_FOUND)
           {
               CIMValue value = instanceObject.getProperty(bitnessIndx).getValue();
               if (!value.isNull())
               {
                   if (value.getType() != CIMTYPE_UINT16)
                   {
                       throw PEGASUS_CIM_EXCEPTION(CIM_ERR_TYPE_MISMATCH,
                           PEGASUS_PROPERTYNAME_MODULE_BITNESS.getString());
                   }
                   Uint16 bitness;
                   value.get(bitness);
                   if(bitness != PG_PROVMODULE_BITNESS_DEFAULT
   #ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT
                       && bitness != PG_PROVMODULE_BITNESS_32
                       && bitness != PG_PROVMODULE_BITNESS_64
   #endif
                       )
                   {
                       throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED,
                           PEGASUS_PROPERTYNAME_MODULE_BITNESS.getString());
                   }
               }
           }
   
         if (instanceObject.findProperty(_PROPERTY_VERSION) == PEG_NOT_FOUND)         if (instanceObject.findProperty(_PROPERTY_VERSION) == PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_VERSION_IN_PG_PROVIDERMODULE",                     "MISSING_VERSION_IN_PG_PROVIDERMODULE",
Line 378 
Line 430 
             instanceObject.findProperty(_PROPERTY_INTERFACETYPE);             instanceObject.findProperty(_PROPERTY_INTERFACETYPE);
         if (ifcTypeIndex == PEG_NOT_FOUND)         if (ifcTypeIndex == PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_INTERFACETYPE_IN_PG_PROVIDERMODULE",                     "MISSING_INTERFACETYPE_IN_PG_PROVIDERMODULE",
Line 389 
Line 442 
         instanceObject.getProperty(ifcTypeIndex).getValue().         instanceObject.getProperty(ifcTypeIndex).getValue().
             get(ifcTypeString);             get(ifcTypeString);
  
         if (ifcTypeString != "C++Default"          String ifcEmptyVersion;
 #ifdef PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER          if (!ProviderManagerMap::instance().
             && ifcTypeString != "CMPI"                  isValidProvMgrIfc(ifcTypeString, ifcEmptyVersion))
 #endif  
 #ifdef PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER  
             && (ifcTypeString != "JMPI")  
             && (ifcTypeString != "JMPIExperimental")  
 #endif  
                 )  
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,
                 MessageLoaderParms(                 MessageLoaderParms(
Line 411 
Line 458 
             instanceObject.findProperty(_PROPERTY_INTERFACEVERSION);             instanceObject.findProperty(_PROPERTY_INTERFACEVERSION);
         if (ifcVersionIndex == PEG_NOT_FOUND)         if (ifcVersionIndex == PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_INTERFACEVERSION_IN_PG_PROVIDERMODULE",                     "MISSING_INTERFACEVERSION_IN_PG_PROVIDERMODULE",
Line 421 
Line 469 
         String ifcVersionString;         String ifcVersionString;
         instanceObject.getProperty(ifcVersionIndex).getValue().         instanceObject.getProperty(ifcVersionIndex).getValue().
             get(ifcVersionString);             get(ifcVersionString);
         if (  
 #ifdef PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER          if (!ProviderManagerMap::instance().isValidProvMgrIfc(
            (ifcTypeString == "CMPI" &&                      ifcTypeString, ifcVersionString))
             ifcVersionString != "2.0.0") ||  
 #endif  
 #ifdef PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER  
            (ifcTypeString == "JMPI" &&  
             ifcVersionString != "1.0.0" &&  
             ifcVersionString != "2.0.0" &&  
             ifcVersionString != "2.2.0") ||  
            (ifcTypeString == "JMPIExperimental" &&  
             ifcVersionString != "0.0.1") ||  
 #endif  
            (ifcTypeString == "C++Default" &&  
             ifcVersionString != "2.1.0" &&  
             ifcVersionString != "2.2.0" &&  
             ifcVersionString != "2.3.0" &&  
             ifcVersionString != "2.5.0" &&  
             ifcVersionString != "2.6.0"))  
         {         {
         String unsupported = "InterfaceVersion";         String unsupported = "InterfaceVersion";
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "UNSUPPORTED_INTERFACEVERSION_VALUE",                     "UNSUPPORTED_INTERFACEVERSION_VALUE",
                 "Unsupported InterfaceVersion value: \"$0\"",ifcVersionString));                      "Unsupported InterfaceVersion value: \"$0\"",
                   ifcVersionString));
         }         }
  
         if (instanceObject.findProperty(_PROPERTY_LOCATION) == PEG_NOT_FOUND)         if (instanceObject.findProperty(_PROPERTY_LOCATION) == PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_LOCATION_IN_PG_PROVIDERMODULE",                     "MISSING_LOCATION_IN_PG_PROVIDERMODULE",
Line 489 
Line 524 
 #ifdef PEGASUS_DISABLE_PROV_USERCTXT #ifdef PEGASUS_DISABLE_PROV_USERCTXT
             if (userContext != PG_PROVMODULE_USERCTXT_CIMSERVER)             if (userContext != PG_PROVMODULE_USERCTXT_CIMSERVER)
             {             {
                 throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,                  throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,
                     MessageLoaderParms(                     MessageLoaderParms(
                         "ControlProviders.ProviderRegistrationProvider."                         "ControlProviders.ProviderRegistrationProvider."
                             "ProviderRegistrationProvider."                             "ProviderRegistrationProvider."
Line 523 
Line 558 
                     instanceObject.getProperty(designatedUserIndex).getValue()                     instanceObject.getProperty(designatedUserIndex).getValue()
                         .isNull())                         .isNull())
                 {                 {
                     throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,                      throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                         MessageLoaderParms(                         MessageLoaderParms(
                             "ControlProviders.ProviderRegistrationProvider."                             "ControlProviders.ProviderRegistrationProvider."
                                 "ProviderRegistrationProvider."                                 "ProviderRegistrationProvider."
Line 552 
Line 587 
         if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) ==         if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) ==
             PEG_NOT_FOUND)             PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_PROVIDERMODULENAME_IN_PG_PROVIDERCAPABILITIES",                     "MISSING_PROVIDERMODULENAME_IN_PG_PROVIDERCAPABILITIES",
Line 564 
Line 600 
             PEG_NOT_FOUND)             PEG_NOT_FOUND)
         {         {
             String missing = "ProviderName";             String missing = "ProviderName";
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY",                          "ProviderRegistrationProvider."
                 "Missing ProviderName which is required property in"                          "MISSING_PROVIDERNAME_IN_PG_PROVIDERCAPABILITIES",
                       "Missing the required ProviderName property in "
                     " PG_ProviderCapabilities class."));                     " PG_ProviderCapabilities class."));
         }         }
  
         if (instanceObject.findProperty(_PROPERTY_CAPABILITYID) ==         if (instanceObject.findProperty(_PROPERTY_CAPABILITYID) ==
             PEG_NOT_FOUND)             PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSINGCAPABILITYID_IN_PG_PROVIDERCAPABILITIES",                          "MISSING_CAPABILITYID_IN_PG_PROVIDERCAPABILITIES",
                 "Missing CapabilityID which is required property in"                      "Missing the required CapabilityID property in "
                     " PG_ProviderCapabilities class."));                     " PG_ProviderCapabilities class."));
         }         }
  
         if (instanceObject.findProperty(_PROPERTY_CLASSNAME) == PEG_NOT_FOUND)         if (instanceObject.findProperty(_PROPERTY_CLASSNAME) == PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_CLASSNAME_IN_PG_PROVIDERCAPABILITIES",                     "MISSING_CLASSNAME_IN_PG_PROVIDERCAPABILITIES",
Line 609 
Line 649 
  
         if (namespacesArray.size() == 0)         if (namespacesArray.size() == 0)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_NAMESPACES_IN_PG_PROVIDERCAPABILITIES",                     "MISSING_NAMESPACES_IN_PG_PROVIDERCAPABILITIES",
Line 634 
Line 675 
  
         if (providerTypeArray.size() == 0)         if (providerTypeArray.size() == 0)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                 MessageLoaderParms(                 MessageLoaderParms(
                     "ControlProviders.ProviderRegistrationProvider."                     "ControlProviders.ProviderRegistrationProvider."
                         "ProviderRegistrationProvider."                         "ProviderRegistrationProvider."
Line 653 
Line 694 
 #endif #endif
                                           )                                           )
             {             {
                 throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,                  throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,
                     MessageLoaderParms(                     MessageLoaderParms(
                         "ControlProviders.ProviderRegistrationProvider."                         "ControlProviders.ProviderRegistrationProvider."
                             "ProviderRegistrationProvider.UNSUPPORTED_"                             "ProviderRegistrationProvider.UNSUPPORTED_"
Line 681 
Line 722 
                 "Missing ProviderModuleName which is required property in"                 "Missing ProviderModuleName which is required property in"
                     " PG_ConsumerCapabilities class.");                     " PG_ConsumerCapabilities class.");
  
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms);              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER, parms);
         }         }
  
         if (instanceObject.findProperty(_PROPERTY_PROVIDERNAME) ==         if (instanceObject.findProperty(_PROPERTY_PROVIDERNAME) ==
Line 695 
Line 736 
                 "Missing ProviderName which is required property in"                 "Missing ProviderName which is required property in"
                     " PG_ConsumerCapabilities class.");                     " PG_ConsumerCapabilities class.");
  
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms);              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER, parms);
         }         }
  
         if (instanceObject.findProperty(_PROPERTY_CAPABILITYID) ==         if (instanceObject.findProperty(_PROPERTY_CAPABILITYID) ==
Line 706 
Line 747 
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_CAPABILITY_ID_WHICH_IS_REQUIRED",                     "MISSING_CAPABILITY_ID_WHICH_IS_REQUIRED",
                 "Missing CapabilityID which is required property in"                  "Missing the required CapabilityID property in "
                     " PG_ConsumerCapabilities class.");                     " PG_ConsumerCapabilities class.");
  
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms);              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER, parms);
         }         }
  
         if (instanceObject.findProperty         if (instanceObject.findProperty
Line 723 
Line 764 
                 "Missing ProviderType which is required property in"                 "Missing ProviderType which is required property in"
                     " PG_ConsumerCapabilities class.");                     " PG_ConsumerCapabilities class.");
  
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms);              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER, parms);
         }         }
  
         if (instanceObject.findProperty(_PROPERTY_INDICATIONDESTINATIONS) ==         if (instanceObject.findProperty(_PROPERTY_INDICATIONDESTINATIONS) ==
Line 737 
Line 778 
                 "Missing Destinations which is required property in"                 "Missing Destinations which is required property in"
                     " PG_ConsumerCapabilities class.");                     " PG_ConsumerCapabilities class.");
  
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, parms);              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER, parms);
         }         }
     }     }
     else // PEGASUS_CLASSNAME_PROVIDER     else // PEGASUS_CLASSNAME_PROVIDER
Line 746 
Line 787 
         // Name and ProviderModuleName properties must be set         // Name and ProviderModuleName properties must be set
         //         //
         if (instanceObject.findProperty         if (instanceObject.findProperty
                 (_PROPERTY_PROVIDER_NAME) == PEG_NOT_FOUND)                  (PEGASUS_PROPERTYNAME_NAME) == PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider.MISSING_REQUIRED_PROPERTY",                          "ProviderRegistrationProvider."
                 "Missing Name which is required property in"                          "MISSING_NAME_IN_PG_PROVIDER",
                     " PG_Provider class."));                      "Missing the required Name property in PG_Provider "
                           "class."));
         }         }
  
         if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) ==         if (instanceObject.findProperty(_PROPERTY_PROVIDERMODULENAME) ==
             PEG_NOT_FOUND)             PEG_NOT_FOUND)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,MessageLoaderParms(              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                   MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
                     "MISSING_PROVIDERMODULENAME_IN_PG_PROVIDER",                     "MISSING_PROVIDERMODULENAME_IN_PG_PROVIDER",
Line 773 
Line 817 
     returnReference = _providerRegistrationManager->createInstance(     returnReference = _providerRegistrationManager->createInstance(
         instanceReference, instance);         instanceReference, instance);
  
   #ifdef PEGASUS_ENABLE_INTEROP_PROVIDER
       if(className.equal (PEGASUS_CLASSNAME_PROVIDER) ||
          className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES))
       {
           _sendUpdateCacheMessagetoInteropProvider(context);
       }
   #endif
   
     handler.deliver(returnReference);     handler.deliver(returnReference);
  
     // complete processing request     // complete processing request
Line 797 
Line 849 
         userName = String::EMPTY;         userName = String::EMPTY;
     }     }
  
   #ifndef PEGASUS_OS_ZOS
     if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName))     if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName))
     {     {
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,MessageLoaderParms(         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,MessageLoaderParms(
Line 805 
Line 858 
                 "SUPERUSER_PRIVILEGE_REQUIRED_UNREGISTER_PROVIDERS",                 "SUPERUSER_PRIVILEGE_REQUIRED_UNREGISTER_PROVIDERS",
             "You must have superuser privilege to unregister providers."));             "You must have superuser privilege to unregister providers."));
     }     }
   #endif
  
     if(!instanceReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP))     if(!instanceReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP))
     {     {
Line 865 
Line 919 
         // if _PROPERTY_PROVIDERMODULENAME key not found         // if _PROPERTY_PROVIDERMODULENAME key not found
         if( !moduleFound)         if( !moduleFound)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                     MessageLoaderParms(                     MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider."                     "ProviderRegistrationProvider."
Line 927 
Line 981 
         // if _PROPERTY_PROVIDERMODULE_NAME key not found         // if _PROPERTY_PROVIDERMODULE_NAME key not found
         if( !moduleFound)         if( !moduleFound)
         {         {
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,              throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
                 MessageLoaderParms(                 MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                 "ProviderRegistrationProvider.NAME_KEY_NOT_FOUND",                 "ProviderRegistrationProvider.NAME_KEY_NOT_FOUND",
Line 970 
Line 1024 
  
     _providerRegistrationManager->deleteInstance(instanceReference);     _providerRegistrationManager->deleteInstance(instanceReference);
  
   #ifdef PEGASUS_ENABLE_INTEROP_PROVIDER
       if(className.equal (PEGASUS_CLASSNAME_PROVIDER) ||
          className.equal (PEGASUS_CLASSNAME_PROVIDERCAPABILITIES) ||
          className.equal (PEGASUS_CLASSNAME_PROVIDERMODULE))
       {
           _sendUpdateCacheMessagetoInteropProvider(context);
       }
   #endif
     // complete processing the request     // complete processing the request
     handler.complete();     handler.complete();
 } }
Line 994 
Line 1056 
         userName = String::EMPTY;         userName = String::EMPTY;
     }     }
  
   #ifndef PEGASUS_OS_ZOS
     if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName))     if ((userName != String::EMPTY) && !System::isPrivilegedUser(userName))
     {     {
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_ACCESS_DENIED,
Line 1004 
Line 1067 
             "You must have superuser privilege to disable or enable"             "You must have superuser privilege to disable or enable"
                 " providers."));                 " providers."));
     }     }
   #endif
  
     if(!objectReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP))     if(!objectReference.getNameSpace().equal (PEGASUS_NAMESPACENAME_INTEROP))
     {     {
Line 1042 
Line 1106 
         }         }
     }     }
  
   
     // if _PROPERTY_PROVIDERMODULE_NAME key not found     // if _PROPERTY_PROVIDERMODULE_NAME key not found
     if( !moduleFound)     if( !moduleFound)
     {     {
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,MessageLoaderParms(          throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_INVALID_PARAMETER,
               MessageLoaderParms(
                 "ControlProviders.ProviderRegistrationProvider."                 "ControlProviders.ProviderRegistrationProvider."
                     "ProviderRegistrationProvider.NAME_KEY_NOT_FOUND",                     "ProviderRegistrationProvider.NAME_KEY_NOT_FOUND",
                 "key Name was not found"));                 "key Name was not found"));
Line 1065 
Line 1131 
         // enable module         // enable module
         ret_value = _enableModule(objectReference, moduleName, al);         ret_value = _enableModule(objectReference, moduleName, al);
     }     }
       else if (methodName.equal(_SET_MODULEGROUPNAME))
       {
           String paramName;
           if (!inParameters.size() ||
               ((paramName = inParameters[0].getParameterName())
                   != _PARAM_MODULEGROUPNAME))
           {
               throw PEGASUS_CIM_EXCEPTION(CIM_ERR_INVALID_PARAMETER, paramName);
           }
           // set group
           String moduleGroupName;
           inParameters[0].getValue().get(moduleGroupName);
           ret_value = _setModuleGroupName(
               objectReference, moduleName, moduleGroupName, al);
       }
     else     else
     {     {
         throw PEGASUS_CIM_EXCEPTION(CIM_ERR_METHOD_NOT_AVAILABLE,         throw PEGASUS_CIM_EXCEPTION(CIM_ERR_METHOD_NOT_AVAILABLE,
             String::EMPTY);             String::EMPTY);
     }     }
   #ifdef PEGASUS_ENABLE_INTEROP_PROVIDER
       _sendUpdateCacheMessagetoInteropProvider(context);
   #endif
  
     CIMValue retValue(ret_value);     CIMValue retValue(ret_value);
     handler.deliver(retValue);     handler.deliver(retValue);
     handler.complete();     handler.complete();
 } }
  
   Sint16 ProviderRegistrationProvider::_setModuleGroupName(
       const CIMObjectPath & moduleRef,
       const String & moduleName,
       const String & moduleGroupName,
       const AcceptLanguageList & al)
   {
       Sint32 disableRC = _disableModule (moduleRef, moduleName, false, al);
   
       if (disableRC == -1)
       {
           throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
               MessageLoaderParms(
                   "ControlProviders.ProviderRegistrationProvider."
                       "ProviderRegistrationProvider."
                       "DISABLE_PROVIDER_FAILED",
                   "disable the provider failed."));
       }
   
       if (disableRC == -2)
       {
           throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
               MessageLoaderParms(
                   "ControlProviders.ProviderRegistrationProvider."
                       "ProviderRegistrationProvider."
                       "DISABLE_PROVIDER_FAILED_PROVIDER_BUSY",
                   "disable the provider failed: Provider is busy."));
       }
   
       String errorMsg;
   
       if (!_providerRegistrationManager->setProviderModuleGroupName(
           moduleName, moduleGroupName, errorMsg))
       {
           throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
               MessageLoaderParms(
                   "ControlProviders.ProviderRegistrationProvider."
                       "ProviderRegistrationProvider."
                       "SET_PROVIDERMODULEGROUPNAME_FAILED",
                   "Failed to set the ModuleGroupName: $0.",
                   errorMsg));
       }
   
       // Enable the module only if it was previously enabled.
       if (disableRC == 0)
       {
           try
           {
               _enableModule(moduleRef, moduleName, al);
           }
           catch(const Exception &e)
           {
               PEG_TRACE((TRC_CONTROLPROVIDER,Tracer::LEVEL1,
                   "Exception caught while enabling the provider module %s : %s",
                   (const char*)moduleName.getCString(),
                   (const char*)e.getMessage().getCString()));
           }
           catch(...)
           {
               PEG_TRACE((
                   TRC_CONTROLPROVIDER,
                   Tracer::LEVEL1,
                   "Unknown error occurred while"
                       " enabling the provider modules %s.",
                   (const char*)moduleName.getCString()));
           }
       }
   
       return 0;
   }
   
   
 // get provider manager service // get provider manager service
 MessageQueueService * ProviderRegistrationProvider::_getProviderManagerService() MessageQueueService * ProviderRegistrationProvider::_getProviderManagerService()
 { {
Line 1109 
Line 1264 
         new AsyncLegacyOperationStart (         new AsyncLegacyOperationStart (
             NULL,             NULL,
             _queueId,             _queueId,
             disable_req,              disable_req);
             _queueId);  
  
     AsyncReply * asyncReply =     AsyncReply * asyncReply =
         _controller->ClientSendWait(_queueId, asyncRequest);         _controller->ClientSendWait(_queueId, asyncRequest);
Line 1147 
Line 1301 
         new AsyncLegacyOperationStart (         new AsyncLegacyOperationStart (
             NULL,             NULL,
             _queueId,             _queueId,
             enable_req,              enable_req);
             _queueId);  
  
     AsyncReply * asyncReply =     AsyncReply * asyncReply =
         _controller->ClientSendWait(_queueId, asyncRequest);         _controller->ClientSendWait(_queueId, asyncRequest);
Line 1259 
Line 1412 
         AsyncLegacyOperationStart asyncRequest(         AsyncLegacyOperationStart asyncRequest(
             NULL,             NULL,
             _queueId,             _queueId,
             termination_req,              termination_req);
             _queueId);  
  
         AutoPtr <AsyncReply> asyncReply(         AutoPtr <AsyncReply> asyncReply(
             _controller->ClientSendWait(_queueId, &asyncRequest));             _controller->ClientSendWait(_queueId, &asyncRequest));
Line 1548 
Line 1700 
             CIMInstance updatedModuleInstance =             CIMInstance updatedModuleInstance =
                 _providerRegistrationManager->getInstance(moduleRef);                 _providerRegistrationManager->getInstance(moduleRef);
  
             // module is enabled, initialize providers as necessary  
             _providerRegistrationManager->initializeProviders(  
                 updatedModuleInstance);  
   
             //             //
             // The module is enabled, need to send enable message to             // The module is enabled, need to send enable message to
             // subscription service if the provider is an indication provider             // subscription service if the provider is an indication provider
Line 1592 
Line 1740 
                     //                     //
                     // get provider name from reference                     // get provider name from reference
                     //                     //
                     if(keys[j].getName().equal (_PROPERTY_PROVIDER_NAME))                      if(keys[j].getName().equal (PEGASUS_PROPERTYNAME_NAME))
                     {                     {
                         _providerName = keys[j].getValue();                         _providerName = keys[j].getValue();
                     }                     }
Line 1661 
Line 1809 
             new AsyncLegacyOperationStart (             new AsyncLegacyOperationStart (
                 NULL,                 NULL,
                 _queueId,                 _queueId,
                 enable_req,                  enable_req);
                 _queueId);  
  
         AsyncReply * asyncReply =         AsyncReply * asyncReply =
             _controller->ClientSendWait(_queueId, asyncRequest);             _controller->ClientSendWait(_queueId, asyncRequest);
Line 1695 
Line 1842 
 { {
     // get provider name     // get provider name
     String providerName;     String providerName;
     Uint32 pos = instance.findProperty(_PROPERTY_PROVIDER_NAME);      Uint32 pos = instance.findProperty(PEGASUS_PROPERTYNAME_NAME);
     if (pos != PEG_NOT_FOUND)     if (pos != PEG_NOT_FOUND)
     {     {
         instance.getProperty(pos).getValue().get(providerName);         instance.getProperty(pos).getValue().get(providerName);
Line 1715 
Line 1862 
 { {
     // get provider name     // get provider name
     String providerName;     String providerName;
     Uint32 pos = instance.findProperty(CIMName (_PROPERTY_PROVIDER_NAME));      Uint32 pos = instance.findProperty(PEGASUS_PROPERTYNAME_NAME);
     if (pos != PEG_NOT_FOUND)     if (pos != PEG_NOT_FOUND)
     {     {
         instance.getProperty(pos).getValue().get(providerName);         instance.getProperty(pos).getValue().get(providerName);
Line 1764 
Line 1911 
             capInstance = _providerRegistrationManager->getInstance             capInstance = _providerRegistrationManager->getInstance
                                 (instanceNames[i]);                                 (instanceNames[i]);
  
             Uint32 pos = capInstance.findProperty(              Uint32 providerTypePos = capInstance.findProperty(
                 CIMName (_PROPERTY_PROVIDERTYPE));                 CIMName (_PROPERTY_PROVIDERTYPE));
             if (pos != PEG_NOT_FOUND)              if (providerTypePos != PEG_NOT_FOUND)
             {             {
                 capInstance.getProperty(pos).getValue().get(providerTypes);                  capInstance.getProperty(providerTypePos).getValue().get(
                       providerTypes);
  
                 for (Uint32 k=0; k < providerTypes.size(); k++)                 for (Uint32 k=0; k < providerTypes.size(); k++)
                 {                 {
Line 1788 
Line 1936 
     return (indCapInstances);     return (indCapInstances);
 } }
  
   #ifdef PEGASUS_ENABLE_INTEROP_PROVIDER
   void ProviderRegistrationProvider::_sendUpdateCacheMessagetoInteropProvider(
       const OperationContext & context)
   {
       String referenceStr("//", 2);
       referenceStr.append(System::getHostName());
       referenceStr.append("/");
       referenceStr.append(PEGASUS_NAMESPACENAME_INTEROP.getString());
       referenceStr.append(":");
       referenceStr.append(
           PEGASUS_CLASSNAME_PG_PROVIDERPROFILECAPABILITIES.getString());
       CIMObjectPath reference(referenceStr);
   
       Array<CIMParamValue> inParams;
   
       try
       {
           CIMInvokeMethodRequestMessage* request =
               new CIMInvokeMethodRequestMessage(
                   XmlWriter::getNextMessageId(),
                   PEGASUS_NAMESPACENAME_INTEROP,
                   referenceStr,
                   "updateCache",
                   inParams,
                   QueueIdStack(_controller->getQueueId()));
   
           request->operationContext = context;
   
           AsyncModuleOperationStart* moduleControllerRequest =
               new AsyncModuleOperationStart(
                   0,
                   _controller->getQueueId(),
                   PEGASUS_MODULENAME_INTEROPPROVIDER,
                   request);
   
           _controller->SendForget(moduleControllerRequest);
       }
       catch(const Exception &e)
       {
           PEG_TRACE((TRC_CONTROLPROVIDER,Tracer::LEVEL1,
               "Exception caught while invoking InteropProvider 'updateCache'"
                   " method: %s",(const char*)e.getMessage().getCString()));
       }
       catch(...)
       {
           PEG_TRACE_CSTRING(
               TRC_CONTROLPROVIDER,
               Tracer::LEVEL1,
               "Unknown error occurred while"
                   " invoking InteropProvider 'updateCache' method.");
       }
   }
   #endif
   
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.98  
changed lines
  Added in v.1.117

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2