57: def initialize(args = {})
58: valid_args = [:handlers, :xmlrpc_handlers, :port]
59: bad_args = args.keys.find_all { |p| ! valid_args.include?(p) }.collect { |p| p.to_s }.join(",")
60: raise ArgumentError, "Invalid argument(s) %s" % bad_args unless bad_args == ""
61: @server_type = Puppet[:servertype] or raise "No servertype configuration found."
62: http_server_class || raise(ArgumentError, "Could not determine HTTP Server class for server type [#{@server_type}]")
63:
64: @port = args[:port] || Puppet[:masterport] || raise(ArgumentError, "Must specify :port or configure Puppet :masterport")
65: @address = determine_bind_address()
66:
67: @protocols = [ :rest, :xmlrpc ]
68: @listening = false
69: @routes = {}
70: @xmlrpc_routes = {}
71: self.register(args[:handlers]) if args[:handlers]
72: self.register_xmlrpc(args[:xmlrpc_handlers]) if args[:xmlrpc_handlers]
73:
74:
75: Puppet.settings.use(:main, :ssl, Puppet[:name])
76: end