Sha256: 07950364eff133964e0cf4ecba972f14108a1951633baedd6bd2deb759c628c9

Contents?: true

Size: 1.52 KB

Versions: 25

Compression:

Stored size: 1.52 KB

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true
example_description = <<DESC
  Sub Plans Example
  ===================

  This example shows, how to trigger the execution plans from within a
  run method of some action and waing for them to finish.

  This is useful, when doing bulk actions, where having one big
  execution plan would not be effective, or in case all the data are
  not available by the time of original action planning.

DESC

require_relative 'example_helper'
require_relative 'orchestrate_evented'

COUNT = (ARGV[0] || 25).to_i

class SubPlansExample < Dynflow::Action
  include Dynflow::Action::WithSubPlans
  include Dynflow::Action::WithBulkSubPlans

  def create_sub_plans
    current_batch.map { |i| trigger(OrchestrateEvented::CreateMachine, "host-#{i}", 'web_server') }
  end

  def batch_size
    5
  end

  def batch(from, size)
    COUNT.times.drop(from).take(size)
  end

  def total_count
    COUNT
  end
end

class PollingSubPlansExample < SubPlansExample
  include Dynflow::Action::WithPollingSubPlans
end

if $0 == __FILE__
  ExampleHelper.world.action_logger.level = Logger::INFO
  ExampleHelper.world
  t1 = ExampleHelper.world.trigger(SubPlansExample)
  t2 = ExampleHelper.world.trigger(PollingSubPlansExample)
  puts example_description
  puts <<-MSG.gsub(/^.*\|/, '')
    |  Execution plans #{t1.id} and #{t2.id} with sub plans triggered
    |  You can see the details at
    |    #{ExampleHelper::DYNFLOW_URL}/#{t2.id}
    |    #{ExampleHelper::DYNFLOW_URL}/#{t1.id}
  MSG

  ExampleHelper.run_web_console
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
dynflow-1.8.2 examples/sub_plans.rb
dynflow-1.8.1 examples/sub_plans.rb
dynflow-1.8.0 examples/sub_plans.rb
dynflow-1.7.0 examples/sub_plans.rb
dynflow-1.6.11 examples/sub_plans.rb
dynflow-1.6.10 examples/sub_plans.rb
dynflow-1.6.8 examples/sub_plans.rb
dynflow-1.6.7 examples/sub_plans.rb
dynflow-1.6.6 examples/sub_plans.rb
dynflow-1.6.5 examples/sub_plans.rb
dynflow-1.6.4 examples/sub_plans.rb
dynflow-1.6.3 examples/sub_plans.rb
dynflow-1.6.2 examples/sub_plans.rb
dynflow-1.6.1 examples/sub_plans.rb
dynflow-1.4.9 examples/sub_plans.rb
dynflow-1.4.8 examples/sub_plans.rb
dynflow-1.5.0 examples/sub_plans.rb
dynflow-1.4.7 examples/sub_plans.rb
dynflow-1.4.6 examples/sub_plans.rb
dynflow-1.4.5 examples/sub_plans.rb