Name
sn_agent.AccAjaxFCommon
Description
various methods and utils for Acc franework Ajax
Script
var AccAjaxFCommon = Class.create();
AccAjaxFCommon.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getTableExtensions: function(tableName) {
var table = new GlideTableHierarchy(tableName);
return table.getTableExtensions();
},
getPolicyByID: function(sysID) {
var policyTableGR = new GlideRecord("sn_agent_policy");
policyTableGR.addQuery("sys_id", sysID);
policyTableGR.query();
return policyTableGR;
},
getPolicyTableExtensions: function() {
var parentID = this.getParameter('sys_id');
var policyGR = this.getPolicyByID(parentID);
var tablesSet = {};
if (policyGR.next()) {
var tableNameToLabel = {};
//Add parent table
tablesSet[policyGR.table] = 1;
var tables = this.getTableExtensions(policyGR.table);
for (var i = 0; i < tables.length; i++)
tablesSet[tables[i]] = 1;
}
return JSON.stringify(tablesSet);
},
secureParamsFound: function() {
var policyId = this.getParameter('sysparm_sys_id');
var checkGr = new GlideRecord("sn_agent_check");
checkGr.addQuery("monitoring_policy", policyId);
checkGr.query();
var checkIds = [];
while (checkGr.next()) {
checkIds.push(checkGr.getValue("sys_id"));
}
if (checkIds.length == 0)
return false;
var secureParam = new GlideRecord("sn_agent_check_secure_param");
secureParam.addQuery("check", "IN", checkIds);
secureParam.query();
return secureParam.hasNext();
},
listContainsParentPolicy: function() {
var policyList = this.getParameter('policy_list').split(',');
var gr = new GlideRecord('sn_agent_policy');
gr.addQuery('sys_id', policyList);
gr.addQuery('relationship_state', '1'); //Parent state
gr.query();
if (gr.next())
return true;
return false;
},
pollExtensionsStatus: function() {
var extensions = this.getParameter("sysparm_extensions");
if (gs.nil(extensions)) {
var msg = gs.getMessage("Error. Empty Extensions list sent for polling");
gs.error(msg);
return msg;
}
var gr = new GlideRecord("ecc_agent_ext_context");
gr.addQuery("sys_id", "IN", extensions);
gr.query();
if (gr.getRowCount() == 0) {
msg = gs.getMessage("Error. No Extensions found with the given Sys IDs");
gs.error(msg);
return msg;
}
var retObj = {};
while (gr.next()) {
var errMsg = gr.getValue("error_message");
var extObj = {
name: gr.getValue("name"),
status: gr.getValue("status"),
err_msg: gs.nil(errMsg) ? "" : errMsg,
mid_sys_id: "",
mid_name: ""
};
extObj.mid_sys_id = gr.getValue("executing_on");
extObj.mid_name = gr.getElement("executing_on").getDisplayValue();
if (gs.nil(extObj.mid_sys_id)) { // fallback to mid_server field
extObj.mid_sys_id = gr.getValue("mid_server");
extObj.mid_name = gr.getElement("mid_server").getDisplayValue();
}
retObj[gr.getUniqueValue()] = extObj;
}
return JSON.stringify(retObj);
},
type: 'AccAjaxFCommon'
});
Sys ID
98d45e0edb6820501878853e689619dd