def post(self, key): """ Create a new value for a key. .. :quickref: Values; Create new value. :<json dict parameter: Dictionary with 'value'. :status 201: Created. :status 400: Cannot decode json parameter list. :status 400: Invalid Value For Key. :status 401: Invalid Auth Token. :status 404: Key Not Found. :status 409: Value already exists. """ parameters = json_parameters() value = param_get(parameters, 'value') try: add_value(key=key, value=value, issuer=request.environ.get('issuer'), vo=request.environ.get('vo')) except Duplicate as error: return generate_http_error_flask(409, error) except InvalidValueForKey as error: return generate_http_error_flask(400, error) except KeyNotFound as error: return generate_http_error_flask(404, error) return 'Created', 201
def POST(self, key): """ Create a new value for a key. HTTP Success: 201 Created HTTP Error: 401 Unauthorized 404 Not Found 409 Conflict 500 Internal Error :param Rucio-Auth-Account: Account identifier. :param Rucio-Auth-Token: as an 32 character hex string. :params Rucio-Account: account belonging to the new scope. """ json_data = data() try: params = loads(json_data) value = params['value'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: add_value(key=key, value=value, issuer=ctx.env.get('issuer')) except Duplicate, e: raise generate_http_error(409, 'Duplicate', e[0][0])
def post(self, key): """ Create a new value for a key. .. :quickref: Values; Create new value. :<json dict parameter: Dictionary with 'value'. :status 201: Created. :status 400: Cannot decode json parameter list. :status 400: Invalid Value For Key. :status 401: Invalid Auth Token. :status 404: Key Not Found. :status 409: Value already exists. :status 500: Internal Error. """ json_data = request.data try: params = loads(json_data) value = params['value'] except ValueError: return generate_http_error_flask( 400, 'ValueError', 'Cannot decode json parameter list') try: add_value(key=key, value=value, issuer=request.environ.get('issuer')) except Duplicate, e: return generate_http_error_flask(409, 'Duplicate', e[0][0])
def post(self, key): """ --- summary: Create value for key description: Creates a new value for a key. tags: - Meta parameters: - name: key in: path description: The reference key. schema: type: string style: simple requestBody: content: application/json: schema: type: required: - value properties: value: description: The new value associated with a key. type: string responses: 201: description: OK content: application/json: schema: type: string enum: ['Created'] 400: description: Cannot decode json parameter list / Invalid value for key. 401: description: Invalid Auth Token 404: description: Key not found 409: description: Value already exists. """ parameters = json_parameters() value = param_get(parameters, 'value') try: add_value(key=key, value=value, issuer=request.environ.get('issuer'), vo=request.environ.get('vo')) except Duplicate as error: return generate_http_error_flask(409, error) except InvalidValueForKey as error: return generate_http_error_flask(400, error) except KeyNotFound as error: return generate_http_error_flask(404, error) return 'Created', 201
def POST(self, key): """ Create a new value for a key. HTTP Success: 201 Created HTTP Error: 401 Unauthorized 404 Not Found 409 Conflict 500 Internal Error :param Rucio-Auth-Account: Account identifier. :param Rucio-Auth-Token: as an 32 character hex string. :params Rucio-Account: account belonging to the new scope. """ json_data = data().decode() try: params = loads(json_data) value = params['value'] except ValueError: raise generate_http_error(400, 'ValueError', 'Cannot decode json parameter list') try: add_value(key=key, value=value, issuer=ctx.env.get('issuer'), vo=ctx.env.get('vo')) except Duplicate as error: raise generate_http_error(409, 'Duplicate', error.args[0]) except InvalidValueForKey as error: raise generate_http_error(400, 'InvalidValueForKey', error.args[0]) except KeyNotFound as error: raise generate_http_error(404, 'KeyNotFound', error.args[0]) except RucioException as error: raise generate_http_error(500, error.__class__.__name__, error.args[0]) except Exception as error: raise InternalError(error) raise Created()
def post(self, key): """ Create a new value for a key. .. :quickref: Values; Create new value. :<json dict parameter: Dictionary with 'value'. :status 201: Created. :status 400: Cannot decode json parameter list. :status 400: Invalid Value For Key. :status 401: Invalid Auth Token. :status 404: Key Not Found. :status 409: Value already exists. :status 500: Internal Error. """ json_data = request.data try: params = loads(json_data) value = params['value'] except ValueError: return generate_http_error_flask( 400, 'ValueError', 'Cannot decode json parameter list') try: add_value(key=key, value=value, issuer=request.environ.get('issuer'), vo=request.environ.get('vo')) except Duplicate as error: return generate_http_error_flask(409, 'Duplicate', error.args[0]) except InvalidValueForKey as error: return generate_http_error_flask(400, 'InvalidValueForKey', error.args[0]) except KeyNotFound as error: return generate_http_error_flask(404, 'KeyNotFound', error.args[0]) except RucioException as error: return generate_http_error_flask(500, error.__class__.__name__, error.args[0]) except Exception as error: print(format_exc()) return str(error), 500 return 'Created', 201