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

Diff for /pegasus/src/Pegasus/Server/CIMServer.cpp between version 1.194 and 1.195

version 1.194, 2006/11/08 21:00:57 version 1.195, 2006/11/14 18:34:59
Line 52 
Line 52 
 #include <Pegasus/Common/PegasusVersion.h> #include <Pegasus/Common/PegasusVersion.h>
 #include <Pegasus/Common/SSLContextManager.h> #include <Pegasus/Common/SSLContextManager.h>
 #include <Pegasus/Common/Time.h> #include <Pegasus/Common/Time.h>
   #include <Pegasus/Common/MessageLoader.h>
  
 #include <Pegasus/Repository/CIMRepository.h> #include <Pegasus/Repository/CIMRepository.h>
 #include <Pegasus/ExportServer/CIMExportRequestDispatcher.h> #include <Pegasus/ExportServer/CIMExportRequestDispatcher.h>
Line 82 
Line 83 
 #include "ShutdownService.h" #include "ShutdownService.h"
 #include "BinaryMessageHandler.h" #include "BinaryMessageHandler.h"
 #include <Pegasus/Common/ModuleController.h> #include <Pegasus/Common/ModuleController.h>
 #include <Pegasus/ControlProviders/ConfigSettingProvider/ConfigSettingProvider.h>  #include \
       <Pegasus/ControlProviders/ConfigSettingProvider/ConfigSettingProvider.h>
 #include <Pegasus/ControlProviders/UserAuthProvider/UserAuthProvider.h> #include <Pegasus/ControlProviders/UserAuthProvider/UserAuthProvider.h>
 #include <Pegasus/ControlProviders/ProviderRegistrationProvider/ProviderRegistrationProvider.h> #include <Pegasus/ControlProviders/ProviderRegistrationProvider/ProviderRegistrationProvider.h>
 #include <Pegasus/ControlProviders/NamespaceProvider/NamespaceProvider.h> #include <Pegasus/ControlProviders/NamespaceProvider/NamespaceProvider.h>
Line 103 
Line 105 
 #include <Pegasus/ControlProviders/InteropProvider/InteropProvider.h> #include <Pegasus/ControlProviders/InteropProvider/InteropProvider.h>
 #endif #endif
  
 // l10n  
 #include <Pegasus/Common/MessageLoader.h>  
   
   
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 static CIMServer *_cimserver = NULL; static CIMServer *_cimserver = NULL;
Line 131 
Line 129 
 } }
  
 // //
 //  
 // z/OS console interface waiting for operator stop command // z/OS console interface waiting for operator stop command
 // //
 #if defined PEGASUS_PLATFORM_ZOS_ZSERIES_IBM #if defined PEGASUS_PLATFORM_ZOS_ZSERIES_IBM
