示例#1
0
文件: views.py 项目: atompi/Ops
def get_system_log(request):
    mongo = MongoOps(settings.MONGODB_HOST, settings.MONGODB_PORT,
                     settings.RECORD_DB, settings.RECORD_COLL,
                     settings.MONGODB_USER, settings.MONGODB_PASS)
    start_time = request.GET.get('startTime')
    end_time = request.GET.get('endTime')
    try:
        if start_time and end_time:
            start_time = datetime.datetime.strptime(start_time, '%Y-%m-%d')
            end_time = datetime.datetime.strptime(
                end_time, '%Y-%m-%d') + datetime.timedelta(1)
            return_data = mongo.find(
                {"datetime": {
                    "$gt": start_time,
                    "$lt": end_time
                }})
        else:
            return_data = mongo.find()
        return JsonResponse({
            'code': 200,
            'data': return_data,
            'msg': '获取成功'
        },
                            encoder=JSONEncoder)
    except Exception as e:
        return JsonResponse({
            'code': 500,
            'data': None,
            'msg': '获取失败,{}'.format(e)
        })
示例#2
0
    def process_response(self, request, response):
        if request.method == 'GET' and request.path not in pass_paths and response.status_code == 200:
            user_infos = []
            users = UserProfile.objects.all()
            for user in users:
                user_info = {
                    'user_id': user.id,
                    'username': user.username,
                    'user_image': str(user.image),
                    'login_status': user.login_status
                }
                user_infos.append(user_info)
            request.session['user_infos'] = user_infos

        elif request.method != 'GET' and all([key not in request.path for key in pass_keys]):
            if isinstance(self.body, dict):
                data = self.body
            elif isinstance(self.body, bytes) and len(self.body) != 0:
                data = json.loads(self.body.decode('utf-8'))
            else:
                data = None

            if 'api' in request.path:
                code = response.status_code
            elif 'code' in json.loads(response.__dict__.get('_container')[0].decode('utf-8')):
                code = json.loads(response.__dict__.get('_container')[0].decode('utf-8')).get('code')
            else:
                code = None

            mongo = MongoOps(settings.MONGODB_HOST, settings.MONGODB_PORT, settings.RECORD_DB, settings.RECORD_COLL)
            request_data = {'username': request.user.username, 'path': request.path, 'method': request.method,
                            'request_data': data, 'code': code,
                            'ip': request.META['REMOTE_ADDR'], 'datetime': datetime.datetime.now()}
            mongo.insert_one(request_data)
        return response
示例#3
0
文件: tasks.py 项目: shean023/Ops-1
def remove_system_log(days=90):
    deadline = datetime.datetime.now() - datetime.timedelta(days)

    m = MongoOps(settings.MONGODB_HOST, settings.MONGODB_PORT, settings.RECORD_DB, settings.RECORD_COLL,
                 settings.MONGODB_USER, settings.MONGODB_PASS)
    rs, _ = m.find({"datetime": {"$lt": deadline}})
    m.delete({"datetime": {"$lt": deadline}}, del_all=True)
示例#4
0
def get_system_log(request):
    mongo = MongoOps(settings.MONGODB_HOST, settings.MONGODB_PORT,
                     settings.RECORD_DB, settings.RECORD_COLL,
                     settings.MONGODB_USER, settings.MONGODB_PASS)
    draw = int(request.GET.get('draw'))  # 记录操作次數
    start = int(request.GET.get('start'))  # 起始位置
    length = int(request.GET.get('length'))  # 每页长度
    start_time = request.GET.get('startTime')
    end_time = request.GET.get('endTime')
    log_user = request.GET.get('logUser')
    log_path = request.GET.get('logPath')

    # search_key = request.GET.get('search[value]')  # 搜索关键字
    # order_column = request.GET.get('order[0][column]')  # 排序字段索引
    # order_column = request.GET.get('order[0][dir]')  # 排序规则:ase/desc

    search_options = {}
    try:
        if log_user:
            search_options.update({"username": {"$regex": f".*{log_user}.*"}})

        if log_path:
            search_options.update({"path": {"$regex": f".*{log_path}.*"}})

        if start_time and end_time:
            start_time = datetime.datetime.strptime(start_time, '%Y-%m-%d')
            end_time = datetime.datetime.strptime(
                end_time, '%Y-%m-%d') + datetime.timedelta(1)
            search_options.update(
                {"datetime": {
                    "$gt": start_time,
                    "$lt": end_time
                }})

        searched_data, _ = mongo.find(search_options,
                                      start,
                                      length,
                                      sort_key='datetime',
                                      sort_method=-1)
        _, count = mongo.find(search_options)
        dic = {
            'draw': draw,
            'recordsFiltered': count,
            'recordsTotal': count,
            'data': searched_data
        }
        return HttpResponse(json.dumps(dic, cls=JSONEncoder),
                            content_type='application/json')
    except Exception as e:
        return JsonResponse({
            'code': 500,
            'data': None,
            'msg': '获取失败:{}'.format(e)
        })
示例#5
0
 def __init__(self, *args, **kwargs):
     super(RecordMiddleware, self).__init__(*args, **kwargs)
     self.body = None
     self.mongo = MongoOps(settings.MONGODB_HOST, settings.MONGODB_PORT, settings.RECORD_DB, settings.RECORD_COLL)