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

Offical Documentation

Official Docs: