Class: ActiveEncode::EngineAdapters::MatterhornAdapter
- Inherits:
-
Object
- Object
- ActiveEncode::EngineAdapters::MatterhornAdapter
- Defined in:
- lib/active_encode/engine_adapters/matterhorn_adapter.rb
Constant Summary collapse
- DEFAULT_ARGS =
{'flavor' => 'presenter/source'}
Instance Method Summary collapse
- #cancel(encode) ⇒ Object
- #create(encode) ⇒ Object
- #find(id, opts = {}) ⇒ Object
- #list(*filters) ⇒ Object
- #purge(encode) ⇒ Object
- #remove_output(encode, output_id) ⇒ Object
Instance Method Details
#cancel(encode) ⇒ Object
26 27 28 29 |
# File 'lib/active_encode/engine_adapters/matterhorn_adapter.rb', line 26 def cancel(encode) workflow_om = Rubyhorn.client.stop(encode.id) build_encode(get_workflow(workflow_om), encode.class) end |
#create(encode) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/active_encode/engine_adapters/matterhorn_adapter.rb', line 8 def create(encode) workflow_id = encode.[:preset] || "full" workflow_om = if encode.input.is_a? Hash createMultipleFiles(encode.input, workflow_id) else Rubyhorn.client.addMediaPackageWithUrl(DEFAULT_ARGS.merge({'workflow' => workflow_id, 'url' => encode.input, 'filename' => File.basename(encode.input), 'title' => File.basename(encode.input)})) end build_encode(get_workflow(workflow_om), encode.class) end |
#find(id, opts = {}) ⇒ Object
18 19 20 |
# File 'lib/active_encode/engine_adapters/matterhorn_adapter.rb', line 18 def find(id, opts = {}) build_encode(fetch_workflow(id), opts[:cast]) end |
#list(*filters) ⇒ Object
22 23 24 |
# File 'lib/active_encode/engine_adapters/matterhorn_adapter.rb', line 22 def list(*filters) raise NotImplementedError #TODO implement this end |
#purge(encode) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/active_encode/engine_adapters/matterhorn_adapter.rb', line 31 def purge(encode) workflow_om = Rubyhorn.client.stop(encode.id) rescue nil workflow_om ||= Rubyhorn.client.get_stopped_workflow(encode.id) rescue nil purged_workflow = purge_outputs(get_workflow(workflow_om)) #Rubyhorn.client.delete_instance(encode.id) #Delete is not working so workflow instances can always be retrieved later! build_encode(purged_workflow, encode.class) end |
#remove_output(encode, output_id) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/active_encode/engine_adapters/matterhorn_adapter.rb', line 39 def remove_output(encode, output_id) workflow = fetch_workflow(encode.id) output = encode.output.find {|o| o[:id] == output_id} return if output.nil? purge_output(workflow, output_id) output end |