class ChefZero::SocketlessServerMap
Constants
- MUTEX
Public Class Methods
new()
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 44 def initialize reset! end
request(port, request_env)
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 32 def self.request(port, request_env) instance.request(port, request_env) end
server_on_port(port)
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 36 def self.server_on_port(port) instance.server_on_port(port) end
Public Instance Methods
deregister(port)
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 78 def deregister(port) MUTEX.synchronize do @servers_by_port.delete(port) end end
has_server_on_port?(port)
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 70 def has_server_on_port?(port) @servers_by_port.key?(port) end
register_no_listen_server(server)
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 58 def register_no_listen_server(server) MUTEX.synchronize do 1.upto(1000) do |port| unless @servers_by_port.key?(port) @servers_by_port[port] = server return port end end raise NoSocketlessPortAvailable, "No socketless ports left to register" end end
register_port(port, server)
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 52 def register_port(port, server) MUTEX.synchronize do @servers_by_port[port] = server end end
request(port, request_env)
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 84 def request(port, request_env) server = @servers_by_port[port] raise ServerNotFound, "No socketless chef-zero server on given port #{port.inspect}" unless server server.handle_socketless_request(request_env) end
reset!()
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 48 def reset! @servers_by_port = {} end
server_on_port(port)
click to toggle source
# File lib/chef_zero/socketless_server_map.rb, line 74 def server_on_port(port) @servers_by_port[port] end