IotCoreController.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import boto3
  4. from django.views import View
  5. from Ansjer.config import AWS_IOT_SES_ACCESS_REGION, AWS_IOT_SES_ACCESS_ID, \
  6. AWS_IOT_SES_ACCESS_SECRET
  7. from Object.ResponseObject import ResponseObject
  8. class IotCoreView(View):
  9. def get(self, request, *args, **kwargs):
  10. request.encoding = 'utf-8'
  11. request_dict = request.GET
  12. operation = kwargs.get('operation', None)
  13. return self.validate(operation, request_dict)
  14. def post(self, request, *args, **kwargs):
  15. request.encoding = 'utf-8'
  16. request_dict = request.POST
  17. operation = kwargs.get('operation', None)
  18. return self.validate(operation, request_dict)
  19. def validate(self, operation, request_dict):
  20. response = ResponseObject()
  21. if operation == 'createProvisioningClaim':
  22. return self.create_provisioning_claim(response)
  23. else:
  24. return response.json(404)
  25. def create_provisioning_claim(self, response):
  26. client = boto3.client('iot', region_name=AWS_IOT_SES_ACCESS_REGION, aws_access_key_id=AWS_IOT_SES_ACCESS_ID,
  27. aws_secret_access_key=AWS_IOT_SES_ACCESS_SECRET)
  28. result = client.create_provisioning_claim(templateName='Ansjer_Iot_Queue')
  29. res = {
  30. 'certificateId': result['certificateId'],
  31. 'certificatePem': result['certificatePem'],
  32. 'publicKey': result['keyPair']['PublicKey'],
  33. 'privateKey': result['keyPair']['PrivateKey'],
  34. 'endpoint': 'a2rqy12o004ad8-ats.iot.us-east-1.amazonaws.com'
  35. }
  36. return response.json(0, {'res': res})