# -*- coding: utf-8 -*-
# 查询触发器
# 作者: 陈磊
# 时间: 2019-11-19
from WorkUtils.UtilsRequest import UtilsRequest
from WorkUtils.UtilsLog import UtilsLog
from WorkApi.ApiBase import ApiBase, GetBase


class TriggerGet(GetBase):
    def __init__(self, _host):
        """
        :param _host: 域名
        :return:
        """
        super().__init__()
        self.log = UtilsLog()
        self.log.info("调用查询触发器")
        self.log.info(self.__class__)

        self._host = _host
        self._headers = {}
        self._path = "/trigger/get"
        self._url = self._host + self._path
        self._params = {}
        self._json = {}
        self._data = {}
        self.response = ""

        self.local_json = {}
        self.triggerids = None
        self.groupids = None
        self.templateids = None
        self.hostids = None
        self.itemids = None
        self.applicationids = None
        self.functions = None
        self.group = None
        self.host = None
        self.inherited = None
        self.templated = None
        self.dependent = None
        self.monitored = None
        self.active = None
        self.maintenance = None
        self.withUnacknowledgedEvents = None
        self.withAcknowledgedEvents = None
        self.withLastEventUnacknowledged = None
        self.skipDependent = None
        self.lastChangeSince = None
        self.lastChangeTill = None
        self.only_true = None
        self.min_severity = None
        self.evaltype = None
        self.tags = None
        self.expandComment = None
        self.expandDescription = None
        self.expandExpression = None
        self.selectGroups = None
        self.selectHosts = None
        self.selectItems = None
        self.selectFunctions = None
        self.selectDependencies = None
        self.selectDiscoveryRule = None
        self.selectLastEvent = None
        self.selectTags = None
        self.selectTriggerDiscovery = None

        self.api = UtilsRequest()

    def get_response(self):
        self.get_base_json()

        base = ApiBase()
        base.dict_add_key(_key="triggerids", value=self.triggerids)
        base.dict_add_key(_key="groupids", value=self.groupids)
        base.dict_add_key(_key="templateids", value=self.templateids)
        base.dict_add_key(_key="hostids", value=self.hostids)
        base.dict_add_key(_key="itemids", value=self.itemids)
        base.dict_add_key(_key="applicationids", value=self.applicationids)
        base.dict_add_key(_key="functions", value=self.functions)
        base.dict_add_key(_key="group", value=self.group)
        base.dict_add_key(_key="host", value=self.host)
        base.dict_add_key(_key="inherited", value=self.inherited)
        base.dict_add_key(_key="templated", value=self.templated)
        base.dict_add_key(_key="dependent", value=self.dependent)
        base.dict_add_key(_key="monitored", value=self.monitored)
        base.dict_add_key(_key="active", value=self.active)
        base.dict_add_key(_key="maintenance", value=self.maintenance)
        base.dict_add_key(_key="withUnacknowledgedEvents", value=self.withUnacknowledgedEvents)
        base.dict_add_key(_key="withAcknowledgedEvents", value=self.withAcknowledgedEvents)
        base.dict_add_key(_key="withLastEventUnacknowledged", value=self.withLastEventUnacknowledged)
        base.dict_add_key(_key="skipDependent", value=self.skipDependent)
        base.dict_add_key(_key="lastChangeSince", value=self.lastChangeSince)
        base.dict_add_key(_key="lastChangeTill", value=self.lastChangeTill)
        base.dict_add_key(_key="only_true", value=self.only_true)
        base.dict_add_key(_key="min_severity", value=self.min_severity)
        base.dict_add_key(_key="evaltype", value=self.evaltype)
        base.dict_add_key(_key="tags", value=self.tags)
        base.dict_add_key(_key="expandComment", value=self.expandComment)
        base.dict_add_key(_key="expandDescription", value=self.expandDescription)
        base.dict_add_key(_key="expandExpression", value=self.expandExpression)
        base.dict_add_key(_key="selectGroups", value=self.selectGroups)
        base.dict_add_key(_key="selectHosts", value=self.selectHosts)
        base.dict_add_key(_key="selectItems", value=self.selectItems)
        base.dict_add_key(_key="selectFunctions", value=self.selectFunctions)
        base.dict_add_key(_key="selectDependencies", value=self.selectDependencies)
        base.dict_add_key(_key="selectDiscoveryRule", value=self.selectDiscoveryRule)
        base.dict_add_key(_key="selectLastEvent", value=self.selectLastEvent)
        base.dict_add_key(_key="selectTags", value=self.selectTags)
        base.dict_add_key(_key="selectTriggerDiscovery", value=self.selectTriggerDiscovery)

        self.local_json = base._json

        # self.log.debug(self.local_json)
        # self.log.debug(self.base_json)

        # 当前接口支持的参数与公共参数合并
        add = ApiBase()
        add.dict_add_dict(_dict_1=self.local_json, _dict_2=self.base_json)
        self._json = add._json
        self.response = self.api.post(url=self._url, json=self._json)
