📄 subscription.cpp
字号:
PEGASUS_CLASSNAME_INDHANDLER_CIMXML, _buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01")); path = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, subscription02); _checkSubscriptionPath (path, "Filter02", PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01"); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "OnFatalErrorPolicy", 2); _checkUint16Property (retrievedInstance, "SubscriptionState", 2); _checkUint16Property (retrievedInstance, "RepeatNotificationPolicy", 2); CIMInstance subscription03 = _buildSubscriptionInstance (_buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDFILTER, "Filter03"), PEGASUS_CLASSNAME_INDHANDLER_CIMXML, _buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01")); path = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, subscription03); _checkSubscriptionPath (path, "Filter03", PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01"); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "OnFatalErrorPolicy", 2); _checkUint16Property (retrievedInstance, "SubscriptionState", 2); _checkUint16Property (retrievedInstance, "RepeatNotificationPolicy", 2); CIMInstance subscription04 = _buildSubscriptionInstance (_buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDFILTER, "Filter04"), PEGASUS_CLASSNAME_INDHANDLER_CIMXML, _buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01")); path = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, subscription04); _checkSubscriptionPath (path, "Filter04", PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01"); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "OnFatalErrorPolicy", 2); _checkUint16Property (retrievedInstance, "SubscriptionState", 2); _checkUint16Property (retrievedInstance, "RepeatNotificationPolicy", 2); CIMInstance subscription05 = _buildSubscriptionInstance (_buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDFILTER, "Filter05"), PEGASUS_CLASSNAME_INDHANDLER_CIMXML, _buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01")); path = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, subscription05); _checkSubscriptionPath (path, "Filter05", PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01"); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "OnFatalErrorPolicy", 2); _checkUint16Property (retrievedInstance, "SubscriptionState", 2); _checkUint16Property (retrievedInstance, "RepeatNotificationPolicy", 2); CIMInstance subscription06 = _buildSubscriptionInstance (_buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDFILTER, "Filter06"), PEGASUS_CLASSNAME_INDHANDLER_CIMXML, _buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01")); path = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, subscription06); _checkSubscriptionPath (path, "Filter06", PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01"); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "OnFatalErrorPolicy", 2); _checkUint16Property (retrievedInstance, "SubscriptionState", 2); _checkUint16Property (retrievedInstance, "RepeatNotificationPolicy", 2); // // Create subscription with transient handler // CIMInstance subscription07 = _buildSubscriptionInstance (_buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDFILTER, "Filter01"), PEGASUS_CLASSNAME_INDHANDLER_CIMXML, _buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler02")); path = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, subscription07); _checkSubscriptionPath (path, "Filter01", PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler02"); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "OnFatalErrorPolicy", 2); _checkUint16Property (retrievedInstance, "SubscriptionState", 2); _checkUint16Property (retrievedInstance, "RepeatNotificationPolicy", 2); // // Delete transient handler - referencing subscription must be deleted // _deleteHandlerInstance (client, PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler02"); try { retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); PEGASUS_TEST_ASSERT (false); } catch (CIMException & e) { _checkExceptionCode (e, CIM_ERR_NOT_FOUND); } // // Create subscription with SNMP handler // CIMInstance subscription08 = _buildSubscriptionInstance (_buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDFILTER, "Filter01"), PEGASUS_CLASSNAME_INDHANDLER_SNMP, _buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDHANDLER_SNMP, "Handler03")); path = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, subscription08); _checkSubscriptionPath (path, "Filter01", PEGASUS_CLASSNAME_INDHANDLER_SNMP, "Handler03"); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "OnFatalErrorPolicy", 2); _checkUint16Property (retrievedInstance, "SubscriptionState", 2); _checkUint16Property (retrievedInstance, "RepeatNotificationPolicy", 2); // // Create subscription with CIMXML Listener Destination // CIMInstance subscription09 = _buildSubscriptionInstance (_buildFilterOrHandlerPath (PEGASUS_CLASSNAME_INDFILTER, "Filter01"), PEGASUS_CLASSNAME_LSTNRDST_CIMXML, _buildFilterOrHandlerPath (PEGASUS_CLASSNAME_LSTNRDST_CIMXML, "ListenerDestination01")); path = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, subscription09); _checkSubscriptionPath (path, "Filter01", PEGASUS_CLASSNAME_LSTNRDST_CIMXML, "ListenerDestination01"); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "OnFatalErrorPolicy", 2); _checkUint16Property (retrievedInstance, "SubscriptionState", 2); _checkUint16Property (retrievedInstance, "RepeatNotificationPolicy", 2); // // Enumerate filters // instances = client.enumerateInstances (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_INDFILTER);#ifndef PEGASUS_DISABLE_CQL PEGASUS_TEST_ASSERT (instances.size () == 7);#else PEGASUS_TEST_ASSERT (instances.size () == 6);#endif paths = client.enumerateInstanceNames (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_INDFILTER);#ifndef PEGASUS_DISABLE_CQL PEGASUS_TEST_ASSERT (paths.size () == 7);#else PEGASUS_TEST_ASSERT (paths.size () == 6);#endif // // Enumerate handlers and listener destinations // Array <CIMInstance> handlers = client.enumerateInstances (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_INDHANDLER); PEGASUS_TEST_ASSERT (handlers.size () == 2); Array <CIMInstance> listDests = client.enumerateInstances (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_LSTNRDST); PEGASUS_TEST_ASSERT (listDests.size () == 3); Array <CIMObjectPath> cimxmlHandlerPaths = client.enumerateInstanceNames (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_INDHANDLER_CIMXML); PEGASUS_TEST_ASSERT (cimxmlHandlerPaths.size () == 1); _checkFilterOrHandlerPath (cimxmlHandlerPaths [0], PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01"); Array <CIMObjectPath> snmpHandlerPaths = client.enumerateInstanceNames (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_INDHANDLER_SNMP); PEGASUS_TEST_ASSERT (snmpHandlerPaths.size () == 1); _checkFilterOrHandlerPath (snmpHandlerPaths [0], PEGASUS_CLASSNAME_INDHANDLER_SNMP, "Handler03"); Array <CIMObjectPath> handlerPaths = client.enumerateInstanceNames (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_INDHANDLER); PEGASUS_TEST_ASSERT (handlerPaths.size () == 2); Array <CIMObjectPath> listDestPaths = client.enumerateInstanceNames (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_LSTNRDST); PEGASUS_TEST_ASSERT (listDestPaths.size () == 3); Array <CIMObjectPath> cimxmlListDestPaths = client.enumerateInstanceNames (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_LSTNRDST_CIMXML); PEGASUS_TEST_ASSERT (cimxmlListDestPaths.size () == 1); _checkFilterOrHandlerPath (cimxmlListDestPaths [0], PEGASUS_CLASSNAME_LSTNRDST_CIMXML, "ListenerDestination01"); // // Enumerate subscriptions // Array <CIMInstance> subscriptions = client.enumerateInstances (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_INDSUBSCRIPTION); PEGASUS_TEST_ASSERT (subscriptions.size () == 8); Array <CIMObjectPath> subscriptionPaths = client.enumerateInstanceNames (PEGASUS_NAMESPACENAME_INTEROP, PEGASUS_CLASSNAME_INDSUBSCRIPTION); PEGASUS_TEST_ASSERT (subscriptionPaths.size () == 8); // // Modify subscription: set state to disabled // CIMInstance modifiedInstance01 (PEGASUS_CLASSNAME_INDSUBSCRIPTION); _addUint16Property (modifiedInstance01, "SubscriptionState", 4); path = _buildSubscriptionPath ("Filter01", PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01"); modifiedInstance01.setPath (path); Array <CIMName> propertyNames01; propertyNames01.append (CIMName ("SubscriptionState")); CIMPropertyList properties01 (propertyNames01); client.modifyInstance (PEGASUS_NAMESPACENAME_INTEROP, modifiedInstance01, false, properties01); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "SubscriptionState", 4); // // Modify subscription: specify 0 properties to be modified // CIMInstance modifiedInstance02 (PEGASUS_CLASSNAME_INDSUBSCRIPTION); _addUint16Property (modifiedInstance02, "SubscriptionState", 2); path = _buildSubscriptionPath ("Filter01", PEGASUS_CLASSNAME_INDHANDLER_CIMXML, "Handler01"); modifiedInstance02.setPath (path); Array <CIMName> propertyNames02; CIMPropertyList properties02 (propertyNames02); client.modifyInstance (PEGASUS_NAMESPACENAME_INTEROP, modifiedInstance02, false, properties02); retrievedInstance = client.getInstance (PEGASUS_NAMESPACENAME_INTEROP, path); _checkUint16Property (retrievedInstance, "SubscriptionState", 4); // // Provider registration changes: create, modify and delete operations // // // Create a new CIM_ProcessIndication provider that supports only the // IndicationTime property // Array <String> namespaces; Array <Uint16> providerTypes; Array <CIMName> propertyNames; namespaces.append (SOURCENAMESPACE.getString ()); providerTypes.append (4); propertyNames.append (CIMName ("IndicationTime")); CIMPropertyList properties (propertyNames); _createProviderInstance (client, String ("ProcessIndicationProvider2"), String ("ProcessIndicationProviderModule")); _createCapabilityInstance (client, String ("ProcessIndicationProviderModule"), String ("ProcessIndicationProvider2"), String ("ProcessIndicationProviderCapability2"), String ("CIM_ProcessIndication"), namespaces, providerTypes, properties); // // Modify the CIM_ProcessIndication provider to support both the // IndicationTime and IndicationIdentifier properties // propertyNames.clear (); propertyNames.append (CIMName ("IndicationTime")); propertyNames.append (CIMName ("IndicationIdentifier")); properties.clear (); properties.set (propertyNames); _modifyCapabilityInstance (client, String ("ProcessIndicationProviderModule"), String ("ProcessIndicationProvider2"), String ("ProcessIndicationProviderCapability2"), properties); // // Modify the CIM_ProcessIndication provider to again support only the // IndicationTime property // propertyNames.clear (); propertyNames.append (CIMName ("IndicationTime")); propertyNames.append (CIMName ("IndicationIdentifier")); properties.clear (); properties.set (propertyNames); _modifyCapabilityInstance (client, String ("ProcessIndicationProviderModule"), String ("ProcessIndicationProvider2"), String ("ProcessIndicationProviderCapability2"), properties); // // Delete the provider // _deleteCapabilityInstance (client, "ProcessIndicationProviderModule", "ProcessIndicationProvider2", "ProcessIndicationProviderCapability2"); _deleteProviderInstance (client, "ProcessIndicationProvider2", "ProcessIndicationProviderModule"); // // Create Subscription with correct Host and Namespace in Filter and // Handler reference property value // Verify Host and Namespace appear in Subscription instance name // returned from Create Instance operation // CIMObjectPath fPath; CIMObjectPath hPath; CIMObjectPath sPath; CIMInstance filter08 (PEGASUS_CLASSNAME_INDFILTER); query = "SELECT * FROM CIM_ProcessIndication"; _addStringProperty (filter08, "Name", "Filter08"); _addStringProperty (filter08, "SourceNamespace", SOURCENAMESPACE.getString ()); _addStringProperty (filter08, "Query", query); _addStringProperty (filter08, "QueryLanguage", qlang); fPath = client.createInstance (PEGASUS_NAMESPACENAME_INTEROP, filter08); f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -