def HandlerFactory(self):
config = self.config
class Handler(BaseHTTPRequestHandler):
server_version = 'Sauna/' + __version__
def do_GET(self):
data = self.generate_response()
self.wfile.write(data)
def do_HEAD(self):
self.generate_response()
def generate_response(self):
try:
content = self.get_content_from_path()
code = 200
except NotFoundError:
content = {'error': 'Resource not found'}
code = 404
self.send_response(code)
if config['data_type'] == 'json':
self.send_header('Content-Type', 'application/json')
data = json.dumps(content).encode()
elif config['data_type'] == 'html':
self.send_header('Content-Type', 'text/html')
from .html import get_html
data = get_html()
else:
data = 'data type not found'.encode()
self.send_header('Content-Length', len(data))
self.end_headers()
return data
def get_content_from_path(self):
if self.path == '/':
status, code = HTTPServerConsumer.get_current_status()
return {
'status': status,
'code': code,
'checks': HTTPServerConsumer.get_checks_as_dict()
}
else:
raise NotFoundError()
def log_message(self, format, *args):
logger.debug(
'{} {}'.format(self.address_string(), format % args))
return Handler
评论列表
文章目录