void test02() { const CIMNamespaceName NAMESPACE = CIMNamespaceName("/zzz"); CIMClass cimClass(CIMName("MyClass")); cimClass .addProperty(CIMProperty(CIMName("Last"), String()) .addQualifier(CIMQualifier(CIMName("key"), true))) .addProperty(CIMProperty(CIMName("First"), String()) .addQualifier(CIMQualifier(CIMName("key"), true))) .addProperty(CIMProperty(CIMName("Age"), String()) .addQualifier(CIMQualifier(CIMName("key"), true))); CIMInstance cimInstance(CIMName("MyClass")); cimInstance.addProperty(CIMProperty(CIMName("first"), String("John"))); cimInstance.addProperty(CIMProperty(CIMName("last"), String("Smith"))); cimInstance.addProperty(CIMProperty(CIMName("age"), Uint8(101))); assert(cimInstance.findProperty(CIMName("first")) != PEG_NOT_FOUND); assert(cimInstance.findProperty(CIMName("last")) != PEG_NOT_FOUND); assert(cimInstance.findProperty(CIMName("age")) != PEG_NOT_FOUND); assert(cimInstance.getPropertyCount() == 3); CIMObjectPath instanceName = cimInstance.buildPath(CIMConstClass(cimClass)); CIMObjectPath tmp("myclass.age=101,first=\"John\",last=\"Smith\""); assert(tmp.makeHashCode() == instanceName.makeHashCode()); // Test CIMInstance::buildPath with incomplete keys in the instance Boolean caughtNoSuchPropertyException = false; try { CIMInstance badInstance(CIMName("MyClass")); badInstance.addProperty(CIMProperty(CIMName("first"), String("John"))); badInstance.addProperty(CIMProperty(CIMName("last"), String("Smith"))); CIMObjectPath instanceName = badInstance.buildPath(CIMConstClass(cimClass)); } catch (const NoSuchProperty&) { caughtNoSuchPropertyException = true; } assert(caughtNoSuchPropertyException); }
void SNMPIndicationProvider::enableIndications(IndicationResponseHandler & handler) { handler.processing(); //Indication CIMInstance cimInstance("root/PG_InterOp:cycHostAdapterDiscovered"); cimInstance.addProperty(CIMProperty("cycHostAdapterNumber", Uint32(101))); cimInstance.addProperty(CIMProperty("cycHostAdapterID", String("HP-NU-123"))); cimInstance.addProperty(CIMProperty("cycManagerID", String("HP-NU-456"))); CIMIndication cimIndication(cimInstance); handler.deliver(cimIndication); }
void ExceptionsTest::deleteInstance( const OperationContext & context, const CIMObjectPath & instanceReference, ResponseHandler & handler) { // convert a potential fully qualified reference into a local reference // (class name and keys only). CIMObjectPath localReference = CIMObjectPath( String(), String(), instanceReference.getClassName(), instanceReference.getKeyBindings()); // begin processing the request handler.processing(); cout <<"Calling Exception ExceptionsTest::deleteInstance 1" << endl; CheckExceptionType(EXCEPTION_TYPE); // instance index corresponds to reference index for(Uint32 i = 0, n = _instances.size(); i < n; i++) { if(localReference == _instanceNames[i]) { // save the instance locally CIMInstance cimInstance(_instances[i]); // remove instance from the array _instances.remove(i); _instanceNames.remove(i); // exit loop break; } } cout <<"Calling Exception ExceptionsTest::deleteInstance 2" << endl; CheckExceptionType(EXCEPTION_TYPE); // complete processing the request handler.complete(); }
void TestCreateInstances(CIMClient& client) { // // Test create Provider module instances // CIMObjectPath returnRef; CIMClass cimClass(CLASSNAME); CIMInstance cimInstance(CLASSNAME); cimInstance.addProperty(CIMProperty(CIMName ("Name"), String("providersModule1"))); cimInstance.addProperty(CIMProperty(CIMName ("Vendor"), String("HP"))); cimInstance.addProperty(CIMProperty(CIMName ("Version"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceType"), String("C++Default"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceVersion"), String("2.1.0"))); cimInstance.addProperty(CIMProperty(CIMName ("Location"), String("/tmp/module1"))); CIMObjectPath instanceName = cimInstance.buildPath(cimClass); instanceName.setNameSpace(PEGASUS_NAMESPACENAME_INTEROP); instanceName.setClassName(CLASSNAME); try { returnRef = client.createInstance(PEGASUS_NAMESPACENAME_INTEROP, cimInstance); } catch(const CIMException&) { throw; } // Test create PG_Provider instances CIMObjectPath returnRef2; CIMClass cimClass2(CLASSNAME2); CIMInstance cimInstance2(CLASSNAME2); cimInstance2.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance2.addProperty(CIMProperty(CIMName ("Name"), String("PG_ProviderInstance1"))); CIMObjectPath instanceName2 = cimInstance2.buildPath(cimClass2); instanceName2.setNameSpace(PEGASUS_NAMESPACENAME_INTEROP); instanceName2.setClassName(CLASSNAME2); try { returnRef2 = client.createInstance(PEGASUS_NAMESPACENAME_INTEROP, cimInstance2); } catch(const CIMException&) { throw; } // // test create provider capability instances // Array <String> namespaces; Array <Uint16> providerType; Array <String> supportedMethods; Array <String> supportedProperties; namespaces.append("root/cimv2"); namespaces.append("root/cimv3"); providerType.append(4); providerType.append(5); supportedMethods.append("test_method1"); supportedMethods.append("test_method2"); supportedProperties.append("PkgStatus"); supportedProperties.append("PkgIndex"); CIMObjectPath returnRef3; CIMClass cimClass3(CLASSNAME3); CIMInstance cimInstance3(CLASSNAME3); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderName"), String("PG_ProviderInstance1"))); cimInstance3.addProperty(CIMProperty(CIMName ("CapabilityID"), String("capability1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ClassName"), String("TestSoftwarePkg"))); cimInstance3.addProperty(CIMProperty(CIMName ("Namespaces"), namespaces)); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderType"), providerType)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedMethods"), supportedMethods)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedProperties"), supportedProperties)); CIMObjectPath instanceName3 = cimInstance3.buildPath(cimClass3); instanceName3.setNameSpace(PEGASUS_NAMESPACENAME_INTEROP); instanceName3.setClassName(CLASSNAME3); try { returnRef3 = client.createInstance(PEGASUS_NAMESPACENAME_INTEROP, cimInstance3); } catch(const CIMException&) { throw; } CIMKeyBinding kb1(CIMName ("Name"), "providersModule1", CIMKeyBinding::STRING); Array<CIMKeyBinding> keys; keys.append(kb1); instanceName.setKeyBindings(keys); // test getInstance try { client.getInstance(PEGASUS_NAMESPACENAME_INTEROP, instanceName); } catch(const CIMException&) { throw; } // test enumerateInstances try { client.enumerateInstances(PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_PROVIDER); } catch(const CIMException&) { throw; } // test enumerateInstanceNames try { client.enumerateInstanceNames(PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_PROVIDER); } catch(const CIMException&) { throw; } client.deleteInstance(PEGASUS_NAMESPACENAME_INTEROP, instanceName); }
void TestModifyInstances(ProviderRegistrationManager & prmanager) { // // create Provider module instances // CIMObjectPath returnRef; CIMClass cimClass(CLASSNAME); CIMInstance cimInstance(CLASSNAME); cimInstance.addProperty(CIMProperty(CIMName ("Name"), String("providersModule1"))); cimInstance.addProperty(CIMProperty(CIMName ("Vendor"), String("HP"))); cimInstance.addProperty(CIMProperty(CIMName ("Version"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceType"), String("PG_DefaultC++"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceVersion"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("Location"), String("/tmp/module1"))); CIMObjectPath instanceName = cimInstance.buildPath(cimClass); instanceName.setNameSpace(NAMESPACE); instanceName.setClassName(CLASSNAME); try { returnRef = prmanager.createInstance(instanceName, cimInstance); } catch(CIMException& e) { throw (e); } // create PG_Provider instances CIMObjectPath returnRef2; CIMClass cimClass2(CLASSNAME2); CIMInstance cimInstance2(CLASSNAME2); cimInstance2.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance2.addProperty(CIMProperty(CIMName ("Name"), String("PG_ProviderInstance1"))); CIMObjectPath instanceName2 = cimInstance2.buildPath(cimClass2); instanceName2.setNameSpace(NAMESPACE); instanceName2.setClassName(CLASSNAME2); try { returnRef2 = prmanager.createInstance(instanceName2, cimInstance2); } catch(CIMException& e) { throw (e); } // // create provider capability instances // Array <String> namespaces; Array <Uint16> providerType; Array <String> supportedMethods; Array <String> supportedProperties; namespaces.append("root/cimv2"); namespaces.append("root/cimv3"); providerType.append(2); providerType.append(5); supportedMethods.append("test_method1"); supportedMethods.append("test_method2"); supportedProperties.append("PkgStatus"); supportedProperties.append("PkgIndex"); CIMObjectPath returnRef3; CIMClass cimClass3(CLASSNAME3); CIMInstance cimInstance3(CLASSNAME3); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderName"), String("PG_ProviderInstance1"))); cimInstance3.addProperty(CIMProperty(CIMName ("CapabilityID"), String("capability1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ClassName"), String("TestSoftwarePkg"))); cimInstance3.addProperty(CIMProperty(CIMName ("Namespaces"), namespaces)); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderType"), providerType)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedMethods"), supportedMethods)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedProperties"), supportedProperties)); CIMObjectPath instanceName3 = cimInstance3.buildPath(cimClass3); instanceName3.setNameSpace(NAMESPACE); instanceName3.setClassName(CLASSNAME3); try { returnRef3 = prmanager.createInstance(instanceName3, cimInstance3); } catch(const CIMException&) { throw; } // create CIMObjectPath Array<CIMKeyBinding> keys; CIMKeyBinding kb1(CIMName ("ProviderModuleName"), "providersModule1", CIMKeyBinding::STRING); CIMKeyBinding kb2(CIMName ("ProviderName"), "PG_ProviderInstance1", CIMKeyBinding::STRING); CIMKeyBinding kb3(CIMName ("CapabilityID"), "capability1", CIMKeyBinding::STRING); keys.append(kb1); keys.append(kb2); keys.append(kb3); instanceName3.setKeyBindings(keys); Array <String> supportedMethods2; Array <String> namespaces2; Array<CIMName> propertyList; // create new instance which will replace cimInstance3 CIMInstance cimInstance4(CLASSNAME3); namespaces2.append("root/cimv4"); namespaces2.append("root/cimv5"); supportedMethods2.append("test_method2"); supportedMethods2.append("test_method3"); cimInstance4.addProperty(CIMProperty(CIMName ("Namespaces"), namespaces2)); cimInstance4.addProperty(CIMProperty(CIMName ("SupportedMethods"), supportedMethods2)); propertyList.append(CIMName ("Namespaces")); propertyList.append(CIMName ("SupportedMethods")); try { prmanager.modifyInstance(instanceName3, cimInstance4, false, propertyList); } catch(const CIMException&) { throw; } }
void EnableIndicationsResponseHandler::deliver( const OperationContext& context, const CIMIndication& cimIndication) { if (cimIndication.isUninitialized()) { MessageLoaderParms message( "Common.Exception.UNINITIALIZED_OBJECT_EXCEPTION", "The object is not initialized."); throw CIMException(CIM_ERR_FAILED, message); } // ATTN: temporarily convert indication to instance CIMInstance cimInstance(cimIndication); // Get list of subscription instance names from context Array<CIMObjectPath> subscriptionInstanceNames; if (context.contains(SubscriptionInstanceNamesContainer::NAME)) { SubscriptionInstanceNamesContainer container = context.get(SubscriptionInstanceNamesContainer::NAME); subscriptionInstanceNames = container.getInstanceNames(); } else { subscriptionInstanceNames.clear(); } ContentLanguageList contentLangs; if (context.contains(ContentLanguageListContainer::NAME)) { // Get the Content-Language for this indication. The provider // does not have to add specify a language for the indication. ContentLanguageListContainer langContainer = context.get(ContentLanguageListContainer::NAME); contentLangs = langContainer.getLanguages(); } else { // The provider did not explicitly set a Content-Language for // the indication. Fall back to the lang set in this object. contentLangs = getLanguages(); } Uint32 timeoutMilliSec = 0; if (context.contains(TimeoutContainer::NAME)) { TimeoutContainer timeoutContainer = context.get(TimeoutContainer::NAME); timeoutMilliSec = timeoutContainer.getTimeOut(); } // create message CIMProcessIndicationRequestMessage* request = new CIMProcessIndicationRequestMessage( XmlWriter::getNextMessageId(), cimInstance.getPath().getNameSpace(), cimInstance, subscriptionInstanceNames, _provider, QueueIdStack(), // Must be filled in by the callback function timeoutMilliSec); request->operationContext = context; if (request->operationContext.contains(ContentLanguageListContainer::NAME)) { request->operationContext.set( ContentLanguageListContainer(contentLangs)); } else { request->operationContext.insert( ContentLanguageListContainer(contentLangs)); } _indicationCallback(request); }
void TestDeleteInstances(ProviderRegistrationManager & prmanager) { CIMKeyBinding kb1(CIMName ("ProviderModuleName"), "providersModule1", CIMKeyBinding::STRING); CIMKeyBinding kb2(CIMName ("ProviderName"), "PG_ProviderInstance1", CIMKeyBinding::STRING); CIMKeyBinding kb3(CIMName ("CapabilityID"), "capability1", CIMKeyBinding::STRING); CIMKeyBinding kbp1(CIMName ("ProviderModuleName"), "providersModule1", CIMKeyBinding::STRING); CIMKeyBinding kbp2(CIMName ("Name"), "PG_ProviderInstance1", CIMKeyBinding::STRING); CIMKeyBinding kbm1(CIMName ("Name"), "providersModule1", CIMKeyBinding::STRING); CIMObjectPath instanceName; try { for (Uint32 i=1; i<=3; i++) { CIMObjectPath instanceName2; Array<CIMKeyBinding> keys2; Array<CIMKeyBinding> keysm; Array<CIMKeyBinding> keys; // // create Provider module instances // if (i <= 1) { CIMObjectPath returnRef; CIMClass cimClass(CLASSNAME); CIMInstance cimInstance(CLASSNAME); cimInstance.addProperty(CIMProperty(CIMName ("Name"), String("providersModule1"))); cimInstance.addProperty(CIMProperty(CIMName ("Vendor"), String("HP"))); cimInstance.addProperty(CIMProperty(CIMName ("Version"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceType"), String("PG_DefaultC++"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceVersion"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("Location"), String("/tmp/module1"))); instanceName = cimInstance.buildPath(cimClass); instanceName.setNameSpace(NAMESPACE); instanceName.setClassName(CLASSNAME); returnRef = prmanager.createInstance(instanceName, cimInstance); } // create PG_Provider instances if (i <= 2 ) { CIMObjectPath returnRef2; CIMClass cimClass2(CLASSNAME2); CIMInstance cimInstance2(CLASSNAME2); cimInstance2.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance2.addProperty(CIMProperty(CIMName ("Name"), String("PG_ProviderInstance1"))); instanceName2 = cimInstance2.buildPath(cimClass2); instanceName2.setNameSpace(NAMESPACE); instanceName2.setClassName(CLASSNAME2); returnRef2 = prmanager.createInstance(instanceName2, cimInstance2); } // // create provider capability instances // Array <String> namespaces; Array <Uint16> providerType; Array <String> supportedMethods; namespaces.append("test_namespace1"); namespaces.append("test_namespace2"); providerType.append(2); providerType.append(5); supportedMethods.append("test_method1"); supportedMethods.append("test_method2"); CIMObjectPath returnRef3; CIMClass cimClass3(CLASSNAME3); CIMInstance cimInstance3(CLASSNAME3); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderName"), String("PG_ProviderInstance1"))); cimInstance3.addProperty(CIMProperty(CIMName ("CapabilityID"), String("capability1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ClassName"), String("test_class1"))); cimInstance3.addProperty(CIMProperty(CIMName ("Namespaces"), namespaces)); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderType"), providerType)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedMethods"), supportedMethods)); CIMObjectPath instanceName3 = cimInstance3.buildPath(cimClass3); instanceName3.setNameSpace(NAMESPACE); instanceName3.setClassName(CLASSNAME3); returnRef3 = prmanager.createInstance(instanceName3, cimInstance3); switch (i) { case 1: // // delete cimInstance2 // keys2.append(kbp1); keys2.append(kbp2); instanceName2.setKeyBindings(keys2); prmanager.deleteInstance(instanceName2); break; case 2: // // delete cimInstance3 // keys.append(kb1); keys.append(kb2); keys.append(kb3); instanceName3.setKeyBindings(keys); prmanager.deleteInstance(instanceName3); break; case 3: // // delete cimInstance // keysm.append(kbm1); instanceName.setKeyBindings(keysm); prmanager.deleteInstance(instanceName); break; } } } catch(CIMException& e) { throw (e); } }
Boolean TestLookupInstanceProvider(ProviderRegistrationManager & prmanager) { // // create Provider module instances // CIMObjectPath returnRef; CIMClass cimClass(CLASSNAME); CIMInstance cimInstance(CLASSNAME); cimInstance.addProperty(CIMProperty(CIMName ("Name"), String("providersModule1"))); cimInstance.addProperty(CIMProperty(CIMName ("Vendor"), String("HP"))); cimInstance.addProperty(CIMProperty(CIMName ("Version"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceType"), String("PG_DefaultC++"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceVersion"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("Location"), String("/tmp/module1"))); CIMObjectPath instanceName = cimInstance.buildPath(cimClass); instanceName.setNameSpace(NAMESPACE); instanceName.setClassName(CLASSNAME); try { returnRef = prmanager.createInstance(instanceName, cimInstance); } catch(const CIMException&) { throw; } // create PG_Provider instances CIMObjectPath returnRef2; CIMClass cimClass2(CLASSNAME2); CIMInstance cimInstance2(CLASSNAME2); cimInstance2.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance2.addProperty(CIMProperty(CIMName ("Name"), String("PG_ProviderInstance1"))); CIMObjectPath instanceName2 = cimInstance2.buildPath(cimClass2); instanceName2.setNameSpace(NAMESPACE); instanceName2.setClassName(CLASSNAME2); try { returnRef2 = prmanager.createInstance(instanceName2, cimInstance2); } catch(const CIMException&) { throw; } // // create provider capability instances // Array <String> namespaces; Array <Uint16> providerType; Array <String> supportedMethods; namespaces.append("test_namespace1"); namespaces.append("test_namespace2"); providerType.append(2); providerType.append(5); supportedMethods.append("test_method1"); supportedMethods.append("test_method2"); CIMObjectPath returnRef3; CIMClass cimClass3(CLASSNAME3); CIMInstance cimInstance3(CLASSNAME3); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderName"), String("PG_ProviderInstance1"))); cimInstance3.addProperty(CIMProperty(CIMName ("CapabilityID"), String("capability1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ClassName"), String("test_class1"))); cimInstance3.addProperty(CIMProperty(CIMName ("Namespaces"), namespaces)); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderType"), providerType)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedMethods"), supportedMethods)); CIMObjectPath instanceName3 = cimInstance3.buildPath(cimClass3); instanceName3.setNameSpace(NAMESPACE); instanceName3.setClassName(CLASSNAME3); try { returnRef3 = prmanager.createInstance(instanceName3, cimInstance3); } catch(const CIMException&) { throw; } // find the instance provider // String _providerModuleName; String _providerModuleName2; CIMInstance providerIns; CIMInstance providerModuleIns; if (prmanager.lookupInstanceProvider(CIMNamespaceName ("test_namespace1"), CIMName ("test_class1"), providerIns, providerModuleIns)) { providerIns.getProperty(providerIns.findProperty (CIMName ("ProviderModuleName"))).getValue().get (_providerModuleName); providerModuleIns.getProperty(providerModuleIns.findProperty (CIMName ("Name"))).getValue().get(_providerModuleName2); if (String::equal(_providerModuleName, _providerModuleName2)) { return (true); } else { return (false); } } else { return (false); } }
void TestCreateInstances(ProviderRegistrationManager & prmanager) { // // Test create Provider module instances // CIMObjectPath returnRef; CIMClass cimClass(CLASSNAME); CIMInstance cimInstance(CLASSNAME); cimInstance.addProperty(CIMProperty(CIMName ("Name"), String("providersModule1"))); cimInstance.addProperty(CIMProperty(CIMName ("Vendor"), String("HP"))); cimInstance.addProperty(CIMProperty(CIMName ("Version"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceType"), String("PG_DefaultC++"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceVersion"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("Location"), String("/tmp/module1"))); CIMObjectPath instanceName = cimInstance.buildPath(cimClass); instanceName.setNameSpace(NAMESPACE); instanceName.setClassName(CLASSNAME); returnRef = prmanager.createInstance(instanceName, cimInstance); // Test create PG_Provider instances CIMObjectPath returnRef2; CIMClass cimClass2(CLASSNAME2); CIMInstance cimInstance2(CLASSNAME2); cimInstance2.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance2.addProperty(CIMProperty(CIMName ("Name"), String("PG_ProviderInstance1"))); CIMObjectPath instanceName2 = cimInstance2.buildPath(cimClass2); instanceName2.setNameSpace(NAMESPACE); instanceName2.setClassName(CLASSNAME2); returnRef2 = prmanager.createInstance(instanceName2, cimInstance2); // // test create provider capability instances // Array <String> namespaces; Array <Uint16> providerType; Array <String> supportedMethods; Array <String> supportedProperties; namespaces.append("root/cimv2"); namespaces.append("root/cimv3"); providerType.append(2); providerType.append(5); supportedMethods.append("test_method1"); supportedMethods.append("test_method2"); supportedProperties.append("PkgStatus"); supportedProperties.append("PkgIndex"); CIMObjectPath returnRef3; CIMClass cimClass3(CLASSNAME3); CIMInstance cimInstance3(CLASSNAME3); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderName"), String("PG_ProviderInstance1"))); cimInstance3.addProperty(CIMProperty(CIMName ("CapabilityID"), String("capability1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ClassName"), String("TestSoftwarePkg"))); cimInstance3.addProperty(CIMProperty(CIMName ("Namespaces"), namespaces)); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderType"), providerType)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedMethods"), supportedMethods)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedProperties"), supportedProperties)); CIMObjectPath instanceName3 = cimInstance3.buildPath(cimClass3); instanceName3.setNameSpace(NAMESPACE); instanceName3.setClassName(CLASSNAME3); returnRef3 = prmanager.createInstance(instanceName3, cimInstance3); }
///////////////////////////////////////////////////////////////////////////// // WMIInstanceProvider::getInstance // // /////////////////////////////////////////////////////////////////////////// CIMInstance WMIInstanceProvider::getInstance( const String& nameSpace, const String& userName, const String& password, const CIMObjectPath& instanceName, Boolean localOnly, Boolean includeQualifiers, Boolean includeClassOrigin , const CIMPropertyList& propertyList) { PEG_METHOD_ENTER(TRC_WMIPROVIDER,"WMIInstanceProvider::getInstance()"); CComPtr<IWbemClassObject> pInstance; String sClassName = instanceName.getClassName().getString(); String sInstanceName = getObjectName(instanceName); CIMInstance cimInstance(sClassName); setup(nameSpace, userName, password); PEG_TRACE((TRC_WMIPROVIDER, Tracer::LEVEL3, "getInstance - localOnly %x, includeQualifiers %x, " "includeClassOrigin %x", localOnly, includeQualifiers, includeClassOrigin)); PEG_TRACE((TRC_WMIPROVIDER, Tracer::LEVEL3, "getInstance - classname - %s, namespace - %s, instancename - %s", sClassName, nameSpace ,sInstanceName)); if (!m_bInitialized) { PEG_TRACE((TRC_WMIPROVIDER, Tracer::LEVEL1, "WMIInstanceProvider::getInstance - m_bInitilized= %x, " "throw CIM_ERR_FAILED exception", m_bInitialized)); throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED, "Collector initialation failed."); } // retrieve instance object if (!(_collector->getObject(&pInstance, sInstanceName))) { if (pInstance) pInstance.Release(); throw CIMException(CIM_ERR_NOT_FOUND); } else if (!(_collector->isInstance(pInstance))) { if (pInstance) pInstance.Release(); throw CIMException(CIM_ERR_INVALID_PARAMETER); } // Get the instance object. if (!_collector->getCIMInstance(pInstance, cimInstance, localOnly, includeQualifiers, includeClassOrigin, propertyList, TRUE)) // need key properties here { if (pInstance) pInstance.Release(); throw CIMException(CIM_ERR_NOT_FOUND); } if (pInstance) pInstance.Release(); PEG_METHOD_EXIT(); return cimInstance; }
void TestDeleteInstances(ProviderRegistrationManager & prmanager) { CIMKeyBinding kb1(CIMName ("ProviderModuleName"), "providersModule1", CIMKeyBinding::STRING); CIMKeyBinding kb2(CIMName ("ProviderName"), "PG_ProviderInstance1", CIMKeyBinding::STRING); CIMKeyBinding kb3(CIMName ("CapabilityID"), "capability1", CIMKeyBinding::STRING); CIMKeyBinding kbp1(CIMName ("ProviderModuleName"), "providersModule1", CIMKeyBinding::STRING); CIMKeyBinding kbp2(CIMName ("Name"), "PG_ProviderInstance1", CIMKeyBinding::STRING); CIMKeyBinding kbm1(CIMName ("Name"), "providersModule1", CIMKeyBinding::STRING); CIMObjectPath instanceName; try { for (Uint32 i=1; i<=3; i++) { CIMObjectPath instanceName2; Array<CIMKeyBinding> keys2; Array<CIMKeyBinding> keysm; Array<CIMKeyBinding> keys; // // create Provider module instances // if (i <= 1) { CIMObjectPath returnRef; CIMClass cimClass(CLASSNAME); CIMInstance cimInstance(CLASSNAME); cimInstance.addProperty(CIMProperty(CIMName ("Name"), String("providersModule1"))); cimInstance.addProperty(CIMProperty(CIMName ("Vendor"), String("HP"))); cimInstance.addProperty(CIMProperty(CIMName ("Version"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceType"), String("PG_DefaultC++"))); cimInstance.addProperty(CIMProperty(CIMName ("InterfaceVersion"), String("2.0"))); cimInstance.addProperty(CIMProperty(CIMName ("Location"), String("/tmp/module1"))); instanceName = cimInstance.buildPath(cimClass); instanceName.setNameSpace(NAMESPACE); instanceName.setClassName(CLASSNAME); returnRef = prmanager.createInstance(instanceName, cimInstance); } // create PG_Provider instances if (i <= 2 ) { CIMObjectPath returnRef2; CIMClass cimClass2(CLASSNAME2); CIMInstance cimInstance2(CLASSNAME2); cimInstance2.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance2.addProperty(CIMProperty(CIMName ("Name"), String("PG_ProviderInstance1"))); instanceName2 = cimInstance2.buildPath(cimClass2); instanceName2.setNameSpace(NAMESPACE); instanceName2.setClassName(CLASSNAME2); returnRef2 = prmanager.createInstance(instanceName2, cimInstance2); } // // create provider capability instances // Array <String> namespaces; Array <Uint16> providerType; Array <String> supportedMethods; namespaces.append("test_namespace1"); namespaces.append("test_namespace2"); providerType.append(2); providerType.append(5); supportedMethods.append("test_method1"); supportedMethods.append("test_method2"); CIMObjectPath returnRef3; CIMClass cimClass3(CLASSNAME3); CIMInstance cimInstance3(CLASSNAME3); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderModuleName"), String("providersModule1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderName"), String("PG_ProviderInstance1"))); cimInstance3.addProperty(CIMProperty(CIMName ("CapabilityID"), String("capability1"))); cimInstance3.addProperty(CIMProperty(CIMName ("ClassName"), String("test_class1"))); cimInstance3.addProperty(CIMProperty(CIMName ("Namespaces"), namespaces)); cimInstance3.addProperty(CIMProperty(CIMName ("ProviderType"), providerType)); cimInstance3.addProperty(CIMProperty(CIMName ("SupportedMethods"), supportedMethods)); CIMObjectPath instanceName3 = cimInstance3.buildPath(cimClass3); instanceName3.setNameSpace(NAMESPACE); instanceName3.setClassName(CLASSNAME3); returnRef3 = prmanager.createInstance(instanceName3, cimInstance3); Boolean callFailed = false; switch (i) { case 1: // // delete cimInstance2 // keys2.append(kbp1); keys2.append(kbp2); instanceName2.setKeyBindings(keys2); prmanager.deleteInstance(instanceName2); // Test duplicate delete which should fail try { prmanager.deleteInstance(instanceName2); } catch(CIMException& e) { callFailed = true; VCOUT << "CIMException code " << e.getCode() << "(" << cimStatusCodeToString(e.getCode()) << ")" << "\nDescription \"" << e.getMessage() << "\"" << endl; PEGASUS_TEST_ASSERT(e.getCode() == CIM_ERR_NOT_FOUND); } PEGASUS_TEST_ASSERT(callFailed); break; case 2: // // delete cimInstance3 // keys.append(kb1); keys.append(kb2); keys.append(kb3); instanceName3.setKeyBindings(keys); prmanager.deleteInstance(instanceName3); break; case 3: // // delete cimInstance // keysm.append(kbm1); instanceName.setKeyBindings(keysm); prmanager.deleteInstance(instanceName); break; } } } catch(CIMException& e) { throw (e); } }