You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.9 KiB
49 lines
1.9 KiB
# coding=utf-8
|
|
"""
|
|
@Author: fu-zhe
|
|
@FileName: dashboard_views.py
|
|
@DateTime: 2024/5/20 17:34
|
|
@Description:
|
|
"""
|
|
|
|
import json,os
|
|
import traceback,time
|
|
|
|
from rest_framework import viewsets
|
|
from rest_framework.decorators import list_route, detail_route
|
|
from uebaMetricsAnalysis.utils.ext_logging import logger
|
|
from uebaMetricsAnalysis.lib.result import Result
|
|
from uebaMetricsAnalysis.utils import config
|
|
from uebaMetricsAnalysis.utils.dashboard_data_pg import entry
|
|
class DashboardViewSets(viewsets.GenericViewSet):
|
|
@list_route(methods=['GET'])
|
|
def get_summary_data_list(self,request):
|
|
try:
|
|
data_type = request.GET.get('type')
|
|
startTime =request.GET.get('startDate')
|
|
endTime = request.GET.get('endDate')
|
|
#1:ip,2:账号,3:接口,4:菜单
|
|
logger.info("获取分析结构数据:"+data_type+";" + startTime +";"+ endTime)
|
|
return Result.ok(entry(data_type,startTime,endTime))
|
|
except Exception, e:
|
|
logger.error(traceback.format_exc())
|
|
return Result.failed("查询失败", str(e))
|
|
|
|
@list_route(methods=['POST'])
|
|
def write_audit_log(self, request):
|
|
try:
|
|
body = json.loads(request.body)
|
|
action =body.get("action")
|
|
username = request.session.get('username',"unknown user")
|
|
params = body.get("params")
|
|
logger.info("Audit_Log:"+username+","+action +",params:"+json.dumps(params))
|
|
except Exception, e:
|
|
logger.info("Audit_Log:{}, err: {}, traceback: {}".format(username, str(e), traceback.format_exc()))
|
|
return Result.ok("ok")
|
|
|
|
@list_route(methods=['GET'])
|
|
def get_default_rule(self,request):
|
|
conf_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'conf')
|
|
jsonfile_path = os.path.join(conf_path, 'defaultRule.json')
|
|
rule_data = config.read_json_config(jsonfile_path)
|
|
return Result.ok(rule_data) |