Name

sn_itom_pde.MidFromCredentialAffinity

Description

This script will help in getting the record from Credential Affinity table associated with any given IP.

Script

var MidFromCredentialAffinity = Class.create();
MidFromCredentialAffinity.prototype = {
  initialize: function() {
  },
  
  /*
  This method will fetch records of mid agent from Credential Affinities table against provided IP address 
  */
  getMidsFromCredAffinity : function(ip,methodType){
  	var mids = {};
      var result ="";
  	var grMidCredAffnty = new GlideRecord("dscy_credentials_affinity");
  	grMidCredAffnty.addQuery("ip_address",ip);
  	grMidCredAffnty.orderByDesc('sys_updated_on');
  	grMidCredAffnty.query();
          while(grMidCredAffnty.next() && global.JSUtil.nil(result) ){
              if(this.checkMidStatus(grMidCredAffnty.agent)){
                  if(methodType == "try_all_eligible_mid")
  					mids[grMidCredAffnty.getValue('agent')] = true; 
                  else //Automatic_mid_selection
  					result = grMidCredAffnty.getValue('agent');
  			}
  		}
          if(methodType == "try_all_eligible_mid"){
  			return mids;
  		}
          else
              return result;
  },

  checkMidStatus : function(midSysId){
  	var result = true;
  	if (global.JSUtil.notNil(midSysId)) {
      result = false;
      var grEccAgent = new GlideRecord("ecc_agent");
      grEccAgent.get(midSysId);
      if (grEccAgent.status == 'Up' && grEccAgent.validated == "true")
          result = true;
  	}
  return result;
  },


  type: 'MidFromCredentialAffinity'
};

Sys ID

e440b49a475351100c807395d36d4308

Offical Documentation

Official Docs: