added exception handling for unknown hostname

This commit is contained in:
Navan Chauhan 2020-09-24 16:57:10 +05:30
parent a3e3511e3b
commit 0ff2f3189e
3 changed files with 12 additions and 2 deletions

5
api.py
View File

@ -19,13 +19,16 @@ def gen_word(N, min_N_dig, min_N_low):
dbFailing = False dbFailing = False
import mysql.connector as con import mysql.connector as con
from mysql.connector.errors import InterfaceError from mysql.connector.errors import InterfaceError, DatabaseError
try: try:
mycon = con.connect(host=flask_app.config['DB_HOST'],user=flask_app.config['DB_USER'],password=flask_app.config['DB_PASSWORD'],port=flask_app.config['DB_PORT'],database=flask_app.config['DB_NAME']) mycon = con.connect(host=flask_app.config['DB_HOST'],user=flask_app.config['DB_USER'],password=flask_app.config['DB_PASSWORD'],port=flask_app.config['DB_PORT'],database=flask_app.config['DB_NAME'])
mycursor = mycon.cursor() mycursor = mycon.cursor()
except InterfaceError: except InterfaceError:
print("Could not connect to the database!") print("Could not connect to the database!")
dbFailing = True dbFailing = True
except DatabaseError:
print("Unknown Host")
dbFailing = True
""" """
@flask_app.route("/") @flask_app.route("/")

View File

@ -9,6 +9,7 @@ PL01 = Failed to fetch the PDB, please check the PDB Code
DB00 = Failed to connect to the database. DB00 = Failed to connect to the database.
DB01 = This Job ID does not exist 😠. If you think this is an error, please contact us. DB01 = This Job ID does not exist 😠. If you think this is an error, please contact us.
DB02 = Unknown Hostname, failed to connect to the database.
CW01 = Looks like an invalid PDB ID CW01 = Looks like an invalid PDB ID

View File

@ -15,7 +15,7 @@ import json
import subprocess import subprocess
import mysql.connector as con import mysql.connector as con
from mysql.connector.errors import InterfaceError from mysql.connector.errors import InterfaceError,DatabaseError
import requests import requests
@ -134,6 +134,8 @@ def status():
mycursor = mycon.cursor() mycursor = mycon.cursor()
except InterfaceError: except InterfaceError:
return render_template('error.html',code="DB00",description=errors['DB00']) return render_template('error.html',code="DB00",description=errors['DB00'])
except DatabaseError:
return render_template('error.html',code="DB02",description=errors['DB02'])
sqlQuery = 'select id, protein_name, ligand_name, date, description, done, pdb from curieweb where id="%s"' % (jobID) sqlQuery = 'select id, protein_name, ligand_name, date, description, done, pdb from curieweb where id="%s"' % (jobID)
mycursor.execute(sqlQuery) mycursor.execute(sqlQuery)
records = mycursor.fetchall() records = mycursor.fetchall()
@ -309,6 +311,8 @@ def dock_manual():
mycursor = mycon.cursor() mycursor = mycon.cursor()
except InterfaceError: except InterfaceError:
return render_template("error.html",code="DB00",description=errors['DB00']) return render_template("error.html",code="DB00",description=errors['DB00'])
except DatabaseError:
return render_template("error.html",code="DB02",description=errors['DB02'])
import tempfile import tempfile
with tempfile.TemporaryDirectory() as directory: with tempfile.TemporaryDirectory() as directory:
@ -361,6 +365,8 @@ def dock_automatic():
mycursor = mycon.cursor() mycursor = mycon.cursor()
except InterfaceError: except InterfaceError:
return render_template('error.html',code="DB00",description=errors['DB00']) return render_template('error.html',code="DB00",description=errors['DB00'])
except DatabaseError:
return render_template("error.html",code="DB02",description=errors['DB02'])
sqlQuery = "insert into curieweb (id, email, pdb, ligand_smile, ligand_name, date, description) values (%s,%s,%s,%s,%s,CURDATE(),%s) " sqlQuery = "insert into curieweb (id, email, pdb, ligand_smile, ligand_name, date, description) values (%s,%s,%s,%s,%s,CURDATE(),%s) "
jobID = gen_word(16, 1, 1) jobID = gen_word(16, 1, 1)