Persist Custom Data

Description:

This is a method for external applications to submit data to Orchestrator that is persisted in a database table (shared_states). Example scenario: Rhozet WFS can send a Web notification upon transcode complete or failure. This API method requires authentication.

To simplify searching for the data entered in the table, users can pass two parameters to make each entry uniquely identifiable. The fields are identifier which is a string, and uniq_id, which is an integer.

All key-value pairs (except for login, password, identifier,uniq_id) will be stored in a serialized hash in the shared_states table.

The database entries can be searched using a MySQL query or a Ruby query.

MySQL query:
select id, entry from shared_states where aggregate_type = “identifier” and aggregate_id = uniq_id
Ruby query:
SharedState.find(:all, :conditions => [“aggregate_type = ? and aggregate_id = ?”, identifier, uniq_id])

Usage:

http://localhost/aspera/orchestrator/api/custom_api_call?login=admin&password=aspera&identifier=<>&job_id=123&<key_1>=<value_1>...&<key_n>=<value_n>
The following are the input parameters:
identifier=identifier
Specifies a custom data identifier (type: string).
uniq_id=another identifier
Specifies a custom data unique identifier (type: integer).
data_name_X=data_1_value
Specifies some data to pass in, where data_name_X is an integer.
For example:
http://localhost/aspera/orchestrator/api/custom_api_call?login=admin&password=aspera&identifier=testing&uniq_id=321&job_id=123&job_result=success
Response example (XML):
<?xml version="1.0"?>
<api_call action="custom_api_call">
   <shared_state>
      <id>34</id>
      <creation_time>"2014-03-22 21:11:35 UTC"</creation_time>
   </shared_state>
</api_call>