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

Offical Documentation

Official Docs: