lib/bolt/executor.rb in bolt-3.5.0 vs lib/bolt/executor.rb in bolt-3.6.0

- old
+ new

@@ -10,38 +10,41 @@ require 'bolt/result' require 'bolt/config' require 'bolt/result_set' require 'bolt/puppetdb' # Load transports -require 'bolt/transport/ssh' -require 'bolt/transport/winrm' -require 'bolt/transport/orch' +require 'bolt/transport/docker' require 'bolt/transport/local' require 'bolt/transport/lxd' -require 'bolt/transport/docker' +require 'bolt/transport/orch' +require 'bolt/transport/podman' require 'bolt/transport/remote' +require 'bolt/transport/ssh' +require 'bolt/transport/winrm' require 'bolt/yarn' module Bolt TRANSPORTS = { - ssh: Bolt::Transport::SSH, - winrm: Bolt::Transport::WinRM, - pcp: Bolt::Transport::Orch, + docker: Bolt::Transport::Docker, local: Bolt::Transport::Local, lxd: Bolt::Transport::LXD, - docker: Bolt::Transport::Docker, - remote: Bolt::Transport::Remote + pcp: Bolt::Transport::Orch, + podman: Bolt::Transport::Podman, + remote: Bolt::Transport::Remote, + ssh: Bolt::Transport::SSH, + winrm: Bolt::Transport::WinRM }.freeze class Executor - attr_reader :noop, :transports, :in_parallel + attr_reader :noop, :transports, :in_parallel, :future attr_accessor :run_as def initialize(concurrency = 1, analytics = Bolt::Analytics::NoopClient.new, noop = false, - modified_concurrency = false) + modified_concurrency = false, + future = {}) # lazy-load expensive gem code require 'concurrent' @analytics = analytics @logger = Bolt::Logger.logger(self) @@ -62,9 +65,10 @@ @publisher.post { Thread.current[:name] = 'event-publisher' } @noop = noop @run_as = nil @in_parallel = false + @future = future @pool = if concurrency > 0 Concurrent::ThreadPoolExecutor.new(name: 'exec', max_threads: concurrency) else Concurrent.global_immediate_executor end