# By: Riasat Ullah
# This file contains all constants related to the ManageEngine OpManager integration.

from utils import constants


# OpManager variables
var_alarm_id = 'alarmid'
var_display_name = 'displayName'
var_event_type = 'eventType'
var_message = 'message'
var_string_severity = 'stringseverity'

# OpManager severity (we have set them in lower case)
sev_attention = 'attention'
sev_clear = 'clear'
sev_critical = 'critical'
sev_trouble = 'trouble'
sev_service_down = 'service down'

# OpManager event type maps
event_type_mapping = {
    '0': 'Unknown',
    '1': 'Error',
    '2': 'Warning',
    '3': 'Info'
}


def get_op_manager_urgency(severity):
    '''
    OpManager: Get the urgency of OpManager alarm mapped from severity received in the payload
    :param severity: severity received from OpManager
    :return: corresponding TaskCall urgency
    '''
    if severity is not None:
        severity = severity.lower()
        if severity == sev_attention:
            return constants.low_urgency
        elif severity == sev_trouble:
            return constants.medium_urgency

    return constants.critical_urgency


def alarm_has_cleared(severity):
    '''
    OpManager: Checks if the alarm has cleared or not.
    :param severity: severity received from OpManager
    :return: (boolean) True or False
    '''
    if severity is not None:
        severity = severity.lower()
        if severity == sev_clear:
            return True
    return False
