Sha256: b003be3104724c31a8f07e791670f0f9b61032723540e84263ccd1d48eef2eed

Contents?: true

Size: 1.11 KB

Versions: 14

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true
module Dynflow
  module ExecutionPlan::Steps
    class AbstractFlowStep < Abstract

      # Method called when initializing the step to customize the behavior based on the
      # action definition during the planning phase
      def update_from_action(action)
        @queue = action.queue
        @queue ||= action.triggering_action.queue if action.triggering_action
        @queue ||= :default
      end

      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

      def clone
        self.class.from_hash(to_hash, execution_plan_id, world)
      end

      private

      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
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
dynflow-1.8.2 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.8.1 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.8.0 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.7.0 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.11 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.10 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.8 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.7 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.6 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.5 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.4 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.3 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.2 lib/dynflow/execution_plan/steps/abstract_flow_step.rb
dynflow-1.6.1 lib/dynflow/execution_plan/steps/abstract_flow_step.rb