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