Line 150 
Line 147 
  
    do    do
    {    {
       rc = __console(&cons,          rc = __console(&cons, modstr, &concmd);
                      modstr,  
                      &concmd );  
  
       if (rc != 0)       if (rc != 0)
       {       {
Line 166 
Line 161 
       {       {
          // Just issue a console message that the command was          // Just issue a console message that the command was
          // not recognized and wait again for the stop command.          // not recognized and wait again for the stop command.
          Logger::put_l(Logger::STANDARD_LOG, "CIM Server", Logger::INFORMATION,              Logger::put_l(
                   Logger::STANDARD_LOG, "CIM Server", Logger::INFORMATION,
                         "Server.CIMServer.CONSOLE_NO_MODIFY.PEGASUS_OS_ZOS",                         "Server.CIMServer.CONSOLE_NO_MODIFY.PEGASUS_OS_ZOS",
                         "MODIFY command not recognized by CIM server.");                         "MODIFY command not recognized by CIM server.");
           }
       } else          else
       {       {
          Logger::put_l(Logger::STANDARD_LOG, "CIM Server", Logger::INFORMATION,              Logger::put_l(
                   Logger::STANDARD_LOG, "CIM Server", Logger::INFORMATION,
                         "Server.CIMServer.CONSOLE_STOP.PEGASUS_OS_ZOS",                         "Server.CIMServer.CONSOLE_STOP.PEGASUS_OS_ZOS",
                         "STOP command received from z/OS console,"                         "STOP command received from z/OS console,"
                         " initiating shutdown.");                         " initiating shutdown.");
Line 181 
Line 178 
    // keep on until we encounter an error or received a STOP    // keep on until we encounter an error or received a STOP
    } while ( (concmd != _CC_stop) && (rc == 0) );    } while ( (concmd != _CC_stop) && (rc == 0) );
  
   
    CIMServer::shutdownSignal();    CIMServer::shutdownSignal();
  
    PEG_METHOD_EXIT();    PEG_METHOD_EXIT();
    pthread_exit(0);    pthread_exit(0);
  
    return(NULL);      return NULL;
 } }
 #endif #endif
   
   //
 // Signal handler for shutdown signals, currently SIGHUP and SIGTERM // Signal handler for shutdown signals, currently SIGHUP and SIGTERM
 // //
 Boolean handleShutdownSignal = false; Boolean handleShutdownSignal = false;
Line 222 
Line 220 
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
 } }
  
   void CIMServer::tickle_monitor()
 void CIMServer::tickle_monitor(){  {
     _monitor->tickle();     _monitor->tickle();
 } }
  
 void CIMServer::_init(void)  void CIMServer::_init()
 { {
 #ifdef PEGASUS_ENABLE_SLP #ifdef PEGASUS_ENABLE_SLP
     _runSLP = true;         // Boolean cannot be set in definition.     _runSLP = true;         // Boolean cannot be set in definition.
Line 255 
Line 253 
     {     {
         PEG_METHOD_EXIT();         PEG_METHOD_EXIT();
     throw NoSuchDirectory(repositoryRootPath);     throw NoSuchDirectory(repositoryRootPath);
   
     }     }
 #endif #endif
  
Line 293 
Line 290 
         "ConfigSettingProvider", new ConfigSettingProvider(), 0, 0, false);         "ConfigSettingProvider", new ConfigSettingProvider(), 0, 0, false);
  
     _controlProviders.append(configProvider);     _controlProviders.append(configProvider);
     ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
           PEGASUS_QUEUENAME_CONTROLSERVICE,
                                       PEGASUS_MODULENAME_CONFIGPROVIDER,                                       PEGASUS_MODULENAME_CONFIGPROVIDER,
                                       configProvider,                                       configProvider,
                                       controlProviderReceiveMessageCallback,                                       controlProviderReceiveMessageCallback,
Line 303 
Line 301 
     ProviderMessageHandler* userAuthProvider = new ProviderMessageHandler(     ProviderMessageHandler* userAuthProvider = new ProviderMessageHandler(
         "UserAuthProvider", new UserAuthProvider(_repository), 0, 0, false);         "UserAuthProvider", new UserAuthProvider(_repository), 0, 0, false);
     _controlProviders.append(userAuthProvider);     _controlProviders.append(userAuthProvider);
     ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
           PEGASUS_QUEUENAME_CONTROLSERVICE,
                                       PEGASUS_MODULENAME_USERAUTHPROVIDER,                                       PEGASUS_MODULENAME_USERAUTHPROVIDER,
                                       userAuthProvider,                                       userAuthProvider,
                                       controlProviderReceiveMessageCallback,                                       controlProviderReceiveMessageCallback,
Line 317 
Line 316 
     // Warning: The ProviderRegistrationProvider destructor deletes     // Warning: The ProviderRegistrationProvider destructor deletes
     // _providerRegistrationManager     // _providerRegistrationManager
     _controlProviders.append(provRegProvider);     _controlProviders.append(provRegProvider);
     ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
           PEGASUS_QUEUENAME_CONTROLSERVICE,
                                       PEGASUS_MODULENAME_PROVREGPROVIDER,                                       PEGASUS_MODULENAME_PROVREGPROVIDER,
                                       provRegProvider,                                       provRegProvider,
                                       controlProviderReceiveMessageCallback,                                       controlProviderReceiveMessageCallback,
Line 327 
Line 327 
     ProviderMessageHandler* shutdownProvider = new ProviderMessageHandler(     ProviderMessageHandler* shutdownProvider = new ProviderMessageHandler(
         "ShutdownProvider", new ShutdownProvider(this), 0, 0, false);         "ShutdownProvider", new ShutdownProvider(this), 0, 0, false);
     _controlProviders.append(shutdownProvider);     _controlProviders.append(shutdownProvider);
      ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
           PEGASUS_QUEUENAME_CONTROLSERVICE,
                                        PEGASUS_MODULENAME_SHUTDOWNPROVIDER,                                        PEGASUS_MODULENAME_SHUTDOWNPROVIDER,
                                        shutdownProvider,                                        shutdownProvider,
                                        controlProviderReceiveMessageCallback,                                        controlProviderReceiveMessageCallback,
