From 727941edd3728d6ac95aa77aa7bb20f5228cca04 Mon Sep 17 00:00:00 2001 From: William Peebles Date: Tue, 29 Nov 2022 22:23:01 -0500 Subject: [PATCH] Error handling and custom error pages --- app/app.py | 20 +++++++++++++++++++- app/templates/errors/403.html | 22 ++++++++++++++++++++++ app/templates/errors/404.html | 22 ++++++++++++++++++++++ app/templates/errors/500.html | 22 ++++++++++++++++++++++ 4 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 app/templates/errors/403.html create mode 100644 app/templates/errors/404.html create mode 100644 app/templates/errors/500.html diff --git a/app/app.py b/app/app.py index 6c9f3b8..0da03e0 100644 --- a/app/app.py +++ b/app/app.py @@ -46,7 +46,25 @@ def load_user(user_id): # Context processor injects current version and commit @app.context_processor def injectVerCommit(): - return dict(currVersion=currVersion, currCommit=currCommit) + return dict(currVersion=currVersion, currCommit=currCommit, datetime=datetime, ZoneInfo=ZoneInfo) + +# Error handling +# Pass env variables for debugging in prod +NODE_NAME = os.environ['NODE_NAME'] +POD_NAME = os.environ['POD_NAME'] + +# Error Routes +@app.errorhandler(404) +def notFound(e): + return render_template('errors/404.html', NODE_NAME=NODE_NAME, POD_NAME=POD_NAME), 404 + +@app.errorhandler(403) +def forbidden(e): + return render_template('errors/403.html', NODE_NAME=NODE_NAME, POD_NAME=POD_NAME), 403 + +@app.errorhandler(500) +def ISEerror(e): + return render_template('errors/500.html', NODE_NAME=NODE_NAME, POD_NAME=POD_NAME), 500 # Index route @app.route('/') diff --git a/app/templates/errors/403.html b/app/templates/errors/403.html new file mode 100644 index 0000000..5b703b1 --- /dev/null +++ b/app/templates/errors/403.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} +{% set currDay = datetime.now() %} +{% set currTime = currDay.strftime('%I:%M %p') %} +{% set currDay = currDay.strftime('%m-%d-%Y') %} + +{% block content %} +

{% block title %} Error 403 {% endblock %}

+
+
+

Forbidden

+
+ +
+ Date: {{ currDay }}
+ Time {{ currTime }} (UTC)

+
+
+ Node: {{ NODE_NAME }}
+ Pod: {{ POD_NAME }} +
+
+{% endblock %} \ No newline at end of file diff --git a/app/templates/errors/404.html b/app/templates/errors/404.html new file mode 100644 index 0000000..a6fa5f8 --- /dev/null +++ b/app/templates/errors/404.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} +{% set currDay = datetime.now() %} +{% set currTime = currDay.strftime('%I:%M %p') %} +{% set currDay = currDay.strftime('%m-%d-%Y') %} + +{% block content %} +

{% block title %} Error 404 {% endblock %}

+
+
+

Page Not Found

+
+ +
+ Date: {{ currDay }}
+ Time {{ currTime }} (UTC)

+
+
+ Node: {{ NODE_NAME }}
+ Pod: {{ POD_NAME }} +
+
+{% endblock %} \ No newline at end of file diff --git a/app/templates/errors/500.html b/app/templates/errors/500.html new file mode 100644 index 0000000..690f0d3 --- /dev/null +++ b/app/templates/errors/500.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} +{% set currDay = datetime.now() %} +{% set currTime = currDay.strftime('%I:%M %p') %} +{% set currDay = currDay.strftime('%m-%d-%Y') %} + +{% block content %} +

{% block title %} Error 500 {% endblock %}

+
+
+

Internal Server Error

+
+ +
+ Date: {{ currDay }}
+ Time {{ currTime }} (UTC)

+
+
+ Node: {{ NODE_NAME }}
+ Pod: {{ POD_NAME }} +
+
+{% endblock %} \ No newline at end of file