- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-30-2017 01:48 AM
Hi,
We are configuring a custom integration (from HP uCMDB) retrieving windows, linux and esx servers to the CMDB tables cmdb_cI_win_server, cmdb_ci_linux_server and cmdb_ci_esx_server.
In all 3 transform maps instead of using the coalesce option we have this onBefore script to have the transforms use the default CI Identifier rules:
(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {
// Identification and Reconcilliaton
var cmdbUtil = new CMDBTransformUtil();
cmdbUtil.identifyAndReconcile(source, map, log);
ignore = true;
if (cmdbUtil.hasError()) {
var errorMessage = cmdbUtil.getError();
log.error(errorMessage);
} else {
log.info('IE Output Payload: ' + cmdbUtil.getOutputPayload());
log.info('Imported CI: ' + cmdbUtil.getOutputRecordSysId());
}
})(source, map, log, target);
For the transform maps for the linux + windows servers this works like a charm using the default 'Hardware Rule' (parent cmdb_ci_hardware table) CI Identifier rule first trying to match on cmdb_serial_number.serial_number then on cmdb_ci_hardware.serial_number and finally on cmdb_ci_hardware.name.
However, for the ESX transform map we get errors like this in the system log:
Looking at the cmdb_ci_esx_server table it is actually extended from cmdb_ci_vcenter_server_obj which again extends from cmdb_ci_virtualization_server (all though cmdb_ci_esx_server also appears to extend from cmdb_ci_server like cmdb_ci_win_server and cmdb_ci_linux_server):
cmdb_ci_virtualization_server has its own CI Identifier rule named 'Virtualization Server'.
Like the CI Identifier 'Hardware Rule' the 'Virtualization Server' rule first trying to match on cmdb_serial_nuber.serial_number then on cmdb_ci_virtualization_server.serial_number and finally on cmdb_ci_virtualization.name rule.
However, it don't understand why we get the errors in the system log for the ESX transformation?
I assume that if the ESX servers are not able to match by Serial number or Name against the CI Identifier Rule since table cmdb_ci_virtualization_server extends table cmdb_ci_server which extends cmdb_ci_hardware then if no match using the 'Virtualization Server' CI Identifier rule it would continue to try to match against parent CI Identifier 'Hardware Rule'.
I get the error both when there are no matching server CIs and when I manually create a matching CI in cmdb_ci_esx_server (matching both 'Name' + 'Serial number').
If I try to change the ESX transform map to use target table 'cmdb_ci_linux_server' instead of 'cmdb_ci_esx_server' I don't see the system log errors.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-30-2017 03:20 AM
Ok I missed there is also an CI Identifier rule named 'ESX Server Rule' for the cmdb_ci_esx_server table trying to match on 'correlation id'.
Since 'correlation id' is not part of our custom integration I have disabled that rule which removed the system log errors.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-30-2017 03:20 AM
Ok I missed there is also an CI Identifier rule named 'ESX Server Rule' for the cmdb_ci_esx_server table trying to match on 'correlation id'.
Since 'correlation id' is not part of our custom integration I have disabled that rule which removed the system log errors.