📄 cimprovidercommand.cpp
字号:
case OPERATION_TYPE_DISABLE: try { _StopProvider( outPrintWriter, errPrintWriter ); } catch (CIMException& e) { CIMStatusCode code = e.getCode(); if (code == CIM_ERR_FAILED) { //l10n //outPrintWriter << STOP_PROVIDER_FAILURE << endl; outPrintWriter << localizeMessage(MSG_PATH, STOP_PROVIDER_FAILURE_KEY, STOP_PROVIDER_FAILURE) << endl; errPrintWriter << e.getMessage() << endl; } else if (code == CIM_ERR_INVALID_CLASS) { //l10n //outPrintWriter << STOP_PROVIDER_FAILURE << endl; //outPrintWriter << PG_PROVIDER_SCHEMA_NOT_LOADED << endl; outPrintWriter << localizeMessage(MSG_PATH, STOP_PROVIDER_FAILURE_KEY, STOP_PROVIDER_FAILURE) << endl; outPrintWriter << localizeMessage(MSG_PATH, PG_PROVIDER_SCHEMA_NOT_LOADED, PG_PROVIDER_SCHEMA_NOT_LOADED) << endl; } else { errPrintWriter << e.getMessage() << endl; } return ( RC_ERROR ); } catch (Exception& e) { errPrintWriter << e.getMessage() << endl; return ( RC_ERROR ); } break; case OPERATION_TYPE_LIST: try { _ListProviders(outPrintWriter, errPrintWriter); break; } catch (CIMException& e) { CIMStatusCode code = e.getCode(); if (code == CIM_ERR_FAILED) { //l10n //outPrintWriter << LIST_PROVIDERS_FAILURE << endl; outPrintWriter << localizeMessage(MSG_PATH, LIST_PROVIDERS_FAILURE_KEY, LIST_PROVIDERS_FAILURE) << endl; errPrintWriter << e.getMessage() << endl; } else if (code == CIM_ERR_INVALID_CLASS) { //l10n //outPrintWriter << LIST_PROVIDERS_FAILURE << endl; //outPrintWriter << PG_PROVIDER_SCHEMA_NOT_LOADED << endl; outPrintWriter << localizeMessage(MSG_PATH, LIST_PROVIDERS_FAILURE_KEY, LIST_PROVIDERS_FAILURE) << endl; outPrintWriter << localizeMessage(MSG_PATH, PG_PROVIDER_SCHEMA_NOT_LOADED_KEY, PG_PROVIDER_SCHEMA_NOT_LOADED) << endl; } else { errPrintWriter << e.getMessage() << endl; } return ( RC_ERROR ); } catch (Exception& e) { errPrintWriter << e.getMessage() << endl; return ( RC_ERROR ); } default: // // Should never get here // break; } return (RC_SUCCESS);}/** Delete the provider module or providers in a module*/void CIMProviderCommand::_deleteProvider ( ostream& outPrintWriter, ostream& errPrintWriter ){ if ( _moduleSet ) { if ( _providerSet ) { // Delete provider which have specified module name and provider name CIMInstance providerInstance = _getProviderInstance(); CIMObjectPath providerRef = providerInstance.getPath (); providerRef.setNameSpace(PEGASUS_NAMESPACENAME_PROVIDERREG); providerRef.setClassName(PEGASUS_CLASSNAME_PROVIDER); CIMKeyBinding kb1(_PROPERTY_PROVIDERMODULENAME, _moduleName, CIMKeyBinding::STRING); CIMKeyBinding kb2(_PROPERTY_PROVIDER_NAME, _providerName, CIMKeyBinding::STRING); Array<CIMKeyBinding> keys; keys.append(kb1); keys.append(kb2); providerRef.setKeyBindings(keys); //l10n //outPrintWriter << DELETEING_PROVIDER << endl; outPrintWriter << localizeMessage(MSG_PATH, DELETEING_PROVIDER_KEY, DELETEING_PROVIDER) << endl; _client->deleteInstance( PEGASUS_NAMESPACENAME_PROVIDERREG, providerRef);//l10n //outPrintWriter << DELETE_PROVIDER_SUCCESS << endl; outPrintWriter << localizeMessage(MSG_PATH, DELETE_PROVIDER_SUCCESS_KEY, DELETE_PROVIDER_SUCCESS) << endl; } else { // Delete all the registered provider modules CIMInstance moduleInstance = _getModuleInstance(); CIMObjectPath moduleRef = moduleInstance.getPath (); moduleRef.setNameSpace(PEGASUS_NAMESPACENAME_PROVIDERREG); moduleRef.setClassName(PEGASUS_CLASSNAME_PROVIDERMODULE); CIMKeyBinding kb1(CIMName ("Name"), _moduleName, CIMKeyBinding::STRING); Array<CIMKeyBinding> keys; keys.append(kb1); moduleRef.setKeyBindings(keys);//l10n //outPrintWriter << DELETEING_PROVIDER_MODULE << endl; outPrintWriter << localizeMessage(MSG_PATH, DELETEING_PROVIDER_MODULE_KEY, DELETEING_PROVIDER_MODULE) << endl; _client->deleteInstance( PEGASUS_NAMESPACENAME_PROVIDERREG, moduleRef);//l10n //outPrintWriter << DELETE_PROVIDER_MODULE_SUCCESS << endl; outPrintWriter << localizeMessage(MSG_PATH, DELETE_PROVIDER_MODULE_SUCCESS_KEY, DELETE_PROVIDER_MODULE_SUCCESS) << endl; } }}//// Enable the provider module//void CIMProviderCommand::_StartProvider ( ostream& outPrintWriter, ostream& errPrintWriter ){ CIMObjectPath ref; // // enable module // if ( _moduleSet ) { // get the module instance CIMInstance moduleInstance = _getModuleInstance(); CIMObjectPath moduleRef = moduleInstance.getPath (); moduleRef.setNameSpace(PEGASUS_NAMESPACENAME_PROVIDERREG); moduleRef.setClassName(PEGASUS_CLASSNAME_PROVIDERMODULE); CIMKeyBinding kb1(CIMName ("Name"), _moduleName, CIMKeyBinding::STRING); Array<CIMKeyBinding> keys; keys.append(kb1); moduleRef.setKeyBindings(keys); ref = moduleRef; //l10n //outPrintWriter << STARTING_PROVIDER_MODULE << endl; outPrintWriter << localizeMessage(MSG_PATH, STARTING_PROVIDER_MODULE_KEY, STARTING_PROVIDER_MODULE) << endl; } Array<CIMParamValue> inParams; Array<CIMParamValue> outParams; CIMValue ret_value = _client->invokeMethod( PEGASUS_NAMESPACENAME_PROVIDERREG, ref, START_METHOD, inParams, outParams); Sint16 retValue; ret_value.get(retValue); if (retValue == 1) { //l10n //outPrintWriter << PROVIDER_ALREADY_STARTED << endl; outPrintWriter << localizeMessage(MSG_PATH, PROVIDER_ALREADY_STARTED_KEY, PROVIDER_ALREADY_STARTED) << endl; } else if (retValue == 2) { //l10n //outPrintWriter << CANNOT_START_PROVIDER << endl; outPrintWriter << localizeMessage(MSG_PATH, CANNOT_START_PROVIDER_KEY, CANNOT_START_PROVIDER) << endl; } else if (retValue == 0) { //l10n //outPrintWriter << START_PROVIDER_SUCCESS << endl; outPrintWriter << localizeMessage(MSG_PATH, START_PROVIDER_SUCCESS_KEY, START_PROVIDER_SUCCESS) << endl; } else { //l10n //outPrintWriter << START_PROVIDER_FAILURE << endl; outPrintWriter << localizeMessage(MSG_PATH, START_PROVIDER_FAILURE_KEY, START_PROVIDER_FAILURE) << endl; }}//// Disable the provider module//void CIMProviderCommand::_StopProvider ( ostream& outPrintWriter, ostream& errPrintWriter ){ CIMObjectPath ref; // // disable the module // if ( _moduleSet ) { // get the module instance CIMInstance moduleInstance = _getModuleInstance(); CIMObjectPath moduleRef = moduleInstance.getPath (); moduleRef.setNameSpace(PEGASUS_NAMESPACENAME_PROVIDERREG); moduleRef.setClassName(PEGASUS_CLASSNAME_PROVIDERMODULE); CIMKeyBinding kb1(CIMName ("Name"), _moduleName, CIMKeyBinding::STRING); Array<CIMKeyBinding> keys; keys.append(kb1); moduleRef.setKeyBindings(keys); ref = moduleRef; //l10n //outPrintWriter << STOPING_PROVIDER_MODULE << endl; outPrintWriter << localizeMessage(MSG_PATH, STOPING_PROVIDER_MODULE_KEY, STOPING_PROVIDER_MODULE) << endl; } Array<CIMParamValue> inParams; Array<CIMParamValue> outParams; CIMValue ret_value = _client->invokeMethod( PEGASUS_NAMESPACENAME_PROVIDERREG, ref, STOP_METHOD, inParams, outParams); Sint16 retValue; ret_value.get(retValue); if (retValue == 1) { //l10n //outPrintWriter << PROVIDER_ALREADY_STOPPED << endl; outPrintWriter << localizeMessage(MSG_PATH, PROVIDER_ALREADY_STOPPED_KEY, PROVIDER_ALREADY_STOPPED) << endl; } else if (retValue == 0) { //l10n //outPrintWriter << STOP_PROVIDER_SUCCESS << endl; outPrintWriter << localizeMessage(MSG_PATH, STOP_PROVIDER_SUCCESS_KEY, STOP_PROVIDER_SUCCESS) << endl; } else if (retValue == -2) { //l10n //outPrintWriter << PENDING_REQUESTS_STOP_PROVIDER_FAILURE << endl; outPrintWriter << localizeMessage(MSG_PATH, PENDING_REQUESTS_STOP_PROVIDER_FAILURE_KEY, PENDING_REQUESTS_STOP_PROVIDER_FAILURE) << endl; } else { //l10n //outPrintWriter << STOP_PROVIDER_FAILURE << endl; outPrintWriter << localizeMessage(MSG_PATH, STOP_PROVIDER_FAILURE_KEY, STOP_PROVIDER_FAILURE) << endl; }}/** get a list of all registered provider modules or their status or providers. */void CIMProviderCommand::_ListProviders ( ostream& outPrintWriter, ostream& errPrintWriter ){ Array<CIMInstance> moduleInstances; Array<CIMObjectPath> instanceNames; String moduleName; String providerName; Array<String> moduleNames; Array<CIMInstance> instances; Boolean moduleExist = false; if (_moduleSet) { // get registered providers which are in the specified module instanceNames = _client->enumerateInstanceNames( PEGASUS_NAMESPACENAME_PROVIDERREG, PEGASUS_CLASSNAME_PROVIDER); if ( instanceNames.size() == 0 ) { //l10n //cerr << ERR_PROVIDER_NOT_REGISTERED << endl; cerr << localizeMessage(MSG_PATH, ERR_PROVIDER_NOT_REGISTERED_KEY, ERR_PROVIDER_NOT_REGISTERED) << endl; exit(-1); } else { // List all the registered providers which have specified module for (Uint32 i = 0; i < instanceNames.size(); i++) { Array<CIMKeyBinding> keys = instanceNames[i].getKeyBindings(); for(Uint32 j=0; j < keys.size(); j++) { if(keys[j].getName().equal (_PROPERTY_PROVIDERMODULENAME)) { moduleName = keys[j].getValue(); } if(keys[j].getName().equal (_PROPERTY_PROVIDER_NAME)) { providerName = keys[j].getValue(); } } if (String::equalNoCase(moduleName, _moduleName)) { moduleExist = true; outPrintWriter << providerName << endl;; } } if (!moduleExist) { //l10n //cerr << ERR_PROVIDER_NOT_REGISTERED << endl; cerr << localizeMessage(MSG_PATH, ERR_PROVIDER_NOT_REGISTERED_KEY, ERR_PROVIDER_NOT_REGISTERED) << endl; exit(-1); } } } else { // Get all registered provider modules moduleInstances = _client->enumerateInstances( PEGASUS_NAMESPACENAME_PROVIDERREG, PEGASUS_CLASSNAME_PROVIDERMODULE); if ( moduleInstances.size() == 0 ) { //l10n
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -