CIMObjectPath CreateFilterInstance (CIMClient& client, const String query, const String qlang, const String name, const CIMNamespaceName & filterNS) { CIMInstance filterInstance(PEGASUS_CLASSNAME_INDFILTER); filterInstance.addProperty(CIMProperty (CIMName ("SystemCreationClassName"), System::getSystemCreationClassName())); filterInstance.addProperty(CIMProperty(CIMName ("SystemName"), System::getFullyQualifiedHostName())); filterInstance.addProperty(CIMProperty(CIMName ("CreationClassName"), PEGASUS_CLASSNAME_INDFILTER.getString())); filterInstance.addProperty(CIMProperty(CIMName ("Name"), String(name))); filterInstance.addProperty (CIMProperty(CIMName ("Query"), String(query))); filterInstance.addProperty (CIMProperty(CIMName ("QueryLanguage"), String(qlang))); filterInstance.addProperty (CIMProperty(CIMName ("SourceNamespace"), String("test/TestProvider"))); CIMObjectPath Ref = client.createInstance(filterNS, filterInstance); Ref.setNameSpace (filterNS); return (Ref); }
void _createFilterInstance( CIMClient& client, const String& name, const String& query, const String& qlang) { CIMInstance filterInstance(PEGASUS_CLASSNAME_INDFILTER); filterInstance.addProperty(CIMProperty(CIMName ("SystemCreationClassName"), System::getSystemCreationClassName())); filterInstance.addProperty(CIMProperty(CIMName("SystemName"), System::getFullyQualifiedHostName())); filterInstance.addProperty(CIMProperty(CIMName("CreationClassName"), PEGASUS_CLASSNAME_INDFILTER.getString())); filterInstance.addProperty(CIMProperty(CIMName("Name"), name)); filterInstance.addProperty(CIMProperty(CIMName("Query"), query)); filterInstance.addProperty(CIMProperty(CIMName("QueryLanguage"), String(qlang))); filterInstance.addProperty(CIMProperty(CIMName("SourceNamespace"), NAMESPACE.getString())); CIMObjectPath path = client.createInstance(PEGASUS_NAMESPACENAME_INTEROP, filterInstance); }
int createSubscription(CIMClient& client) { // Create a Listener Destination CIMInstance destinationInstance("CIM_ListenerDestinationCIMXML"); destinationInstance.addProperty(CIMProperty( CIMName("SystemCreationClassName"), System::getSystemCreationClassName())); // destinationInstance.addProperty(CIMProperty(CIMName("SystemName"), // System::getFullyQualifiedHostName())); // destinationInstance.addProperty(CIMProperty(CIMName("CreationClassName"), // String("CIM_ListenerDestinationCIMXML"))); destinationInstance.addProperty(CIMProperty(CIMName("Name"), String("EmbeddedInstance Test Handler"))); destinationInstance.addProperty(CIMProperty(CIMName("Destination"), String("http://localhost:2003"))); try { destinationPath = client.createInstance(TEST_NAMESPACE, destinationInstance); } catch (Exception& e) { cout << "Exception caught while creating listener destination: " << e.getMessage() << endl; return -1; } // Create a Filter CIMInstance filterInstance("CIM_IndicationFilter"); filterInstance.addProperty(CIMProperty( CIMName("SystemCreationClassName"), System::getSystemCreationClassName())); filterInstance.addProperty(CIMProperty(CIMName("SystemName"), System::getFullyQualifiedHostName())); filterInstance.addProperty(CIMProperty(CIMName("CreationClassName"), String("CIM_IndicationFilter"))); filterInstance.addProperty(CIMProperty(CIMName("Name"), String("Embedded Instance Test Filter"))); filterInstance.addProperty(CIMProperty(CIMName("Query"), String("SELECT * FROM PG_InstMethodIndication"))); filterInstance.addProperty(CIMProperty(CIMName("QueryLanguage"), String("CIM:CQL"))); filterInstance.addProperty(CIMProperty(CIMName("SourceNamespace"), TEST_NAMESPACE.getString())); try { filterPath = client.createInstance (TEST_NAMESPACE, filterInstance); } catch (Exception& e) { cout << "Exception caught while creating indication filter: " << e.getMessage() << endl; return -1; } // Create a Subscription CIMInstance subscriptionInstance("CIM_IndicationSubscription"); subscriptionInstance.addProperty(CIMProperty(CIMName("Filter"), filterPath, 0, "CIM_IndicationFilter")); subscriptionInstance.addProperty(CIMProperty(CIMName("Handler"), destinationPath, 0, "CIM_ListenerDestinationCIMXML")); subscriptionInstance.addProperty(CIMProperty( CIMName("SubscriptionState"), CIMValue((Uint16) 2))); try { subscriptionPath = client.createInstance(TEST_NAMESPACE, subscriptionInstance); } catch (Exception& e) { cout << "Exception caught while creating subscription: " << e.getMessage() << endl; return -1; } return 0; }