InitController.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # @Author : Rocky
  2. # @File : InitController.py
  3. # @Time : 2023/4/11 17:26
  4. import ssl
  5. from django.http import HttpResponse
  6. from django.views import View
  7. from Model.models import Device_Info, SceneLog
  8. from Object.RedisObject import RedisObject
  9. from Object.ResponseObject import ResponseObject
  10. import redis
  11. class InitView(View):
  12. def get(self, request, *args, **kwargs):
  13. request.encoding = 'utf-8'
  14. operation = kwargs.get('operation')
  15. return self.validation(request.GET, operation)
  16. def post(self, request, *args, **kwargs):
  17. request.encoding = 'utf-8'
  18. operation = kwargs.get('operation')
  19. return self.validation(request.POST, operation)
  20. def validation(self, request_dict, operation):
  21. if operation == 'health-check': # 负载均衡器健康检测接口
  22. return self.health_check(request_dict)
  23. elif operation == 'oci_redis_test':
  24. return self.oci_redis_test(request_dict)
  25. @staticmethod
  26. def health_check(request_dict):
  27. try:
  28. redis_obj = RedisObject()
  29. redis_obj.set_data('health_check', 1)
  30. response = ResponseObject()
  31. Device_Info.objects.filter().values('id').first()
  32. SceneLog.objects.filter().values('id').first()
  33. return response.json(0)
  34. except Exception as e:
  35. return HttpResponse(repr(e), status=500)
  36. @staticmethod
  37. def oci_redis_test(request_dict):
  38. try:
  39. key = request_dict.get('key', None)
  40. value = request_dict.get('value', None)
  41. response = ResponseObject()
  42. redis_host = 'amaaaaaayszequiamxr7cdpparig3ptmytvde5vvnz6n7gceo4232sbhhlsa-p.redis.us-phoenix-1.oci.oraclecloud.com'
  43. # 创建Redis连接
  44. pool = redis.ConnectionPool(host=redis_host, ssl=True, ssl_cert_reqs=None)
  45. redis_client = redis.Redis(connection_pool=pool)
  46. # redis_client = redis.StrictRedis(
  47. # host=redis_host,
  48. # ssl=True,
  49. # ssl_cert_reqs=None
  50. # )
  51. redis_client.set(key, value)
  52. redis_value = redis_client.get(key)
  53. res = {
  54. 'redis_value': redis_value
  55. }
  56. return response.json(0, res)
  57. except Exception as e:
  58. return HttpResponse(repr(e), status=500)