def get(self, request, *args, **kwargs): """ Provides the CA certificate """ verify_secure(request) form = kwargs.get('form', 'pem').lower() # Get MD5 value from request if available req_md5 = None if 'HTTP_X_MD5' in request.META: req_md5 = request.META['HTTP_X_MD5'] # Calculate MD5 value file_md5 = None try: file_md5 = openssl.get_ca_crt_md5(settings.APP_DATA_CERT_DIR, form) except Exception as e: raise exceptions.NotFound(e) # If MD5 value is provided in request => Verify that update is required if req_md5 and req_md5 == file_md5: return Response(status=rest_status.HTTP_304_NOT_MODIFIED) # Deliver update stream = None try: stream = openssl.get_ca_crt_stream(settings.APP_DATA_CERT_DIR, form) except Exception as e: raise exceptions.NotFound(e) if (not stream) or (not file_md5): raise exceptions.NotFound() response = http.FileResponse(stream) response['Content-Type'] = 'application/octet-stream' response['Content-Length'] = os.fstat(stream.fileno()).st_size response['Content-Disposition'] = "attachment; filename={}.{}".format( 'ca.crt', form) response['x-MD5'] = file_md5 return response
def get(self, request): """ Provides the firmware if the update is required """ verify_secure(request) if not request.user.profile.is_device: raise rest_exceptions.NotAcceptable('Only for devices') assignment = None try: assignment = request.user.firmware except local_models.FirmwareAssignmentModel.DoesNotExist: raise rest_exceptions.NotFound({'firmware': 'Not available'}) if assignment.value.hardware == local_models.FirmwareModel.HW_ESP8266_4MB: return esp8266.update(request, assignment) else: raise rest_exceptions.NotAcceptable( 'The [{:s}] is not supported'.format( assignment.value.hardware))
def patch(self, request, *args, **kwargs): """ Partially updating the specific firmware """ verify_secure(request) return super().patch(request, args, kwargs)
def put(self, request, *args, **kwargs): """ Updating the specific firmware """ verify_secure(request) return super().put(request, args, kwargs)
def get(self, request, *args, **kwargs): """ Retrieves details about the specific firmware """ verify_secure(request) return super().get(request, args, kwargs)
def post(self, request, *args, **kwargs): """ Creates the new firmware """ verify_secure(request) return super().post(request, args, kwargs)
def get(self, request, *args, **kwargs): """ Retrieves the list of firmwares """ verify_secure(request) return super().get(request, args, kwargs)
def delete(self, request, *args, **kwargs): """ Deletes the specific firmware assignment """ verify_secure(request) return super().delete(request, args, kwargs)