Subscribe to
Indications
ESXi 5.5 supports the following types of
indications.
Indication
| Description
|
---|---|
OMC_IpmiAlertIndication
| Sent whenever entries are
added to the IPMI System Event Log, and whenever a sensor’s HealthState
property becomes less healthy than previously seen.
|
OMC_BatteryIpmiAlertIndication
| Specializes OMC_IpmiAlertIndication. |
OMC_BIOSIpmiAlertIndication
| Specializes OMC_IpmiAlertIndication. |
OMC_ChassisIpmiAlertIndication
| Specializes OMC_IpmiAlertIndication. |
OMC_CoolingUnitIpmiAlertIndication
| Specializes OMC_IpmiAlertIndication. |
OMC_DiskIpmiAlertIndication
| Specializes OMC_IpmiAlertIndication. |
OMC_MemoryIpmiAlertIndication
| Specializes OMC_IpmiAlertIndication. |
OMC_PowerIpmiAlertIndication
| Specializes OMC_IpmiAlertIndication. |
OMC_ProcessorIpmiAlertIndication
| Specializes OMC_IpmiAlertIndication. |
VMware_ConcreteJobCreation
| Notifies a listener when
a new VMware_ConcreteJob
has been created to monitor an asynchronous operation
initiated by an extrinsic method.
|
VMware_ConcreteJobModification
| Reports when the status
of a VMware_ConcreteJob
has changed. A change to a job indicates progress or
completion, or that an error occurred during the asynchronous operation.
|
VMware_ConcreteJobDeletion
| Notifies a listener when
a VMware_ConcreteJob
has been deleted by the provider for that job.
|
VMware_KernelIPChangedIndication
| This indication is sent
whenever the ESXi kernel IP address for the host has changed.
|
To receive CIM indications, you must have a
running process that accepts indication messages and logs them or otherwise
acts on them, depending on your application. You can use a commercial CIM
indication consumer to do this. If you choose to implement your own indication
consumer, see the following documents:
- DMTF's CIM Event Model White Paper at http://www.dmtf.org/standards/documents/CIM/DSP0107.pdf
- DMTF's Indications Profile specification at http://www.dmtf.org/standards/published_documents/DSP1054.pdf
- CIM indication specifications from your server supplier that are specific to the server model
The indication consumer must operate with a
known URL. This URL is used when instantiating the IndicationHandler object.
Similarly, you must know which indication class
to monitor. This information is used when instantiating the IndicationFilter
object.
This example shows how to instantiate the
objects needed to register for indications.
This pseudocode depends on the pseudocode in
Make a Connection to the CIMOM.
To subscribe to indications
- Connect to the server URL.Specify the Interop namespace for the connection.use wbemlib use sys use connection renamed cnx connection = Null params = cnx.get_params() if params is Null exit(-1) interop_params = params interop_params['namespace'] = 'root/interop' connection = cnx.connect_to_host( interop_params ) if connection is Null print 'Failed to connect to: ' + params['host'] + ' as user: ' + params['user']
- Build the URL for the indication consumer.destination = 'http://' + params['consumer_host'] \ + ':' + params['consumerPort'] + '/indications'
- Create the IndicationHandler instance to represent the consumer.handlerBindings = { \ 'SystemCreationClassName' : 'OMC_UnitaryComputerSystem', \ 'SystemName' : clientHost, \ 'Name': 'Org:Local', \ 'CreationClassName' : 'CIM_IndicationHandlerCIMXML' \ } handlerName = wbemlib.CIMInstanceName( \ 'CIM_IndicationHandlerCIMXML', \ keybindings=handlerBindings, \ namespace='root/interop' ) handlerInst = wbemlib.CIMInstance( \ 'CIM_IndicationHandlerCIMXML', \ properties = handlerBindings, \ path = handlerName ) handlerInst['Destination'] = destination chandlerName = connection.CreateInstance( handlerInst )Use a globally unique organization identifier in place ofOrg, and use an organizationally unique identifier in place ofLocal.
- Create the IndicationFilter instance to specify the indication class (such asCIM_AlertIndication).TheSourceNamespaceproperty of the filter must match the Implementation namespace of the indication provider. In this pseudocode, the namespace isroot/cimv2but a third-party indication provider might use a different namespace.filterBindings = { \ 'SystemCreationClassName' : 'OMC_UnitaryComputerSystem', \ 'SystemName' : clientHost, \ 'Name': 'Org:Local', \ 'CreationClassName' : 'CIM_IndicationFilter' \ } filterName = wbemlib.CIMInstanceName( \ 'CIM_IndicationFilter', \ keybindings=filterBindings, \ namespace='root/interop' ) filterInst = wbemlib.CIMInstance( \ 'CIM_IndicationFilter', \ properties = filterBindings, \ path = filterName ) filterInst['SourceNamespace'] = 'root/cimv2' filterInst['Query'] = 'SELECT * FROM ' + params['className'] filterInst['QueryLanguage'] = 'WQL' cfilterName = connection.CreateInstance( filterInst )
- Create the IndicationSubscription association to link the filter with the handler.subBindings = { 'Filter': cfilterName, \ 'Handler' : chandlerName } subName = wbemlib.CIMInstanceName( \ 'CIM_IndicationSubscription', \ keybindings = subBindings, \ namespace = 'root/interop' ) subInst = wbemlib.CIMInstance( 'CIM_IndicationSubscription', \ path = subName ) subInst['Filter'] = cfilterName subInst['Handler'] = chandlerName rsubName = connection.CreateInstance( subInst )