Name
global.CheckIpServicesForServiceMapping
Description
Update the MID properties used by service mapping based on cmdb_ip_services table.
Script
var CheckIpServicesForServiceMapping = Class.create();
CheckIpServicesForServiceMapping.prototype = {
initialize: function() {
},
updateMidProperty: function() {
var ports = [];
// Look for all entries related to SSH
var portProbeGr = new GlideRecord('discovery_port_probe');
portProbeGr.addQuery('name', 'ssh');
portProbeGr.query();
while (portProbeGr.next()) {
var services = portProbeGr.services;
var serviceArray = services.split(',');
for (var i = 0;i<serviceArray.length; i++) {
var gr = new GlideRecord("cmdb_ip_service");
gr.get(serviceArray[i]);
if (gr.isValid()) {
ports.push(gr.getValue("port"));
}
}
}
gs.log("number of ports found for ssh is " + ports.length);
// if single entry with port 22, only check if there is mid property not associated with specific MID.
// if such found, update it.
if (ports.length < 1) {
gs.log("no ports found for ssh");
return;
}
var midProp = new GlideRecord("ecc_agent_property");
if (ports.length == 1 && ports[0] == "22") {
midProp.addQuery("name", "mid.sa.ssh.port");
midProp.addQuery("ecc_agent", null);
midProp.query();
if (midProp.next()) {
gs.log("Updating mid.sa.ssh.port to 22");
midProp.setValue("value", "22");
midProp.update();
} else {
gs.log("No MID property mid.sa.ssh.port found. Nothing to update");
}
return;
}
// If more than one entry, or the port associated is not 22, create/update the MID property to contain
// comma separated list of ports
midProp = new GlideRecord("ecc_agent_property");
midProp.addQuery("name", "mid.sa.ssh.port");
midProp.addQuery("ecc_agent", null);
midProp.query();
if (midProp.next()) {
gs.log("Updating mid.sa.ssh.port");
midProp.setValue("value", ports.toString());
midProp.update();
} else {
gs.log("Creating property mid.sa.ssh.port");
midProp.initialize();
midProp.setValue("name", "mid.sa.ssh.port");
midProp.setValue("value", ports.toString());
midProp.insert();
}
},
type: 'CheckIpServicesForServiceMapping'
};
Sys ID
ccc0e172c32012003e76741e81d3ae76