Persistieren benutzerdefinierter Daten in einer Datenbank
Diese Methode ermöglicht es externen Anwendungen, Daten an Orchestrator zu übermitteln, die in einer Datenbanktabelle namensshared_states. So kann ein Plugin beispielsweise eine Web-Benachrichtigung senden, wenn die Transkodierung abgeschlossen ist oder fehlschlägt.
Orchestrator verwendet eine einfache Autorisierung in der Anfrage.
Verwendung
http://Orchestrator_IP_address/aspera/orchestrator/api/custom_api_call?login=user_name&identifier=identifier_valuejob_id=job_id
http://10.0.0.10/aspera/orchestrator/api/custom_api_call?login=my_user_name&identifier=testing&uniq_id=321&job_id=123&job_result=successUm die Suche nach den in die Tabelle eingegebenen Daten zu erleichtern, können die Benutzer zwei Parameter übergeben, um jeden Eintrag eindeutig zu identifizieren. Die Felder sindidentifierdie eine Zeichenkette ist, und uniq_idwas eine ganze Zahl ist.
Alle Schlüssel-Werte-Paare (außer fürlogin,password,identifier,uniq_id) wird in einem serialisierten Hash in dershared_statesTabelle.
Die Datenbankeinträge können mit einer MySQL-Abfrage oder einer Ruby-Abfrage durchsucht werden.
select id, entry from shared_states where aggregate_type = “identifier” and aggregate_id = uniq_idSharedState.find(:all, :conditions => [“aggregate_type = ? and aggregate_id = ?”, identifier, uniq_id])
Abfrageparameter
- identifier=identifier
- Gibt einen benutzerdefinierten Datenbezeichner an (Typ: String).
- uniq_id=ein weiterer Bezeichner
- Gibt einen eindeutigen Bezeichner für benutzerdefinierte Daten an (Typ: Ganzzahl).
- data_name_X=data_1_value
- Gibt einige Daten an, die übergeben werden sollen, wobeidata_name_Xist eine ganze Zahl.
Antwort
<?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>