Name
sn_agent.AgentDiscoverySharedUtils
Description
No description available
Script
var AgentDiscoverySharedUtils = Class.create();
AgentDiscoverySharedUtils.prototype = {
initialize: function() {},
runDiscoveryCheckForAgentPerMid: function(policyPerMid) {
var checkObj = AgentDiscoverySharedUtils.getDiscoveryCheckToRun();
if (!checkObj) {
gs.error("ACC-F: Could not find any discovery to run against new agents: agentsInfo=" + JSON.stringify(agentsInfo));
return;
}
var agentsRunningDiscoveryIds = [];
for (var mid in policyPerMid) {
var agentsForSpecificMid = Object.keys(policyPerMid[mid]["clients_cis"]);
for (var i = 0; i < agentsForSpecificMid.length; i++)
agentsRunningDiscoveryIds.push(agentsForSpecificMid[i]);
}
AgentDiscoverySharedUtils.setAgentsToHostDataCollectingStatus(agentsRunningDiscoveryIds);
//use agent now api to run discovery request
var discoHandler = new AgentNowHandler();
discoHandler.runCheckForAgentPerMid({
"checkDefId": checkObj.checkSysId
},
policyPerMid, 2, checkObj.timeout
);
},
type: 'AgentDiscoverySharedUtils'
};
AgentDiscoverySharedUtils.getDiscoveryCheckToRun = function() {
var discoCheckTypesSysIds = [];
var grDiscoCheckTypes = new GlideRecord('sn_agent_disco_check_type');
grDiscoCheckTypes.query();
while (grDiscoCheckTypes.next()) {
discoCheckTypesSysIds.push(grDiscoCheckTypes.getValue('sys_id'));
}
var grChecks = new GlideRecord('sn_agent_check_def');
grChecks.addQuery('check_script_type', discoCheckTypesSysIds);
grChecks.addActiveQuery();
grChecks.addQuery('order', '>=', 0);
grChecks.orderBy('order');
grChecks.setLimit(1);
grChecks.query();
if (!grChecks.next())
return null;
var timeoutVar = "600"; // default
try {
timeoutVar = grChecks.getValue('timeout');
} catch (e) {}
return {
checkSysId: grChecks.getValue('sys_id'),
timeout: timeoutVar
};
};
AgentDiscoverySharedUtils.setAgentsHostDataStatus = function(agentsIds, hostDataStatus) {
if (!agentsIds || (agentsIds instanceof Array && agentsIds.length < 1) || (agentsIds instanceof String && agentsIds.startsWith("ASI_")))
return;
// Update all agents that are running Discovery
var agentGr = new GlideRecord('sn_agent_ci_extended_info');
agentGr.addQuery('agent_id', agentsIds);
agentGr.setValue('host_data', hostDataStatus);
if (hostDataStatus == '0') // Collected
agentGr.setValue('host_data_last_collected', new GlideDateTime());
agentGr.updateMultiple();
};
AgentDiscoverySharedUtils.setAgentsToHostDataCollectedStatus = function(agentsIds) {
AgentDiscoverySharedUtils.setAgentsHostDataStatus(agentsIds, '0'); // Update host_data to collected
};
AgentDiscoverySharedUtils.setAgentsToHostDataCollectingStatus = function(agentsIds) {
AgentDiscoverySharedUtils.setAgentsHostDataStatus(agentsIds, '1'); // Update host_data to Collecting...
};
AgentDiscoverySharedUtils.setAgentsToHostDataCollectionFailedStatus = function(agentsIds) {
AgentDiscoverySharedUtils.setAgentsHostDataStatus(agentsIds, '2'); // Update host_data to Collection Failed
};
AgentDiscoverySharedUtils.setAgentsToHostDataCollectionDisabledStatus = function(agentsIds) {
AgentDiscoverySharedUtils.setAgentsHostDataStatus(agentsIds, '3'); // Update host_data to Collection Disabled
};
AgentDiscoverySharedUtils.isDiscoveryCheckType = function(checkTypeSysId) {
var grdiscoCheckType = new GlideRecord('sn_agent_disco_check_type');
return grdiscoCheckType.get('sys_id', checkTypeSysId);
};
// returns 4 to prefer IPv4 and 6 to prefer IPv6
AgentDiscoverySharedUtils.getPreferredIPVersion = function() {
return gs.getProperty('sn_agent.ci_prefers_ip_version', 4) == 6 ? 6 : 4;
};
Sys ID
75335a745399e0108ec4ddeeff7b1204