Untitled
unknown
plain_text
2 years ago
1.9 kB
16
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