mirror of
https://github.com/jpetazzo/container.training.git
synced 2026-07-18 20:39:17 +00:00
We want to be able to run on IPv6-only clusters (as well as legacy IPv4 clusters, as well as DualStack clusters). This requires minor changes in the code, because in multiple places, we were binding listening sockets explicitly to 0.0.0.0. We change this to :: instead, and in some cases, we make it easier to change that if needed (e.g. through environment variables).
33 lines
681 B
Python
33 lines
681 B
Python
from flask import Flask, Response
|
|
import os
|
|
import socket
|
|
import time
|
|
|
|
app = Flask(__name__)
|
|
|
|
# Enable debugging if the DEBUG environment variable is set and starts with Y
|
|
app.debug = os.environ.get("DEBUG", "").lower().startswith('y')
|
|
|
|
hostname = socket.gethostname()
|
|
|
|
urandom = os.open("/dev/urandom", os.O_RDONLY)
|
|
|
|
|
|
@app.route("/")
|
|
def index():
|
|
return "RNG running on {}\n".format(hostname)
|
|
|
|
|
|
@app.route("/<int:how_many_bytes>")
|
|
def rng(how_many_bytes):
|
|
# Simulate a little bit of delay
|
|
time.sleep(0.1)
|
|
return Response(
|
|
os.read(urandom, how_many_bytes),
|
|
content_type="application/octet-stream")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app.run(port=80)
|
|
|