コード例 #1
0
ファイル: views.py プロジェクト: tonglinge/MyProjects
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))
コード例 #2
0
ファイル: views.py プロジェクト: tonglinge/MyProjects
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))
コード例 #3
0
ファイル: views.py プロジェクト: tonglinge/MyProjects
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))