Name

sn_sow_em.SOWAlertRecordTabUtilsSNC

Description

No description available

Script

var SOWAlertRecordTabUtilsSNC = Class.create();
SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS = {
  OVERVIEW: 'Overview',
  SURROUNDING_LOGS: 'Surrounding logs',
  METRICS: 'Metrics',
  PLAYBOOK: 'Playbook',
  RELATED_RECORDS: 'Related records'
};

var LABELS = {
  OVERVIEW: gs.getMessage('Overview'),
  SURROUNDING_LOGS: gs.getMessage('Surrounding logs'),
  METRICS: gs.getMessage('Metrics'),
};

SOWAlertRecordTabUtilsSNC.RECORD_TABS = (function(){
  var obj = {};
  // EM stand alone (not anomaly)
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.STAND_ALONE_ALERT] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.METRICS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  // Log analytics alert standalone
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.STAND_ALONE_LOG_ANALYTICS] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.SURROUNDING_LOGS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.METRICS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };

  // EM standalone as a group member
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_MEMBER_STAND_ALONE] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.METRICS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  },
  // Log analytics alert standalone as a group member member
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_MEMBER_LOG_ANALYTICS_STAND_ALONE] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.SURROUNDING_LOGS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.METRICS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  // Read-only (member of component based)
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_MEMBER_READ_ONLY] = {
  	tabs: []
  };
  // Component-based as a group member
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_MEMBER_COMPONENT_BASED] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.SURROUNDING_LOGS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };

  // Rule based/manual– primary
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_RULE_BASED] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.METRICS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_MANUAL] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.METRICS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  // Automated  - Group
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_AUTOMATED] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  // Tag Cluster  - Group
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_TAG_CLUSTER] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  // CMDB  - Group
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_CMDB] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  // Log analytics group
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_LOG_ANALYTICS] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.SURROUNDING_LOGS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  },
  // Component-based
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_COMPONENT_BASED] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.SURROUNDING_LOGS, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  // Text based group
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.GROUP_TEXT_BASED] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.PLAYBOOK, SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  // None of the above
  obj[SOWAlertCommonUtilsSNC.ALERT_TYPE_KEY.NONE] = {
  	tabs: [SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.RELATED_RECORDS]
  };
  return obj;
})();

SOWAlertRecordTabUtilsSNC.prototype = {
  PLUGIN_LOG_ANALYTICS: 'com.glideapp.itom.occultus',
  APP_ITOM_MONITORING: 'sn_itmon',

  initialize: function() {
  },

  getOverviewTabRoute: function() {
  	return {
  		"route": "alert-overview",
  		"fields": {
  			"show": true
  		},
  		"label": LABELS.OVERVIEW,
  		"options": {}
  	};
  },

  getMetricsTabRoute: function() {
  	if (!GlidePluginManager.isActive(this.APP_ITOM_MONITORING))
  		return null;

  	return {
  		"route": "metrics",
  		"fields": {
  			"show": true
  		},
  		"label": LABELS.METRICS,
  		"options": {}
  	};
  },

  getSurroundingLogsTabRoute: function() {
  	if (!GlidePluginManager.isActive(this.PLUGIN_LOG_ANALYTICS))
  		return null;

  	return {
  		"route": "surrounding-logs",
           "fields": {
                   "show": true
           },
  		"label": LABELS.SURROUNDING_LOGS,
  		"options": {}
  	};
  },

  getAlertRecordTabsToShow: function(alertGr) {
  	var util = new sn_sow_em.SOWAlertCommonUtils();
  	var alertType = util.getAlertType(alertGr);
  	var tabsToShow = [];
  	if (alertType) {
  		tabsToShow = SOWAlertRecordTabUtilsSNC.RECORD_TABS[alertType].tabs;

  		// Additional check on cmdb_ci for Metrics tab
  		var alertCi = alertGr.cmdb_ci + '';
  		if (alertCi === '') {
  			// Remove Metrics tab if present
  			tabsToShow = tabsToShow.filter(function(tab){
  				return tab !== SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.METRICS;
  			});
  		}
  	}
  	return tabsToShow;
  },

  getAlertRecordTabRoutes: function(alertGr) {
  	var tabs = this.getAlertRecordTabsToShow(alertGr);
  	var tabRoutes = [], route, tab;

  	for (var i = 0; i < tabs.length; i++) {
  		tab = tabs[i];
  		route = null;
  		switch(tab) {
  			case SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.OVERVIEW:
  				route = this.getOverviewTabRoute();
  				break;

  			case SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.SURROUNDING_LOGS:
  				route = this.getSurroundingLogsTabRoute();
  				break;

  			case SOWAlertRecordTabUtilsSNC.RECORD_TAB_KEYS.METRICS:
  				route = this.getMetricsTabRoute();
  				break;

  			default:
  				// nothing
  		}
  		if (route)
  			tabRoutes.push(route);
  	}
  	return tabRoutes;
  },

  type: 'SOWAlertRecordTabUtilsSNC'
};

Sys ID

6a414dfa0b1201105f02818393673ae7

Offical Documentation

Official Docs: