def export_data_to_file(request): """ ?page=1&group_id=0&host_id=0&host_status=&ip_address=&issue_level=&issue_status=&ack=&start_time=&end_time= :param request: :return: """ ret = response_format() ret['data'] = dict() try: page = request.GET.get('page', 1) per_page = request.GET.get('per_page', 50) group_id = request.GET.get('group_id', None) host_id = request.GET.get('host_id', None) host_status = request.GET.get('host_status', None) ip_address = request.GET.get('ip_address', None) issue_level = request.GET.get('issue_level', None) issue_status = request.GET.get('issue_status', None) ack = request.GET.get('ack', None) start_time = request.GET.get('start_time', None) end_time = request.GET.get('end_time', None) handler = report.ExportFile( group_id=group_id, host_id=host_id, host_status=host_status, ip_address=ip_address, issue_level=issue_level, issue_status=issue_status, ack=ack, start_time=start_time, end_time=end_time ) data = Paginator(handler.object_list(), per_page=int(per_page)) data = data.page(page) ret['data'] = data.object_list ret['has_next'] = data.has_next() except ValueError as e: logger.error("%s" % e, request) pass if len(ret["data"]) is 0: # 只有空列表,前端才能识别是空对象,空字典,前端也会认为对象不为空 ret['data'] = [] ret["info"] = "没有数据" ret["category"] = "warning" return HttpResponse(json.dumps(ret))
def config_host_edit(request, host_id): """ :param request: :return: """ ret = response_format() ret['data'] = dict() try: page = request.GET.get('page', 1) per_page = request.GET.get('per_page', 50) filter_host = request.GET.get('filter_host', None) filter_dns = request.GET.get('filter_dns', None) filter_ip = request.GET.get('filter_ip', None) filter_port = request.GET.get('filter_port', None) filter_rst = request.GET.get('filter_rst', None) filter_set = request.GET.get('filter_set', None) handler = monitor_hosts.ConfigHost( filter_host=filter_host, filter_dns=filter_dns, filter_ip=filter_ip, filter_port=filter_port, filter_rst=filter_rst, filter_set=filter_set ) data = Paginator(handler.object_list(), per_page=int(per_page)) data = data.page(page) ret['data'] = data.object_list ret['has_next'] = data.has_next() except ValueError as e: logger.error("%s" % e, request) pass if len(ret["data"]) is 0: # 只有空列表,前端才能识别是空对象,空字典,前端也会认为对象不为空 ret['data'] = [] ret["info"] = "没有数据" ret["category"] = "warning" return HttpResponse(json.dumps(ret))
def get_event_trigger(request): """ 告警页面API接口 ?page=3&group_id=49&host_id=0&ip_address=&issue_level=&ack=&trigger_end_time=&start_time=&end_time= ?page=1&group_id=4&get_hosts=true ?page=1&group_id=0&get_hosts=true&get_groups=true 请求组 {"get_groups": true}获取所有的组 请求主机 {"get_hosts": true, group_id: id} 当ID为0时请求所有启用的主机 搜索过滤 :param request: GET方式请求 :return: """ ret = response_format() ret['data'] = dict() try: get_groups = request.GET.get('get_groups') get_hosts = request.GET.get('get_hosts') get_hosts_groups = request.GET.get('get_hosts_groups') page = request.GET.get('page', 1) per_records = request.GET.get('per_records', 50) group_id = request.GET.get('group_id', None) host_id = request.GET.get('host_id', None) ip_address = request.GET.get('ip_address', None) issue_level = request.GET.get('issue_level', None) ack = request.GET.get('ack', None) start_time = request.GET.get('start_time', None) end_time = request.GET.get('end_time', None) trigger_end_time = request.GET.get('trigger_end_time', None) handler = monitor_hosts.SearchEventTrigger() if issue_level is not None: handler = monitor_hosts.EventTriggers( group_id=group_id, host_id=host_id, ip_address=ip_address, issue_level=issue_level, ack=ack, start_time=start_time, end_time=end_time, trigger_end_time=trigger_end_time ) data = Paginator(handler.object_list(), per_page=int(per_records)) data = data.page(page) ret['data'] = data.object_list ret['has_next'] = data.has_next() if get_groups: ret['data'].update({'get_groups': handler.get_group_info()}) if get_hosts: group_id = request.GET.get('group_id') ret['data'].update({'get_hosts': monitor_hosts.EventTriggers().get_hosts(group_id)}) if get_hosts_groups: ret['data'].update({'get_hosts_groups': handler.get_hosts_groups_rel()}) except TypeError as e: logger.error("%s" % e, request) pass except json.JSONDecodeError as e: logger.error("%s" % e, request) pass if len(ret["data"]) is 0: # 只有空列表,前端才能识别是空对象,空字典,前端也会认为对象不为空 ret['data'] = [] ret["info"] = "没有数据" ret["category"] = "warning" return HttpResponse(json.dumps(ret))