logs.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from flask import jsonify, request
  2. import json
  3. import requests
  4. from lxconsole import db, bcrypt
  5. from lxconsole.models import Log
  6. from flask_login import login_required
  7. from lxconsole.api.access_controls import privilege_check
  8. def record_log(control, item, message, server_id, user_id, project, status_code ):
  9. log = Log(control=control, server_id=server_id, project=project, message=message, user_id=user_id, item=item, status_code=status_code)
  10. db.session.add(log)
  11. db.session.commit()
  12. @login_required
  13. def api_logs_endpoint(endpoint):
  14. if not privilege_check(endpoint):
  15. return jsonify({'data': [], 'metadata':[], 'error': 'not authorized', 'error_code': 403})
  16. if endpoint == 'add_log':
  17. id = request.form.get('logname')
  18. control = request.form.get('control')
  19. server_id = request.form.get('server_id')
  20. project = request.form.get('project')
  21. message = request.form.get('message')
  22. user_id = request.form.get('user_id')
  23. item = request.form.get('item')
  24. status_code = request.form.get('status_code')
  25. log = Log(control=control, server_id=server_id, project=project, message=message, user_id=user_id, item=item, status_code=status_code)
  26. db.session.add(log)
  27. db.session.commit()
  28. json_object = json.loads('{"status": 200}')
  29. return jsonify(json_object)
  30. if endpoint == 'get_log':
  31. id = request.args.get('id')
  32. log = Log.query.filter_by(id=id).first()
  33. data = {}
  34. data.update({'id': log.id})
  35. data.update({'control': log.control})
  36. data.update({'server_id': log.server_id})
  37. data.update({'project': log.project})
  38. data.update({'message': log.message})
  39. data.update({'user_id': log.user_id})
  40. data.update({'item': log.item})
  41. data.update({'status_code': log.status_code})
  42. data.update({'created_at': log.created_at})
  43. return jsonify({"metadata": data})
  44. if endpoint == 'delete_log':
  45. id = request.form.get('id')
  46. log = Log.query.filter_by(id=id).first()
  47. db.session.delete(log)
  48. db.session.commit()
  49. json_object = json.loads('{"status": 200}')
  50. return jsonify(json_object)
  51. if endpoint == 'list_logs':
  52. logs = Log.query.all()
  53. return jsonify({"data": [dict(id=log.id, control=log.control, server_id=log.server_id, project=log.project, message=log.message, user_id=log.user_id, item=log.item, status_code=log.status_code, created_at=log.created_at) for log in logs]})
  54. if endpoint == 'update_log':
  55. pass