Name
sn_acc_adapter.AccAdapterUtilsSNC
Description
No description available
Script
var AccAdapterUtilsSNC = Class.create();
AccAdapterUtilsSNC.prototype = {
PLUGIN_ACC_CORE: "com.agent-now",
TABLES: {
SN_AGENT_CI_EXTENDED_INFO: "sn_agent_ci_extended_info",
SN_AGENT_CHECK_PARAM_DEF: "sn_agent_check_param_def",
SN_AGENT_CMDB_CI_AGENT: "sn_agent_cmdb_ci_agent",
CMDB_CI_COMPUTER: "cmdb_ci_computer",
CMDB_CI: "cmdb_ci"
},
initialize: function() {
this.agentNowHandler = new sn_agent.AgentNowHandler();
},
isProviderInstalled: function(ciSysId) {
var agentGr = new GlideRecord(this.TABLES.SN_AGENT_CMDB_CI_AGENT);
agentGr.addQuery("agent_extended_info.cmdb_ci", ciSysId);
agentGr.query();
return agentGr.hasNext();
},
isAgentAvailable: function(ciSysId) {
return this.agentNowHandler.hasAgent(ciSysId);
},
isMidServerUpAndValidated: function(ciSysId) {
var agentGr = new GlideRecord(this.TABLES.SN_AGENT_CMDB_CI_AGENT);
agentGr.addQuery("agent_extended_info.cmdb_ci", ciSysId);
agentGr.addQuery("agent_extended_info.mid.status", "Up");
agentGr.addQuery("agent_extended_info.mid.validated", "true");
agentGr.query();
return agentGr.hasNext();
},
isDataCollectionRunning: function(ciSysId) {
var agentGr = new GlideRecord(this.TABLES.SN_AGENT_CI_EXTENDED_INFO);
agentGr.addQuery("cmdb_ci", ciSysId);
agentGr.addQuery("data_collection", "0");
agentGr.setLimit(1);
agentGr.query();
return agentGr.hasNext();
},
runCheckDefOnCI: function(ciSysId, checkDefSysId, command, skipPreRequestChecks) {
// skip the checks if they are done at UI layer
if (!skipPreRequestChecks) {
var hasAgent = this.isAgentAvailable(ciSysId);
var errorMsg;
if (hasAgent === false) {
errorMsg = "Provided CI does not have any agent installed.";
gs.error(errorMsg);
throw new Error(errorMsg);
}
var isDataCollectionOn = this.isDataCollectionRunning(ciSysId);
if (isDataCollectionOn === false) {
errorMsg = "Data collection is paused. Contact your admin.";
gs.error(errorMsg);
throw new Error(errorMsg);
}
}
var checkJson = this.buildCheckJson(checkDefSysId, command);
var ci = new GlideRecord(this.TABLES.CMDB_CI_COMPUTER);
ci.addQuery("sys_id", ciSysId);
ci.query();
var reqId = this.agentNowHandler.runCheckForCis(ci, checkJson, '1');
return reqId;
},
buildCheckJson: function(checkDefSysId, command) {
var checkJson = {
"checkDefId": checkDefSysId,
"params": {}
};
var paramsGr = new GlideRecord(this.TABLES.SN_AGENT_CHECK_PARAM_DEF);
paramsGr.addQuery("check_def", checkDefSysId);
paramsGr.query();
if (paramsGr.next()) {
checkJson.params[paramsGr.name] = command;
}
return checkJson;
},
getCommandWithArgValues: function(cmd, argMap) {
var args = Object.keys(argMap);
for(var i=0; i<args.length; i++) {
var arg = args[i];
var token = "{{" + arg + "}}";
var tokenRegex = new RegExp(token, "g");
cmd = cmd.replace(tokenRegex, argMap[arg]);
}
return cmd;
},
type: 'AccAdapterUtilsSNC'
};
Sys ID
4ee00f4a53c41110ae50ddeeff7b1278