class Indocker::ServerPools::BuildServerPool

Public Class Methods

new(configuration:, logger:) click to toggle source
# File lib/indocker/server_pools/build_server_pool.rb, line 2
def initialize(configuration:, logger:)
  @logger = logger
  @configuration = configuration

  @connections = configuration.build_servers.map do |build_server|
    Indocker::ServerPools::BuildServerConnection.new(
      logger: @logger,
      configuration: configuration,
      server: build_server,
    )
  end
end

Public Instance Methods

close_sessions() click to toggle source
# File lib/indocker/server_pools/build_server_pool.rb, line 35
def close_sessions
  @connections.each(&:close_session)
rescue => e
  @logger.error("error during session close: #{e.inspect}")
end
create_sessions!() click to toggle source
# File lib/indocker/server_pools/build_server_pool.rb, line 15
def create_sessions!
  @connections.each(&:create_session!)
end
each(&proc) click to toggle source
# File lib/indocker/server_pools/build_server_pool.rb, line 31
def each(&proc)
  @connections.each(&proc)
end
get() click to toggle source
# File lib/indocker/server_pools/build_server_pool.rb, line 19
def get
  context = nil

  loop do
    context = @connections.detect {|c| !c.busy?}
    sleep(0.1)
    break if context
  end

  context
end