Name
global.FindMidCapabiltiesByHost
Description
Find the MID capabilties required in order to discover applications running on specific type host
Script
var FindMidCapabiltiesByHost = Class.create();
FindMidCapabiltiesByHost.prototype = {
initialize: function() {
},
findMidCapabilties: function(host_id) {
var capList = [];
// First, find the host class
var cmdbCi = new GlideRecord("cmdb_ci");
cmdbCi.get(host_id);
if (!cmdbCi.isValid()) {
gs.log("FindMidCapabiltiesByHost: host not found");
return capList;
}
var hostClassesArray = [];
var hostClasses = GlideDBObjectManager.getTables(cmdbCi.sys_class_name);
for (var i = 0; i < hostClasses.size(); i++)
hostClassesArray.push(hostClasses.get(i));
var classToCapabilties = new GlideRecord("sa_host_class_to_capability");
classToCapabilties.addQuery('os', 'IN', hostClassesArray);
classToCapabilties.orderBy('order');
classToCapabilties.query();
// Iterate over the table record. If we reach matching record, take its capabilties
while (classToCapabilties.next()) {
if (!classToCapabilties.capabilties)
continue;
var capGr = new GlideRecord("ecc_agent_capability");
var capArray =('' + classToCapabilties.capabilties).split(",");
capGr.addQuery("sys_id", capArray);
capGr.query();
while (capGr.next())
capList.push(''+capGr.capability);
return capList;
}
return capList;
},
type: 'FindMidCapabiltiesByHost'
};
Sys ID
f57764e3c30022003e76741e81d3aedb