vCenter discovery: How identification works for ESX serversDuring vCenter discovery, the identification process for ESX server doesn’t go through IRE CI identifier, it goes through "VCenterESXHostsSensor" script include where there are 3 identification indexes. index: [ esxCorrelationIdIndex, esxMorIdIndex, esxSerialIndex ] 1. esxCorrelationIdIndex - where correlation_id of the ESX server is used as the identifier if it is a compatible manufacturer and if it is a non-compatible manufacturer, combination of correlation_id, object_id(mor_id) and vcenter_uuid is used as the identifier. Compatibility list is extracted from https://www.vmware.com/resources/compatibility/search.php 2. esxMorIdIndex - In case if the correlation_id changes for an ESX server, it can be identified with it'smor_id, vcenter_uuid and it's install status. We query the ESX servers with install status 'Installed' or 'In Maintainance' because in other cases such as Retired', their mor_ids would be recycled and used by another ESX server in which we shouldn't be updating the Retired ESX server 3. esxSerialIndex - When the correlation_id is empty (or) '00000000-0000-0000-0000-000000000000' (or) 'FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF', then the third index to check is the serial number of the ESX server The above order is followed to identify a CI i.e., if there is a matching record found with first index(esxCorrelationIdIndex), then the identification stops there and the second and third index would be skipped. The correlation_id is expected to be unique identifier for an ESX server, however in some cases, same correlation_id can be shared across multiple ESX servers. In that case the above identification would result in creating a single record for all the ESX servers sharing the same correlation_id. The work-around for this issue is to remove esxCorrelationIdIndex from the index in "VCenterESXHostsSensor" script include as below Change from, schema = { cmdb_ci_esx_server: { fixup: fixupEsx, preWriteInit : preWriteInitEsx, preWriteRels: preWriteEsxRels, index: [ esxCorrelationIdIndex, esxMorIdIndex, esxSerialIndex ], To, schema = { cmdb_ci_esx_server: { fixup: fixupEsx, preWriteInit : preWriteInitEsx, preWriteRels: preWriteEsxRels, index: [ esxMorIdIndex, esxSerialIndex ],