Subscribe to Indications

ESXi 5.5 supports the following types of indications.
Indications Supported by ESXi
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:
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
  1. 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']
  2. Build the URL for the indication consumer.
    destination = 'http://' + params['consumer_host'] \ + ':' + params['consumerPort'] + '/indications'
  3. 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 of
    Org
    , and use an organizationally unique identifier in place of
    Local
    .
  4. Create the IndicationFilter instance to specify the indication class (such as
    CIM_AlertIndication
    ).
    The
    SourceNamespace
    property of the filter must match the Implementation namespace of the indication provider. In this pseudocode, the namespace is
    root/cimv2
    but 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 )
  5. 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 )