///////////////////////////////////////////////////////////////////////////// // WMIBaseProvider::getCIMInstance - retrieves a CIMInstance object // // /////////////////////////////////////////////////////////////////////////// CIMInstance WMIBaseProvider::getCIMInstance(const String& nameSpace, const String& userName, const String& password, const CIMObjectPath &instanceName, const CIMPropertyList &propertyList) { CIMInstance cimInstance; CIMStatusCode errorCode = CIM_ERR_SUCCESS; String errorDescription; WMIInstanceProvider provider; PEG_METHOD_ENTER(TRC_WMIPROVIDER,"WMIBaseProvider::getCIMInstance()"); try { // This fix uses the current boolean value stored in collector // to initialize it. provider.initialize(_collector->isLocalConnection()); cimInstance = provider.getInstance(nameSpace, userName, password, instanceName, false, false, false, propertyList); provider.terminate(); } catch(CIMException& exception) { provider.terminate(); errorCode = exception.getCode(); errorDescription = exception.getMessage(); throw PEGASUS_CIM_EXCEPTION(errorCode, errorDescription); } catch(Exception& exception) { provider.terminate(); errorCode = CIM_ERR_FAILED; errorDescription = exception.getMessage(); throw PEGASUS_CIM_EXCEPTION(errorCode, errorDescription); } catch(...) { provider.terminate(); throw CIMException(CIM_ERR_FAILED); } PEG_METHOD_EXIT(); return cimInstance; }
CIMInstance WMIClientRep::getInstance( const CIMNamespaceName& nameSpace, const CIMObjectPath& instanceName, Boolean localOnly, Boolean includeQualifiers, Boolean includeClassOrigin, const CIMPropertyList& propertyList) { CIMInstance cimInstance; CIMException cimException; try { //Initializes the WMI Provider Interface WMIInstanceProvider provider; provider.initialize(TRUE); //Performs the WMI call cimInstance = provider.getInstance( nameSpace.getString(), String::EMPTY, String::EMPTY, instanceName, localOnly, includeQualifiers, includeClassOrigin, propertyList); //terminate the provider provider.terminate(); } catch(CIMException&) { throw; } catch(Exception& exception) { cimException = PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, exception.getMessage()); throw cimException; } catch(...) { cimException = PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, "getInstance() failed!"); throw cimException; } return(cimInstance); }