class Indocker::ServerPools::DeployServerPool
Public Class Methods
new(configuration:, logger:)
click to toggle source
# File lib/indocker/server_pools/deploy_server_pool.rb, line 2 def initialize(configuration:, logger:) @logger = logger @configuration = configuration @connections = [] @semaphore = Mutex.new end
Public Instance Methods
close_sessions()
click to toggle source
# File lib/indocker/server_pools/deploy_server_pool.rb, line 38 def close_sessions @connections.each(&:close_session) end
create_connection!(server)
click to toggle source
# File lib/indocker/server_pools/deploy_server_pool.rb, line 9 def create_connection!(server) connection = Indocker::ServerPools::DeployServerConnection.new( logger: @logger, configuration: @configuration, server: server, ) connection.create_session! connection end
each(&proc)
click to toggle source
# File lib/indocker/server_pools/deploy_server_pool.rb, line 34 def each(&proc) @connections.each(&proc) end
find_or_create_connection!(server)
click to toggle source
# File lib/indocker/server_pools/deploy_server_pool.rb, line 19 def find_or_create_connection!(server) @semaphore.synchronize do connection = @connections.detect do |connection| connection.server.host == server.host && connection.server.port == server.port && connection.server.user == server.user end if connection.nil? connection = create_connection!(server) @connections.push(connection) end connection end end