Line 337 
Line 338 
     ProviderMessageHandler* namespaceProvider = new ProviderMessageHandler(     ProviderMessageHandler* namespaceProvider = new ProviderMessageHandler(
         "NamespaceProvider", new NamespaceProvider(_repository), 0, 0, false);         "NamespaceProvider", new NamespaceProvider(_repository), 0, 0, false);
     _controlProviders.append(namespaceProvider);     _controlProviders.append(namespaceProvider);
      ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
           PEGASUS_QUEUENAME_CONTROLSERVICE,
                                        PEGASUS_MODULENAME_NAMESPACEPROVIDER,                                        PEGASUS_MODULENAME_NAMESPACEPROVIDER,
                                        namespaceProvider,                                        namespaceProvider,
                                        controlProviderReceiveMessageCallback,                                        controlProviderReceiveMessageCallback,
Line 357 
Line 359 
         new CertificateProvider(_repository, _sslContextMgr),         new CertificateProvider(_repository, _sslContextMgr),
         0, 0, false);         0, 0, false);
     _controlProviders.append(certificateProvider);     _controlProviders.append(certificateProvider);
         ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
           PEGASUS_QUEUENAME_CONTROLSERVICE,
                                           PEGASUS_MODULENAME_CERTIFICATEPROVIDER,                                           PEGASUS_MODULENAME_CERTIFICATEPROVIDER,
                                           certificateProvider,                                           certificateProvider,
                                           controlProviderReceiveMessageCallback,                                           controlProviderReceiveMessageCallback,
Line 369 
Line 372 
     ProviderMessageHandler* cimomstatdataProvider = new ProviderMessageHandler(     ProviderMessageHandler* cimomstatdataProvider = new ProviderMessageHandler(
         "CIMOMStatDataProvider", new CIMOMStatDataProvider(), 0, 0, false);         "CIMOMStatDataProvider", new CIMOMStatDataProvider(), 0, 0, false);
     _controlProviders.append(cimomstatdataProvider);     _controlProviders.append(cimomstatdataProvider);
      ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
                                        PEGASUS_MODULENAME_CIMOMSTATDATAPROVIDER,                                       cimomstatdataProvider,          PEGASUS_QUEUENAME_CONTROLSERVICE,
           PEGASUS_MODULENAME_CIMOMSTATDATAPROVIDER,
           cimomstatdataProvider,
                                        controlProviderReceiveMessageCallback,                                        controlProviderReceiveMessageCallback,
                                        0);                                        0);
 #endif #endif
Line 383 
Line 388 
         new CIMQueryCapabilitiesProvider(),         new CIMQueryCapabilitiesProvider(),
         0, 0, false);         0, 0, false);
     _controlProviders.append(cimquerycapprovider);     _controlProviders.append(cimquerycapprovider);
      ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
           PEGASUS_QUEUENAME_CONTROLSERVICE,
                                        PEGASUS_MODULENAME_CIMQUERYCAPPROVIDER,                                        PEGASUS_MODULENAME_CIMQUERYCAPPROVIDER,
                                        cimquerycapprovider,                                        cimquerycapprovider,
                                        controlProviderReceiveMessageCallback,                                        controlProviderReceiveMessageCallback,
                                        0);                                        0);
 #endif #endif
  
   
 #if !defined(PEGASUS_DISABLE_PERFINST) ||  defined(PEGASUS_ENABLE_SLP) #if !defined(PEGASUS_DISABLE_PERFINST) ||  defined(PEGASUS_ENABLE_SLP)
  
     // Create the interop control provider     // Create the interop control provider
     ProviderMessageHandler* interopProvider = new ProviderMessageHandler(     ProviderMessageHandler* interopProvider = new ProviderMessageHandler(
         "InteropProvider", new InteropProvider(_repository), 0, 0, false);         "InteropProvider", new InteropProvider(_repository), 0, 0, false);
     _controlProviders.append(interopProvider);     _controlProviders.append(interopProvider);
      ModuleController::register_module(PEGASUS_QUEUENAME_CONTROLSERVICE,      ModuleController::register_module(
           PEGASUS_QUEUENAME_CONTROLSERVICE,
                                        PEGASUS_MODULENAME_INTEROPPROVIDER,                                        PEGASUS_MODULENAME_INTEROPPROVIDER,
                                        interopProvider,                                        interopProvider,
                                        controlProviderReceiveMessageCallback,                                        controlProviderReceiveMessageCallback,
                                        0);                                        0);
 #endif #endif
  
     _cimOperationRequestDispatcher      _cimOperationRequestDispatcher = new CIMOperationRequestDispatcher(
     = new CIMOperationRequestDispatcher(_repository,          _repository, _providerRegistrationManager);
                                             _providerRegistrationManager);  
     _binaryMessageHandler =     _binaryMessageHandler =
        new BinaryMessageHandler(_cimOperationRequestDispatcher);        new BinaryMessageHandler(_cimOperationRequestDispatcher);
  
     _cimOperationResponseEncoder      _cimOperationResponseEncoder = new CIMOperationResponseEncoder;
     = new CIMOperationResponseEncoder;  
  
     //     //
     // get the configured authentication and authorization flags     // get the configured authentication and authorization flags
