From dbb0a468ce846ddeed6af9ca4a41cb0c762786b4 Mon Sep 17 00:00:00 2001 From: saksham115 Date: Wed, 2 Aug 2017 17:47:53 +0530 Subject: Validation if no json object is found at the given URL JIRA: STORPERF-194 Change-Id: I65569b5fa9e927d11afe27d3f3117852d2eb682d Signed-off-by: saksham115 --- docker/storperf-reporting/src/app.py | 19 +++++++++++++++---- docker/storperf-reporting/src/templates/index.html | 7 +++++++ 2 files changed, 22 insertions(+), 4 deletions(-) (limited to 'docker') diff --git a/docker/storperf-reporting/src/app.py b/docker/storperf-reporting/src/app.py index c77f60f..62d4d33 100644 --- a/docker/storperf-reporting/src/app.py +++ b/docker/storperf-reporting/src/app.py @@ -8,7 +8,7 @@ ############################################################################## from flask import Flask, redirect, url_for, request, render_template, session -from flask import send_from_directory +from flask import send_from_directory, flash import urllib import json app = Flask(__name__) @@ -17,9 +17,13 @@ app.secret_key = 'storperf_graphing_module' @app.route('/reporting/success/') def success(): - data = urllib.urlopen(session["url"]).read() - data = json.loads(data) - return render_template('plot_tables.html', data=data) + try: + data = urllib.urlopen(session["url"]).read() + data = json.loads(data) + return render_template('plot_tables.html', data=data) + except Exception as e: + session['server_error'] = e.message + ' ' + repr(e.args) + return redirect(url_for('file_not_found')) @app.route('/reporting/url', methods=['POST', 'GET']) @@ -30,6 +34,13 @@ def url(): return redirect(url_for('success')) +@app.route('/reporting/file_not_found/') +def file_not_found(): + error = session.get('server_error') + flash("Server Error: " + error) + return redirect(url_for('index')) + + @app.route('/reporting/js/') def js(path): return send_from_directory('static/js/', path) diff --git a/docker/storperf-reporting/src/templates/index.html b/docker/storperf-reporting/src/templates/index.html index 35cea1a..ab4e539 100644 --- a/docker/storperf-reporting/src/templates/index.html +++ b/docker/storperf-reporting/src/templates/index.html @@ -26,6 +26,13 @@ + {% with messages = get_flashed_messages() %} {% if messages %} {% for message in messages %} + + {% endfor %} {% endif %} {% endwith %} -- cgit 1.2.3-korg