Name

global.CredentialTestParser

Description

Parses the ecc queue response for a credential test.

Script

var CredentialTestParser = Class.create();

CredentialTestParser.prototype = {
  initialize: function(payload) {
  	if (JSUtil.nil(payload))
  		return;

  	this.payload = payload;		
  	this._parseResult();
  },

  getResult: function() {
  	return this.result;
  },

  matchError: function(error) {
  	if (error.substring(0, 17) == "CommandPipeline: ")
  		error = error.substring(17);

  	var genericAuthFailure = /(.*no valid credential found.*)/i;
  	var awsAuthFailure = /(.*invalid username\/password combo.*)/i;
  	var tcpPortFailure = /(.*failed to connect tcp.*)/i;
  	var timeoutFailure = /(.*timed out while waiting.*)/i;
  	var credTypeFailure = /(.*credential type: .* is not supported.*)/i;
  	var invalidTarget = /(.*UnknownException.*|.*Catastrophic failure.*)/i;

  	var msg = "";

  	if (error.match(genericAuthFailure) || error.match(awsAuthFailure))
  		msg = "Authentication failed";

  	else if (error.match(tcpPortFailure))
  		msg = "Could not connect to specified port";

  	else if (error.match(timeoutFailure))
  		msg = "Timed out trying to reach target";

  	else if (error.match(credTypeFailure))
  		msg = "This credential type cannot be tested";

  	else if (error.match(invalidTarget))
  		msg = "Invalid target specified";

  	else
  		msg = error;

  	return "error:" + msg;
  },

  _parseResult: function() {
  	var XMLUtil = GlideXMLUtil;
  	var g_doc = XMLUtil.parse(this.payload);

  	var parent = g_doc.getDocumentElement();

  	// If no error attribute, it was successful
  	var error = XMLUtil.getAttribute(parent, "error");

  	this.result = JSUtil.nil(error) ? "success" : this.matchError(error);
  },

  type: 'CredentialTestParser'
};

Sys ID

468ccc43c3230200d8d4bea192d3aede

Offical Documentation

Official Docs: