REST front-end utilities¶
This module is a collection of utility functions used mainly by the rest_route module and which are placed here to keep the rest_route module as clean as possible.
-
class
VestaRestPackage.utility_rest.AnyIntConverter(mapping, *items)[source]¶ Matches one of the items provided.
Items must be integer and comma separated with a space to avoid confusion with floating point value in the parser.
For example:
1, 2, 3
And not:
1,2,3
Since it would parse as float 1,2 and 3 .
-
VestaRestPackage.utility_rest.async_call(fct, *args, **kwargs)[source]¶ Call AMQP functions with any arg or kwargs in an asynchronous manner.
Parameters: - fct – The function to call asynchronously
- args – Arguments
- kwargs – Keyword arguments
Returns: The function output
Raises: AMQPErrorif a timeout occurs
-
VestaRestPackage.utility_rest.get_canarie_api_response(service_route, canarie_api_request)[source]¶ Provide a valid HTML response for the CANARIE API request based on the service_route.
Parameters: - service_route – Route name of the service coming from the URL e.g. : [‘diarisation’, ‘stt’, etc.]
- canarie_api_request – The request specified in the URL
Returns: A valid HTML response
-
VestaRestPackage.utility_rest.get_db(name)[source]¶ Get a connection to an existing database. If it does not exist, create a connection to local sqlite3 file.
If the local sqlite3 file doesn’t exist, initialize it using a schema.
-
VestaRestPackage.utility_rest.log_request(service_name, url)[source]¶ Log an invocation into the DB
Parameters: - service_name – service to which a request has been made
- url – URL used to access API
-
VestaRestPackage.utility_rest.make_error_response(html_status=None, html_status_response=None, vesta_exception=None)[source]¶ Make an error response based on the request type and given information.
Parameters: - html_status – HTML status, if not provided it will be extracted from the vesta_exception (at least one of html_status or vesta_exception must be provided)
- html_status_response – Standard message associated with a status
code. Obtained via
httplib.responsesif not provided. - vesta_exception – Vesta exception instance used to obtain an exception code. Generic one is used if not provided.
-
VestaRestPackage.utility_rest.request_wants_json()[source]¶ Check if the request type is of type JSON.
The default mimetype / is interpreted as JSON.
-
VestaRestPackage.utility_rest.request_wants_xml()[source]¶ Check if the request type is of type XML.
The default mimetype / is interpreted as JSON.
-
VestaRestPackage.utility_rest.set_html_as_default_response()[source]¶ By default if the accepted mimetypes contains /, JSON format will be used.
By calling this function, the / mimetype will be changed explicitly into text/html so that it becomes the mimetype used by default.
-
VestaRestPackage.utility_rest.store_uuid(uuid, service_name)[source]¶ Store a UUID so it can be validated later.
Parameters: - uuid (Unicode) – UUID of a given request
- service_name (string) – Name of the service which is requested.
-
VestaRestPackage.utility_rest.submit_task(storage_doc_id, task_name, service_route='.', **extra_params)[source]¶ Submit a task to a worker.
Parameters: - storage_doc_id – The document ID for which a task should be run.
- task_name – The task name for logging purposes
- service_route – service route to obtain the requested service name
- extra_params – Extra parameters that are passed to send_task_request
Returns: JSON object with the task UUID or error response.
Raises:
-
VestaRestPackage.utility_rest.uuid_task(task, service_route='.')[source]¶ Get the status or cancel a task identified by a UUID.
Parameters: - task – status or cancel
- service_route – service route to obtain the requested service name
Returns: JSON object with latest status or error response.
Raises:
-
VestaRestPackage.utility_rest.validate_service_route(service_route)[source]¶ Check if service name is a value amongst known services in the configuration.
Parameters: service_route – Route name of the service coming from the URL e.g.: [‘diarisation’, ‘stt’, etc.] Returns: Service name associated with the route Raises: UnknownServiceError
-
VestaRestPackage.utility_rest.validate_state(uuid, service_name, state)[source]¶ Validate the state of a given task.
- Check that the activity flag is True
- if the task has leave the PENDING status
- Check that the worker version in the payload fit the configuration one
Parameters: - uuid (Unicode) – UUID of a given request
- service_name (string) – Name of the service which is requested.
- state (Dictionary containing task status) – The state of the task
Raises: VersionMismatchErrorin case of a version mismatch
-
VestaRestPackage.utility_rest.validate_uuid(uuid, service_name)[source]¶ Validate UUID existence for a given service.
Parameters: - uuid (Unicode) – UUID of a given request
- service_name (string) – Name of the service which is requested.
Raises: UnknownUUIDError in case that the UUID isn’t owned by the given service.