Line 440 
Line 444 
         _cimOperationRequestDecoder = new CIMOperationRequestDecoder(         _cimOperationRequestDecoder = new CIMOperationRequestDecoder(
             _cimOperationRequestDispatcher,             _cimOperationRequestDispatcher,
             _cimOperationResponseEncoder->getQueueId());             _cimOperationResponseEncoder->getQueueId());
   
     }     }
  
     _cimExportRequestDispatcher      _cimExportRequestDispatcher = new CIMExportRequestDispatcher();
     = new CIMExportRequestDispatcher();  
  
     _cimExportResponseEncoder      _cimExportResponseEncoder = new CIMExportResponseEncoder;
     = new CIMExportResponseEncoder;  
  
     _cimExportRequestDecoder = new CIMExportRequestDecoder(     _cimExportRequestDecoder = new CIMExportRequestDecoder(
     _cimExportRequestDispatcher,     _cimExportRequestDispatcher,
Line 466 
Line 467 
     if (ConfigManager::parseBooleanValue(     if (ConfigManager::parseBooleanValue(
         configManager->getCurrentValue("enableIndicationService")))         configManager->getCurrentValue("enableIndicationService")))
     {     {
         _indicationService = new IndicationService          _indicationService = new IndicationService(
             (_repository, _providerRegistrationManager);              _repository, _providerRegistrationManager);
     }     }
  
     // Enable the signal handler to shutdown gracefully on SIGHUP and SIGTERM     // Enable the signal handler to shutdown gracefully on SIGHUP and SIGTERM
Line 907 
Line 908 
         if (trustStore == String::EMPTY)         if (trustStore == String::EMPTY)
         {         {
             MessageLoaderParms parms(             MessageLoaderParms parms(
             "Pegasus.Server.CIMServer.SSL_CLIENT_VERIFICATION_EMPTY_TRUSTSTORE",                  "Pegasus.Server.CIMServer."
                 "The \"sslTrustStore\" configuration property must be set if \"sslClientVerificationMode\" is 'required' or 'optional'. cimserver not started.");                      "SSL_CLIENT_VERIFICATION_EMPTY_TRUSTSTORE",
                   "The \"sslTrustStore\" configuration property must be set "
                       "if \"sslClientVerificationMode\" is 'required' or "
                       "'optional'. cimserver not started.");
             PEG_METHOD_EXIT();             PEG_METHOD_EXIT();
             throw SSLException(parms);             throw SSLException(parms);
   
         }         }
  
 #ifdef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET #ifdef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET
Line 931 
Line 934 
                     PROPERTY_NAME__HTTP_ENABLED)))                     PROPERTY_NAME__HTTP_ENABLED)))
             {             {
                 MessageLoaderParms parms(                 MessageLoaderParms parms(
                     "Pegasus.Server.SSLContextManager.INVALID_CONF_HTTPS_REQUIRED",                      "Pegasus.Server.SSLContextManager."
                           "INVALID_CONF_HTTPS_REQUIRED",
                     "The \"sslClientVerificationMode\" property cannot be "                     "The \"sslClientVerificationMode\" property cannot be "
                         "set to \"required\" if HTTP is disabled, as the "                         "set to \"required\" if HTTP is disabled, as the "
                         "cimserver will be unable to properly shutdown.  "                         "cimserver will be unable to properly shutdown.  "
Line 956 
Line 960 
             if (trustStoreUserName == String::EMPTY)             if (trustStoreUserName == String::EMPTY)
             {             {
                 MessageLoaderParms parms(                 MessageLoaderParms parms(
                     "Pegasus.Server.CIMServer.SSL_CLIENT_VERIFICATION_EMPTY_USERNAME",                      "Pegasus.Server.CIMServer."
                     "The \"sslTrustStoreUserName\" property must specify a valid username if \"sslClientVerificationMode\" is 'required' or 'optional' and the truststore is a single CA file. To register individual certificates to users, you must use a truststore directory along with the CertificateProvider.  cimserver not started.");                          "SSL_CLIENT_VERIFICATION_EMPTY_USERNAME",
                       "The \"sslTrustStoreUserName\" property must specify a "
                           "valid username if \"sslClientVerificationMode\" is "
                           "'required' or 'optional' and the truststore is a "
                           "single CA file. To register individual certificates "
                           "to users, you must use a truststore directory along "
                           "with the CertificateProvider.  cimserver not "
                           "started.");
                 PEG_METHOD_EXIT();                 PEG_METHOD_EXIT();
                 throw SSLException(parms);                 throw SSLException(parms);
             }             }
Line 976 
Line 987 
         crlStore = ConfigManager::getHomedPath(crlStore);         crlStore = ConfigManager::getHomedPath(crlStore);
     }     }
 #else #else
     String crlStore = String::EMPTY;      String crlStore;
 #endif #endif
  
     //     //
Line 1071 
Line 1082 
 } }
  
 #ifdef PEGASUS_ENABLE_SLP #ifdef PEGASUS_ENABLE_SLP
 ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void *parm);  
  
   ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void* parm);
  
 // This is a control function that starts a new thread which issues a // This is a control function that starts a new thread which issues a
 // cim operation to start the slp provider. // cim operation to start the slp provider.
 void CIMServer::startSLPProvider() void CIMServer::startSLPProvider()
 { {
   
    PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "CIMServer::startSLPProvider");    PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "CIMServer::startSLPProvider");
  
       // This is a onetime function.  If already issued, or config is not to
     // This is a onetime function.  If already issued, or config is not to use simply      // use simply return
     // return  
     if (!_runSLP)     if (!_runSLP)
     {     {
         return;         return;
Line 1103 
Line 1112 
     // function does not get called a second time.     // function does not get called a second time.
     _runSLP = false;     _runSLP = false;
  
     // Create a separate thread, detach and call function to execute the startup.      // Create a separate thread, detach and call function to execute the
       // startup.
     Thread t( _callSLPProvider, 0, true );     Thread t( _callSLPProvider, 0, true );
     t.run();     t.run();
  
Line 1123 
Line 1133 
  
 ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void* parm ) ThreadReturnType PEGASUS_THREAD_CDECL _callSLPProvider(void* parm )
 { {
     //  
     PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::_callSLPProvider()");     PEG_METHOD_ENTER(TRC_SERVER, "CIMServer::_callSLPProvider()");
   
       //
     // Create CIMClient object     // Create CIMClient object
     //     //
     CIMClient client;     CIMClient client;
   
     //     //
     // open connection to CIMOM     // open connection to CIMOM
     //     //
Line 1163 
Line 1175 
             reference,             reference,
             CIMName("register"),             CIMName("register"),
             inParams,             inParams,
             outParams              outParams);
             );  
     }     }
  
     catch(CIMException& e)     catch(CIMException& e)
Line 1172 
Line 1183 
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
             "SLP Registration Failed. CIMException. $0", e.getMessage());             "SLP Registration Failed. CIMException. $0", e.getMessage());
     }     }
   
     catch(Exception& e)     catch(Exception& e)
     {     {
         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,         Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,
             "SLP Registration Failed Startup: CIMServer exception. $0", e.getMessage());              "SLP Registration Failed Startup: CIMServer exception. $0",
               e.getMessage());
     }     }
  
     client.disconnect();     client.disconnect();
Line 1185 
Line 1196 
         "SLP Registration Initiated");         "SLP Registration Initiated");
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return( (ThreadReturnType)32 );      return (ThreadReturnType)32;
 } }
 #endif #endif
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END
   
   
   


Legend:
Removed from v.1.194  
changed lines
  Added in v.1.195

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2