walkthroughs/howto-k8s-retry-policy/feapp/serve.py (36 lines of code) (raw):
#!/usr/bin/env python3
try:
import os
import socket
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
except Exception as e:
print(f'[ERROR] {e}')
COLOR_HOST = os.environ.get('COLOR_HOST')
print(f'COLOR_HOST is {COLOR_HOST}')
PORT = int(os.environ.get('PORT', '8080'))
print(f'PORT is {PORT}')
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/ping':
self.send_response(200)
self.end_headers()
return
try:
print('Trying to hit ' + COLOR_HOST.split(':')[0])
print(socket.gethostbyname(COLOR_HOST.split(':')[0]))
req = Request(f'http://{COLOR_HOST}')
res = urlopen(req)
self.send_response(200)
self.end_headers()
self.wfile.write(res.read())
except HTTPError as e:
print(f'[ERROR] {e}')
self.send_error(e.code, e.reason)
except Exception as e:
print(f'[ERROR] {e}')
self.send_error(500, b'Something really bad happened')
print('starting server...')
httpd = HTTPServer(('', PORT), Handler)
print('running server...')
httpd.serve_forever()