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