-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
44 lines (31 loc) · 2.02 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from fastapi import FastAPI
import argparse
import uvicorn
import os
import server
parser = argparse.ArgumentParser(description="Start the impact estimator service.")
parser.add_argument("--productopener_base_url", help="Base URL to the productopener service", default=os.environ.get("PRODUCT_OPENER_URL"))
parser.add_argument("--productopener_username", help="Username for the productopener service", default=os.environ.get("PRODUCT_OPENER_USERNAME"))
parser.add_argument("--productopener_password", help="Password for the productopener service", default=os.environ.get("PRODUCT_OPENER_PASSWORD"))
parser.add_argument("--productopener_host_header", help="Host header in requests to avoid extra redirects in the responses", default=os.environ.get("PRODUCT_OPENER_HOST_HEADER"))
parser.add_argument("--productopener_basic_auth_username", help="Basic auth username for the productopener service", default=os.environ.get("PRODUCT_OPENER_BASIC_AUTH_USERNAME"))
parser.add_argument("--productopener_basic_auth_password", help="Basic auth password for the productopener service", default=os.environ.get("PRODUCT_OPENER_BASIC_AUTH_PASSWORD"))
parser.add_argument("--monitoring_port", help="Port to serve monitoring on", default=os.environ.get("MONITORING_PORT"))
args = parser.parse_args()
serv = server.Server(
productopener_base_url=args.productopener_base_url,
productopener_host_header=args.productopener_host_header,
productopener_basic_auth_username=args.productopener_basic_auth_username,
productopener_basic_auth_password=args.productopener_basic_auth_password,
productopener_username=args.productopener_username,
productopener_password=args.productopener_password)
serv.logging.info(f"Service starting with productopener_base_url {args.productopener_base_url}")
app = FastAPI()
@app.get("/")
def stats():
return serv.stats
@app.on_event("startup")
def startup():
serv.start_update_loop()
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=int(args.monitoring_port), log_level="info")