Untitled
unknown
plain_text
a year ago
1.9 kB
7
Indexable
class HttpServerHandler(BaseHTTPRequestHandler): def do_OPTIONS(self): response = 200 q = "SELECT pg_is_in_recovery()" cursor = self.server.db.cursor() cursor.execute(q) recovery = cursor.fetchone() if recovery[0]: msg = "Replica" response = 206 else: msg = "Primary" self.send_response(response) self.send_header("Content-type", "text/html") self.end_headers() def do_GET(self): response = 200 logger.debug(type(self.headers)) q = "SELECT pg_is_in_recovery()" cursor = self.server.db.cursor() cursor.execute(q) recovery = cursor.fetchone() if recovery[0]: response = 206 msg = "Replica" else: msg = "Primary" #logger.debug(f"Sending {response}, '{msg}'") self.send_response(response) self.send_header("Content-type", "text/html") self.end_headers() class MyHTTPServer(HTTPServer): """this class is necessary to allow passing the db connection into the RequestHandlerClass""" def __init__(self, server_address, RequestHandlerClass, db): HTTPServer.__init__(self, server_address, RequestHandlerClass) self.db = db class HttpServer: def __init__(self, name, host, port, db): self.name = name self.host = host self.port = port self.db = db self.server = None def start(self): logger.info('Starting %s at %s:%d' % (self.name, self.host, self.port)) server_address = (self.host, self.port) self.server = MyHTTPServer(server_address, HttpServerHandler, self.db) self.server.serve_forever() def stop(self): if self.server: logging.info('Stopping %s at %s:%d' % (self.name, self.host, self.port)) self.server.shutdown()
Editor is loading...
Leave a Comment