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 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 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); } }
static void _testInstances(void) { const String NAMESPACE = "aa/bb"; const String CLASSNAME = "MyClass"; CIMRepository r(repositoryRoot, CIMRepository::MODE_XML); WsmToCimRequestMapper mapper(&r); // Create a repository entry r.createNameSpace(NAMESPACE); CIMClass cimClass(CLASSNAME); cimClass.addProperty(CIMProperty(CIMName("prop1"), String::EMPTY)); cimClass.addProperty(CIMProperty(CIMName("prop2"), String::EMPTY)); r.createClass(NAMESPACE, cimClass); CIMInstance cimInst; WsmInstance wsmInst(CLASSNAME); WsmValue val1("value1"); WsmValue val2("value2"); // Test mapping of instances wsmInst.addProperty(WsmProperty(String("prop1"), val1)); wsmInst.addProperty(WsmProperty(String("prop2"), val2)); mapper.convertWsmToCimInstance(wsmInst, NAMESPACE, cimInst); String str1, str2; PEGASUS_TEST_ASSERT(cimInst.getClassName().getString() == CLASSNAME); PEGASUS_TEST_ASSERT( cimInst.getProperty(0).getName().getString() == "prop1"); PEGASUS_TEST_ASSERT(cimInst.getProperty(0).getType() == CIMTYPE_STRING); cimInst.getProperty(0).getValue().get(str1); PEGASUS_TEST_ASSERT(str1 == "value1"); PEGASUS_TEST_ASSERT( cimInst.getProperty(1).getName().getString() == "prop2"); PEGASUS_TEST_ASSERT(cimInst.getProperty(1).getType() == CIMTYPE_STRING); cimInst.getProperty(1).getValue().get(str2); PEGASUS_TEST_ASSERT(str2 == "value2"); // Test mapping of instance values WsmValue wsmInstValue(wsmInst); CIMValue cimInstValue(CIMTYPE_INSTANCE, false); mapper.convertWsmToCimValue(wsmInstValue, NAMESPACE, cimInstValue); CIMInstance cimInst1; cimInstValue.get(cimInst1); PEGASUS_TEST_ASSERT(cimInst1.getClassName().getString() == CLASSNAME); PEGASUS_TEST_ASSERT( cimInst1.getProperty(0).getName().getString() == "prop1"); PEGASUS_TEST_ASSERT(cimInst1.getProperty(0).getType() == CIMTYPE_STRING); cimInst1.getProperty(0).getValue().get(str1); PEGASUS_TEST_ASSERT(str1 == "value1"); PEGASUS_TEST_ASSERT( cimInst1.getProperty(1).getName().getString() == "prop2"); PEGASUS_TEST_ASSERT(cimInst1.getProperty(1).getType() == CIMTYPE_STRING); cimInst1.getProperty(1).getValue().get(str2); PEGASUS_TEST_ASSERT(str2 == "value2"); // Test mapping of instance array values WsmInstance wsmInst1(CLASSNAME); WsmValue val3("value3"); WsmValue val4("value4"); wsmInst1.addProperty(WsmProperty(String("prop1"), val3)); wsmInst1.addProperty(WsmProperty(String("prop2"), val4)); Array<WsmInstance> wsmInstArray; wsmInstArray.append(wsmInst); wsmInstArray.append(wsmInst1); WsmValue wsmInstArrayValue(wsmInstArray); CIMValue cimInstArrayValue(CIMTYPE_INSTANCE, true); mapper.convertWsmToCimValue( wsmInstArrayValue, NAMESPACE, cimInstArrayValue); Array<CIMInstance> cimInstArray; cimInstArrayValue.get(cimInstArray); PEGASUS_TEST_ASSERT(cimInstArray.size() == 2); PEGASUS_TEST_ASSERT( cimInstArray[0].getClassName().getString() == CLASSNAME); PEGASUS_TEST_ASSERT( cimInstArray[0].getProperty(0).getName().getString() == "prop1"); PEGASUS_TEST_ASSERT( cimInstArray[0].getProperty(0).getType() == CIMTYPE_STRING); cimInstArray[0].getProperty(0).getValue().get(str1); PEGASUS_TEST_ASSERT(str1 == "value1"); PEGASUS_TEST_ASSERT( cimInstArray[0].getProperty(1).getName().getString() == "prop2"); PEGASUS_TEST_ASSERT( cimInstArray[0].getProperty(1).getType() == CIMTYPE_STRING); cimInstArray[0].getProperty(1).getValue().get(str2); PEGASUS_TEST_ASSERT(str2 == "value2"); PEGASUS_TEST_ASSERT( cimInstArray[1].getClassName().getString() == CLASSNAME); PEGASUS_TEST_ASSERT( cimInstArray[1].getProperty(0).getName().getString() == "prop1"); PEGASUS_TEST_ASSERT( cimInstArray[1].getProperty(0).getType() == CIMTYPE_STRING); cimInstArray[1].getProperty(0).getValue().get(str1); PEGASUS_TEST_ASSERT(str1 == "value3"); PEGASUS_TEST_ASSERT( cimInstArray[1].getProperty(1).getName().getString() == "prop2"); PEGASUS_TEST_ASSERT( cimInstArray[1].getProperty(1).getType() == CIMTYPE_STRING); cimInstArray[1].getProperty(1).getValue().get(str2); PEGASUS_TEST_ASSERT(str2 == "value4"); // Test non-existent class try { wsmInst.setClassName("garbage"); mapper.convertWsmToCimInstance(wsmInst, NAMESPACE, cimInst); PEGASUS_TEST_ASSERT(0); } catch (CIMException& e) { PEGASUS_TEST_ASSERT(e.getCode() == CIM_ERR_NOT_FOUND); } // Test non-existent property { WsmValue val("value3"); wsmInst.setClassName(CLASSNAME); wsmInst.addProperty(WsmProperty(String("prop3"), val)); ASSERT_FAULT( mapper.convertWsmToCimInstance(wsmInst, NAMESPACE, cimInst), "wsman:SchemaValidationError"); } }
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); }
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); } }