def main(stdscr): parser = argparse.ArgumentParser() parser.add_argument("user", type=str) parser.add_argument("-v", "--verbose", action="count") args = parser.parse_args() user = args.user server_name = origin_from_ucid(user) ## Set up logging ## root_logger = logging.getLogger() formatter = logging.Formatter( "%(asctime)s - %(name)s - %(lineno)d - " "%(levelname)s - %(message)s" ) if not os.path.exists("logs"): os.makedirs("logs") fh = logging.FileHandler("logs/%s" % user) fh.setFormatter(formatter) root_logger.addHandler(fh) root_logger.setLevel(logging.DEBUG) # Hack: The only way to get it to stop logging to sys.stderr :( log.theLogPublisher.observers = [] observer = log.PythonLoggingObserver() observer.start() ## Set up synapse server curses_stdio = cursesio.CursesStdIO(stdscr) input_output = InputOutput(curses_stdio, user) curses_stdio.set_callback(input_output) app_hs = SynapseHomeServer(server_name, db_name="dbs/%s" % user) replication = app_hs.get_replication_layer() hs = HomeServer(server_name, replication, curses_stdio) input_output.set_home_server(hs) ## Add input_output logger io_logger = IOLoggerHandler(input_output) io_logger.setFormatter(formatter) root_logger.addHandler(io_logger) ## Start! ## try: port = int(server_name.split(":")[1]) except: port = 12345 app_hs.get_http_server().start_listening(port) reactor.addReader(curses_stdio) reactor.run()
def main(stdscr): parser = argparse.ArgumentParser() parser.add_argument('user', type=str) parser.add_argument('-v', '--verbose', action='count') args = parser.parse_args() user = args.user server_name = origin_from_ucid(user) ## Set up logging ## root_logger = logging.getLogger() formatter = logging.Formatter('%(asctime)s - %(name)s - %(lineno)d - ' '%(levelname)s - %(message)s') if not os.path.exists("logs"): os.makedirs("logs") fh = logging.FileHandler("logs/%s" % user) fh.setFormatter(formatter) root_logger.addHandler(fh) root_logger.setLevel(logging.DEBUG) # Hack: The only way to get it to stop logging to sys.stderr :( log.theLogPublisher.observers = [] observer = log.PythonLoggingObserver() observer.start() ## Set up synapse server curses_stdio = cursesio.CursesStdIO(stdscr) input_output = InputOutput(curses_stdio, user) curses_stdio.set_callback(input_output) app_hs = SynapseHomeServer(server_name, db_name="dbs/%s" % user) replication = app_hs.get_replication_layer() hs = HomeServer(server_name, replication, curses_stdio) input_output.set_home_server(hs) ## Add input_output logger io_logger = IOLoggerHandler(input_output) io_logger.setFormatter(formatter) root_logger.addHandler(io_logger) ## Start! ## try: port = int(server_name.split(":")[1]) except: port = 12345 app_hs.get_http_server().start_listening(port) reactor.addReader(curses_stdio) reactor.run()
def test_webclient_resolves_with_client_resource(self): """ Tests that both client and webclient resources can be accessed simultaneously. This is a regression test created in response to https://github.com/matrix-org/synapse/issues/11763. """ for resource_name_order_list in [ ["webclient", "client"], ["client", "webclient"], ]: # Create a dictionary from path regex -> resource resource_dict: Dict[str, Resource] = {} for resource_name in resource_name_order_list: resource_dict.update( SynapseHomeServer._configure_named_resource( self.hs, resource_name)) # Create a root resource which ties the above resources together into one root_resource = Resource() create_resource_tree(resource_dict, root_resource) # Create a site configured with this resource to make HTTP requests against listener_config = ListenerConfig( port=8008, bind_addresses=["127.0.0.1"], type="http", http_options=HttpListenerConfig(resources=[ HttpResourceConfig(names=resource_name_order_list) ]), ) test_site = SynapseSite( logger_name="synapse.access.http.fake", site_tag=self.hs.config.server.server_name, config=listener_config, resource=root_resource, server_version_string="1", max_request_body_size=1234, reactor=self.reactor, ) # Attempt to make requests to endpoints on both the webclient and client resources # on test_site. self._request_client_and_webclient_resources(test_site)