exe/floe in floe-0.8.0 vs exe/floe in floe-0.9.0
- old
+ new
@@ -18,12 +18,10 @@
opt :docker, "Use docker to run images (short for --docker_runner=docker)", :type => :boolean
opt :podman, "Use podman to run images (short for --docker_runner=podman)", :type => :boolean
opt :kubernetes, "Use kubernetes to run images (short for --docker_runner=kubernetes)", :type => :boolean
end
-Optimist.die(:docker_runner, "must be one of #{Floe::Workflow::Runner::TYPES.join(", ")}") unless Floe::Workflow::Runner::TYPES.include?(opts[:docker_runner])
-
# legacy support for --workflow
args = ARGV.empty? ? [opts[:workflow], opts[:input]] : ARGV
Optimist.die(:workflow, "must be specified") if args.empty?
# shortcut support
@@ -32,22 +30,17 @@
opts[:docker_runner] ||= "kubernetes" if opts[:kubernetes]
require "logger"
Floe.logger = Logger.new($stdout)
-runner_klass = case opts[:docker_runner]
- when "docker"
- Floe::Workflow::Runner::Docker
- when "podman"
- Floe::Workflow::Runner::Podman
- when "kubernetes"
- Floe::Workflow::Runner::Kubernetes
- end
-
runner_options = opts[:docker_runner_options].to_h { |opt| opt.split("=", 2) }
-Floe::Workflow::Runner.docker_runner = runner_klass.new(runner_options)
+begin
+ Floe.set_runner("docker", opts[:docker_runner], runner_options)
+rescue ArgumentError => e
+ Optimist.die(:docker_runner, e.message)
+end
credentials =
if opts[:credentials_given]
opts[:credentials] == "-" ? $stdin.read : opts[:credentials]
elsif opts[:credentials_file_given]
@@ -60,16 +53,10 @@
Floe::Workflow.load(workflow, context, credentials)
end
# run
-outstanding = workflows.dup
-until outstanding.empty?
- ready = outstanding.select(&:step_nonblock_ready?)
- ready.map(&:run_nonblock)
- outstanding -= ready.select(&:end?)
- sleep(1) if !outstanding.empty?
-end
+Floe::Workflow.wait(workflows, &:run_nonblock)
# display status
workflows.each do |workflow|
puts "", "#{workflow.name}#{" (#{workflow.status})" unless workflow.context.success?}", "===" if workflows.size > 1