class Dynflow::ExecutionPlan::Steps::AbstractFlowStep

Public Instance Methods

clone() click to toggle source
# File lib/dynflow/execution_plan/steps/abstract_flow_step.rb, line 24
def clone
  self.class.from_hash(to_hash, execution_plan_id, world)
end
execute(*args) click to toggle source
# File lib/dynflow/execution_plan/steps/abstract_flow_step.rb, line 14
def execute(*args)
  return self if [:skipped, :success].include? self.state
  open_action do |action|
    with_meta_calculation(action) do
      action.execute(*args)
      @delayed_events = action.delayed_events
    end
  end
end
update_from_action(action) click to toggle source

Method called when initializing the step to customize the behavior based on the action definition during the planning phase

# File lib/dynflow/execution_plan/steps/abstract_flow_step.rb, line 8
def update_from_action(action)
  @queue = action.queue
  @queue ||= action.triggering_action.queue if action.triggering_action
  @queue ||= :default
end

Private Instance Methods

open_action() { |action| ... } click to toggle source
# File lib/dynflow/execution_plan/steps/abstract_flow_step.rb, line 30
def open_action
  action = persistence.load_action(self)
  yield action
  persistence.save_action(execution_plan_id, action)
  persistence.save_output_chunks(execution_plan_id, action.id, action.pending_output_chunks)
  save

  return self
end