Validation if no json object is found at the given URL 25/38625/2
authorsaksham115 <saksham.agrawal@research.iiit.ac.in>
Wed, 2 Aug 2017 12:17:53 +0000 (17:47 +0530)
committerSaksham Agrawal <saksham.agrawal@research.iiit.ac.in>
Mon, 14 Aug 2017 02:31:52 +0000 (02:31 +0000)
JIRA: STORPERF-194

Change-Id: I65569b5fa9e927d11afe27d3f3117852d2eb682d
Signed-off-by: saksham115 <saksham.agrawal@research.iiit.ac.in>
docker/storperf-reporting/src/app.py
docker/storperf-reporting/src/templates/index.html

index c77f60f..62d4d33 100644 (file)
@@ -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/<path:path>')
 def js(path):
     return send_from_directory('static/js/', path)
index 35cea1a..ab4e539 100644 (file)
                     </div>
                 </form>
             </div>
+            {% with messages = get_flashed_messages() %} {% if messages %} {% for message in messages %}
+            <div class="alert alert-danger alert-dismissible" role="alert">
+                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
+                </button>
+                {{ message }}
+            </div>
+            {% endfor %} {% endif %} {% endwith %}
         </div>
     </div>
 </body>