implement maintenance mode env var
This commit is contained in:
parent
9285a1ea32
commit
635983f347
|
@ -300,6 +300,18 @@ a {
|
||||||
}
|
}
|
||||||
/* about end */
|
/* about end */
|
||||||
|
|
||||||
|
/* maintenance start */
|
||||||
|
.maintenance-wrap {
|
||||||
|
background-color: rgb(219, 228, 209);
|
||||||
|
min-height: 100vh;
|
||||||
|
display: grid;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
/* maintenance end */
|
||||||
|
|
||||||
/* responsiv start */
|
/* responsiv start */
|
||||||
@media screen and (max-width: 1000px) {
|
@media screen and (max-width: 1000px) {
|
||||||
.content,
|
.content,
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/style.css') }}">
|
||||||
|
<title>AQI - Under Maintenance</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="maintenance-wrap">
|
||||||
|
<div>
|
||||||
|
<h1>Under Maintenance</h1>
|
||||||
|
<p>Air Quality is taking a break and will be back soon.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
55
web/views.py
55
web/views.py
|
@ -21,6 +21,24 @@ matplotlib.use('Agg')
|
||||||
# start up
|
# start up
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
# maintenance mode
|
||||||
|
is_maintenance_mode = bool(os.environ.get("MAINTENANCE"))
|
||||||
|
@app.before_request
|
||||||
|
def check_for_maintenance():
|
||||||
|
print(request.path)
|
||||||
|
ALLOW = ["/static/css/style.css", "/static/favicon.ico", "/static/font/Rubik-Bold.ttf", "/static/font/Rubik-Regular.ttf"]
|
||||||
|
if is_maintenance_mode and request.path not in ALLOW:
|
||||||
|
# return redirect(url_for('maintenance'))
|
||||||
|
# Or alternatively, dont redirect
|
||||||
|
# return 'Sorry, off for maintenance!', 503
|
||||||
|
return render_template('maintenance.html'), 503
|
||||||
|
|
||||||
|
|
||||||
|
# @app.route('/maintenance')
|
||||||
|
# def maintenance():
|
||||||
|
# return 'Sorry, off for maintenance!', 503
|
||||||
|
|
||||||
|
|
||||||
CONFIG = get_config()
|
CONFIG = get_config()
|
||||||
auth = HTTPBasicAuth()
|
auth = HTTPBasicAuth()
|
||||||
aqi_user = CONFIG['aqi_monitor']
|
aqi_user = CONFIG['aqi_monitor']
|
||||||
|
@ -28,25 +46,26 @@ USER_DATA = {
|
||||||
aqi_user['authUsername']: aqi_user['authPassword']
|
aqi_user['authUsername']: aqi_user['authPassword']
|
||||||
}
|
}
|
||||||
|
|
||||||
# initial export
|
if not is_maintenance_mode:
|
||||||
print('initial export')
|
# initial export
|
||||||
current_graph()
|
print('initial export')
|
||||||
nightly_graph()
|
current_graph()
|
||||||
monthly_graph()
|
nightly_graph()
|
||||||
|
monthly_graph()
|
||||||
|
|
||||||
# start scheduler
|
# start scheduler
|
||||||
timezone = os.environ.get("TZ")
|
timezone = os.environ.get("TZ")
|
||||||
scheduler = BackgroundScheduler(timezone=timezone)
|
scheduler = BackgroundScheduler(timezone=timezone)
|
||||||
scheduler.add_job(
|
scheduler.add_job(
|
||||||
current_graph, trigger="cron", minute='*/5', name='current_graph'
|
current_graph, trigger="cron", minute='*/5', name='current_graph'
|
||||||
)
|
)
|
||||||
scheduler.add_job(
|
scheduler.add_job(
|
||||||
nightly_graph, trigger="cron", day='*', hour='1', minute='1', name='night'
|
nightly_graph, trigger="cron", day='*', hour='1', minute='1', name='night'
|
||||||
)
|
)
|
||||||
scheduler.add_job(
|
scheduler.add_job(
|
||||||
monthly_graph, trigger="cron", day='*', hour='1', minute='2', name='month'
|
monthly_graph, trigger="cron", day='*', hour='1', minute='2', name='month'
|
||||||
)
|
)
|
||||||
scheduler.start()
|
scheduler.start()
|
||||||
|
|
||||||
|
|
||||||
@auth.verify_password
|
@auth.verify_password
|
||||||
|
|
Loading…
Reference in New Issue