Example #1
0
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);
  }
}