def upload_file(): io_utils = IOUtils() http = HttpResponse() header_key = 'File-Path' try: file_content = request.get_data() file_path = request.headers.get(f"{header_key}") if not file_path: return Response(json.dumps(http.failure(ApiCodeConstants.HTTP_HEADER_NOT_PROVIDED, ErrorCodes.HTTP_CODE.get( ApiCodeConstants.HTTP_HEADER_NOT_PROVIDED) % header_key, ErrorCodes.HTTP_CODE.get( ApiCodeConstants.HTTP_HEADER_NOT_PROVIDED) % header_key, str(traceback.format_exc()))), 404, mimetype="application/json") if not file_content: return Response(json.dumps(http.failure(ApiCodeConstants.EMPTY_REQUEST_BODY_PROVIDED, ErrorCodes.HTTP_CODE.get( ApiCodeConstants.EMPTY_REQUEST_BODY_PROVIDED), ErrorCodes.HTTP_CODE.get( ApiCodeConstants.EMPTY_REQUEST_BODY_PROVIDED), str(traceback.format_exc()))), 404, mimetype="application/json") except Exception as e: exception = "Exception({0})".format(e.__str__()) return Response(json.dumps(http.failure(ApiCodeConstants.UPLOAD_TEST_CONFIG_FAILURE, ErrorCodes.HTTP_CODE.get(ApiCodeConstants.UPLOAD_TEST_CONFIG_FAILURE), exception, str(traceback.format_exc()))), 404, mimetype="application/json") try: io_utils.write_to_file_binary(file_path, file_content) except Exception as e: exception = "Exception({0})".format(e.__str__()) return Response(json.dumps(http.failure(ApiCodeConstants.UPLOAD_TEST_CONFIG_FAILURE, ErrorCodes.HTTP_CODE.get(ApiCodeConstants.UPLOAD_TEST_CONFIG_FAILURE), exception, str(traceback.format_exc()))), 404, mimetype="application/json") return Response( json.dumps(http.success(ApiCodeConstants.SUCCESS, ErrorCodes.HTTP_CODE.get(ApiCodeConstants.SUCCESS), ErrorCodes.HTTP_CODE.get(ApiCodeConstants.SUCCESS))), 200, mimetype="application/json")
def receive_prepared_deployment_and_unpack(self): token = token_hex(8) io_utils = IOUtils() deployment_id = request.headers.get("Deployment-Id").lower( ) if request.headers.get("Deployment-Id") else token deploy_dir = f"{EnvInit.init.get(EnvConstants.DEPLOY_PATH)}/{deployment_id}" file_path = f"{deploy_dir}/archive.zip" file_content = request.get_data() # send here the complete env. The deployment template can be overridden at deploy start if not file_content: raise ApiExceptionDocker( ApiCode.EMPTY_REQUEST_BODY_PROVIDED.value, ErrorMessage.HTTP_CODE.get( ApiCode.EMPTY_REQUEST_BODY_PROVIDED.value), ErrorMessage.HTTP_CODE.get( ApiCode.EMPTY_REQUEST_BODY_PROVIDED.value)) try: io_utils.create_dir(deploy_dir) io_utils.write_to_file_binary(file_path, file_content) except Exception as e: raise ApiExceptionDocker( ApiCode.UPLOAD_FILE_FAILURE.value, ErrorMessage.HTTP_CODE.get(ApiCode.UPLOAD_FILE_FAILURE.value), e) try: shutil.unpack_archive(file_path, deploy_dir) io_utils.remove_file(file_path) except Exception as e: raise ApiExceptionDocker( ApiCode.FOLDER_UNZIP_FAILURE.value, ErrorMessage.HTTP_CODE.get(ApiCode.FOLDER_UNZIP_FAILURE.value), e) return Response(json.dumps(HttpResponse().response( ApiCode.SUCCESS.value, ErrorMessage.HTTP_CODE.get(ApiCode.SUCCESS.value), deployment_id)), 200, mimetype="application/json")
def upload_file(self): http = HttpResponse() io_utils = IOUtils() header_key = 'File-Path' file_content = request.get_data() file_path = request.headers.get(f"{header_key}") if not file_path: raise ApiExceptionDocker( ApiCode.HTTP_HEADER_NOT_PROVIDED.value, ErrorMessage.HTTP_CODE.get( ApiCode.HTTP_HEADER_NOT_PROVIDED.value) % header_key, ErrorMessage.HTTP_CODE.get( ApiCode.HTTP_HEADER_NOT_PROVIDED.value) % header_key) if not file_content: raise ApiExceptionDocker( ApiCode.EMPTY_REQUEST_BODY_PROVIDED.value, ErrorMessage.HTTP_CODE.get( ApiCode.EMPTY_REQUEST_BODY_PROVIDED.value), ErrorMessage.HTTP_CODE.get( ApiCode.EMPTY_REQUEST_BODY_PROVIDED.value)) try: io_utils.write_to_file_binary(file_path, file_content) except Exception as e: raise ApiExceptionDocker( ApiCode.UPLOAD_FILE_FAILURE.value, ErrorMessage.HTTP_CODE.get(ApiCode.UPLOAD_FILE_FAILURE.value), e) return Response(json.dumps( http.response(ApiCode.SUCCESS.value, ErrorMessage.HTTP_CODE.get(ApiCode.SUCCESS.value), ErrorMessage.HTTP_CODE.get(ApiCode.SUCCESS.value))), 200, mimetype="application/json")