Method: ManageIQ::Floe::Workflow::States::Task#initialize

Defined in:
lib/manageiq/floe/workflow/states/task.rb

#initialize(workflow, name, payload) ⇒ Task

Returns a new instance of Task.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/manageiq/floe/workflow/states/task.rb', line 12

def initialize(workflow, name, payload)
  super

  @heartbeat_seconds = payload["HeartbeatSeconds"]
  @next              = payload["Next"]
  @resource          = payload["Resource"]
  @timeout_seconds   = payload["TimeoutSeconds"]
  @retry             = payload["Retry"].to_a.map { |retrier| Retrier.new(retrier) }
  @catch             = payload["Catch"].to_a.map { |catcher| Catcher.new(catcher) }
  @input_path        = Path.new(payload.fetch("InputPath", "$"))
  @output_path       = Path.new(payload.fetch("OutputPath", "$"))
  @result_path       = ReferencePath.new(payload.fetch("ResultPath", "$"))
  @parameters        = PayloadTemplate.new(payload["Parameters"])     if payload["Parameters"]
  @result_selector   = PayloadTemplate.new(payload["ResultSelector"]) if payload["ResultSelector"]
  @credentials       = PayloadTemplate.new(payload["Credentials"])    if payload["Credentials"]
end