max_jobs = config.MaxJobs queue_capacity = config.QueueCapacity port = config.Port host = config.Host registry_port = config.RegistryPort data_server_url = config.DataServerURL # required log_file_dir = config.LogFileDir log_file = None if log_file_dir: log_file = LogFile(log_file_dir + "/job_server.log") source_archive = config.SourceArchive rs = RegistryServer(registry_port) authenticator = Authenticator(config) js = JobServer(host, port, rs, authenticator, data_server_url, config.BulkTransportPort, queue_capacity, max_jobs, source_archive, log_file_dir) application = WebServiceApp(config, rs, authenticator, js) web_server = HTTPServer(config.WebServerPort, application) rs.start() js.start() web_server.start() print("Web server port:", config.WebServerPort) print("Job server port:", config.Port) with open("job_server.pid", "w") as pidfile: pidfile.write("%d" % (os.getpid(), )) web_server.join()
WPHandler.__init__(self, request, app) def get(self, request, name): cell = self.App.Cell value = cell.get(name) return value if value is not None else 404 def set(self, request, name, value=None): cell = self.App.Cell value = cell.set(name, value) return 200 class App(WPApp): def __init__(self, cell): WPApp.__init__(self, Handler) self.Cell = cell opts, args = getopt.getopt(sys.argv[1:], "c:") opts = dict(opts) config = yaml.load(open(opts["-c"], "r"), Loader=yaml.SafeLoader) port = int(config["server"]["port"]) link = EtherLink(config["ring"]) cell = MemoryCell(link) link.init(cell) link.start() server = HTTPServer(port, App(cell)) server.start() server.join()