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:

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

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 )