Name

sn_em_connector.ConnectorTestExecutor

Description

Event management pull connector test api.

Script

var ConnectorTestExecutor = Class.create();

// Note: this is duplicate of 'Test Connector' UI action. If you are making any logic changes here, please check if those needs to be added in UI action.
ConnectorTestExecutor.prototype = {

  ERROR: "error",

  initialize: function() {
      this.evtMgmtConnectorMediator = new global.EvtMgmtConnectorMediator();		
  },

  execute: function(connectorInstanceId) {

      var message;
  	
      // Validate if connectorInstanceId is valid
      var ciGr = new GlideRecord("em_connector_instance");
      if (!ciGr.get(connectorInstanceId)) {
          message = gs.getMessage("Cannot find a connector instance with id - {0}", [connectorInstanceId]);
          return this.generateResponse(this.ERROR, message);
      }

  	var validSCOMVersions = {
  		"2007": ' ',
  		"2012": ' ',
  		"2016": ' ',
  		"2019": ' ',
  		"2022": ' '
  	};

      // validate if version is defined for SCOM connector instance
      if (ciGr.connector_definition.name == "SCOM") {
          var connectorVal = new GlideRecord("em_connector_instance_value");
          connectorVal.addQuery("connector_instance", ciGr.sys_id);
          connectorVal.addQuery("name", "scom_version");
          connectorVal.query();
          var isDefined = 0;
          if (connectorVal.next()) {
  			if(validSCOMVersions[connectorVal.getValue("value")])
  				isDefined = 1;
          }
          if (isDefined == 0) {
              message = gs.getMessage("SCOM version is not defined or invalid");
              return this.generateResponse(this.ERROR, message);
          }
      }

      if (this.evtMgmtConnectorMediator.testPullConnector && 
  		(typeof this.evtMgmtConnectorMediator.testPullConnector == 'function')) {
  			return this.evtMgmtConnectorMediator.testPullConnector(ciGr);
  	}
      return this.generateResponse(this.ERROR, "Could not find mediator function to call pull connector test.");
      
  },

  generateResponse: function(status, message) {
      var results = {};
      results['status'] = status ? status : this.ERROR;
      results['message'] = message;
      results['output_summary'] = message;
      return results;
  },

  type: 'ConnectorTestExecutor'
};

Sys ID

6189723343579110a86b78114bb8f2f1

Offical Documentation

Official Docs: