Skip to content
Snippets Groups Projects
Commit d8c8712e authored by Chris Hines's avatar Chris Hines
Browse files

remove the use of flaskrestful_Abort

parent e0f5ea8d
No related branches found
No related tags found
3 merge requests!77Revert "disable agressive kill and restart",!35Dev,!16Dev
Pipeline #7781 passed
...@@ -193,20 +193,23 @@ class JobStat(Resource): ...@@ -193,20 +193,23 @@ class JobStat(Resource):
sshsess = SSHSession.get_sshsession() sshsess = SSHSession.get_sshsession()
sshsess.refresh() sshsess.refresh()
except: except:
flask_restful.abort(500, message="Error relating to the ssh sessions") #flask_restful.abort(500, message="Error relating to the ssh sessions")
return apiabort(500, message="Error relating to the ssh sessions")
try: try:
cmd = json.loads(request.args.get('statcmd')) cmd = json.loads(request.args.get('statcmd'))
host = json.loads(request.args.get('host')) host = json.loads(request.args.get('host'))
user = json.loads(request.args.get('username')) user = json.loads(request.args.get('username'))
except (TypeError, KeyError) as e: except (TypeError, KeyError) as e:
flask_restful.abort(400, message="Missing required parameter {}".format(e)) #flask_restful.abort(400, message="Missing required parameter {}".format(e))
return apiabort(400, message="Missing required parameter {}".format(e))
try: try:
logger.debug('attempting ssh execute {} {} {}'.format(host,user,cmd)) logger.debug('attempting ssh execute {} {} {}'.format(host,user,cmd))
res = Ssh.execute(sshsess, host=host, user=user, cmd=cmd) res = Ssh.execute(sshsess, host=host, user=user, cmd=cmd)
if not (res['stderr'] == '' or res['stderr'] is None or res['stderr'] == b''): if not (res['stderr'] == '' or res['stderr'] is None or res['stderr'] == b''):
logger.error(res['stderr']) logger.error(res['stderr'])
flask_restful.abort(400, message=res['stderr'].decode()) #flask_restful.abort(400, message=res['stderr'].decode())
return apiabort(400, message=res['stderr'].decode())
try: try:
jobs = json.loads(res['stdout'].decode()) jobs = json.loads(res['stdout'].decode())
return jobs return jobs
...@@ -214,17 +217,21 @@ class JobStat(Resource): ...@@ -214,17 +217,21 @@ class JobStat(Resource):
import traceback import traceback
logger.error(e) logger.error(e)
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(400, message=e) #flask_restful.abort(400, message=e)
return apiabort(400, message=e)
except SshAgentException as e: except SshAgentException as e:
logger.error(e) logger.error(e)
flask_restful.abort(401, message="Identity error {}".format(e)) #flask_restful.abort(401, message="Identity error {}".format(e))
return apiabort(401, message="Identity error {}".format(e))
except SshCtrlException as e: except SshCtrlException as e:
flask_restful.abort(400,message="We're having difficultly contacting {}. We failed with the message: {}".format(host,e)) #flask_restful.abort(400,message="We're having difficultly contacting {}. We failed with the message: {}".format(host,e))
return apiabort(400,message="We're having difficultly contacting {}. We failed with the message: {}".format(host,e))
except Exception as e: except Exception as e:
import traceback import traceback
logger.error('JobStat.get: Exception {}'.format(e)) logger.error('JobStat.get: Exception {}'.format(e))
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="SSH failed in an unexpected way") #flask_restful.abort(500,message="SSH failed in an unexpected way")
return apiabort(500,message="SSH failed in an unexpected way")
class MkDir(Resource): class MkDir(Resource):
def post(self): def post(self):
...@@ -246,20 +253,26 @@ class MkDir(Resource): ...@@ -246,20 +253,26 @@ class MkDir(Resource):
Ssh.sftpmkdir(sshsess, host=params['identity']['site']['host'], Ssh.sftpmkdir(sshsess, host=params['identity']['site']['host'],
user=params['identity']['username'], path=params['path'],name=data['name'], sshport=sshport) user=params['identity']['username'], path=params['path'],name=data['name'], sshport=sshport)
except SftpPermissionException as e: except SftpPermissionException as e:
flask_restful.abort(403,message="You don't have permission to make a directory there") #return json.dumps({'message':"You don't have permission to make a directory there"}), 403
#flask_restful.abort(403,message="You don't have permission to make a directory there")
return apiabort(403,message="You don't have permission to make a directory there")
except SftpException as e: except SftpException as e:
flask_restful.abort(500,message="Something went wrong making that directory") #return json.dumps({'message':"Something went wrong making that directory"}), 500
#flask_restful.abort(500,message="Something went wrong making that directory")
return apiabort(500,message="Something went wrong making that directory")
except Exception as e: except Exception as e:
import traceback import traceback
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="Something went wrong creating that directory, probably a bug") #flask_restful.abort(500,message="Something went wrong creating that directory, probably a bug")
return apiabort(500,message="Something went wrong creating that directory, probably a bug")
return return
except Exception as e: except Exception as e:
import traceback import traceback
logger.error(e) logger.error(e)
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="mkdir failed in some unexpected way") #flask_restful.abort(500,message="mkdir failed in some unexpected way")
return apiabort(500,message="mkdir failed in some unexpected way")
class DirList(Resource): class DirList(Resource):
def get(self): def get(self):
...@@ -288,7 +301,9 @@ class DirList(Resource): ...@@ -288,7 +301,9 @@ class DirList(Resource):
try: try:
dirls = json.loads(res['stdout'].decode()) dirls = json.loads(res['stdout'].decode())
except: except:
flask_restful.abort(401,message="You don't have permission to view that directory") #return json.dumps({'message':"You don't have permission to view that directory"}), 401
#flask_restful.abort(401,message="You don't have permission to view that directory")
return apiabort(401,message="You don't have permission to view that directory")
else: else:
logger.debug('using ssh.sftpls') logger.debug('using ssh.sftpls')
...@@ -296,12 +311,14 @@ class DirList(Resource): ...@@ -296,12 +311,14 @@ class DirList(Resource):
user=params['identity']['username'], path=params['path'],changepath=params['cd'], sshport=sshport) user=params['identity']['username'], path=params['path'],changepath=params['cd'], sshport=sshport)
return dirls return dirls
except SshCtrlException as e: except SshCtrlException as e:
flask_restful.abort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e)) #flask_restful.abort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e))
return apiabort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e))
except Exception as e: except Exception as e:
import traceback import traceback
logger.error(e) logger.error(e)
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="dirlist failed in some unexpected way") #flask_restful.abort(500,message="dirlist failed in some unexpected way")
return apiabort(500,message="dirlist failed in some unexpected way")
class JobCancel(Resource): class JobCancel(Resource):
""" """
...@@ -318,15 +335,21 @@ class JobCancel(Resource): ...@@ -318,15 +335,21 @@ class JobCancel(Resource):
res = Ssh.execute(sshsess, host=params['identity']['site']['host'], user=params['identity']['username'], res = Ssh.execute(sshsess, host=params['identity']['site']['host'], user=params['identity']['username'],
cmd=params['interface']['cancelcmd'].format(jobid=jobid)) cmd=params['interface']['cancelcmd'].format(jobid=jobid))
if not (res['stderr'] == '' or res['stderr'] is None or res['stderr'] == b''): if not (res['stderr'] == '' or res['stderr'] is None or res['stderr'] == b''):
flask_restful.abort(400, message=res['stderr'].decode()) #return json.dumps({'message':res['stderr'].decode()}), 400
#flask_restful.abort(400, message=res['stderr'].decode())
return apiabort(400, message=res['stderr'].decode())
return res['stdout'].decode() return res['stdout'].decode()
except SshCtrlException as e: except SshCtrlException as e:
flask_restful.abort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e)) #return json.dumps({'message':"We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e)}), 400
#flask_restful.abort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e))
return apiabort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e))
except Exception as e: except Exception as e:
import traceback import traceback
logger.error(e) logger.error(e)
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="jobcancel failed in some unexpected way") #return json.dumps({'message':"jobcancel failed in some unexpected way"}), 500
#flask_restful.abort(500,message="jobcancel failed in some unexpected way")
return apiabort(500,message="jobcancel failed in some unexpected way")
...@@ -356,23 +379,31 @@ class JobSubmit(Resource): ...@@ -356,23 +379,31 @@ class JobSubmit(Resource):
logger.error('body') logger.error('body')
logger.error(request.data) logger.error(request.data)
logger.error('end body') logger.error('end body')
flask_restful.abort(400, message='Incomplete job information was passed to the backend.') #return json.dumps({'message':'Incomplete job information was passed to the backend.'}), 400
#flask_restful.abort(400, message='Incomplete job information was passed to the backend.')
return apiabort(400, message='Incomplete job information was passed to the backend.')
try: try:
res = Ssh.execute(sshsess, host=params['identity']['site']['host'], user=params['identity']['username'], res = Ssh.execute(sshsess, host=params['identity']['site']['host'], user=params['identity']['username'],
cmd=params['interface']['submitcmd'], stdin=script) cmd=params['interface']['submitcmd'], stdin=script)
except SshCtrlException as e: except SshCtrlException as e:
flask_restful.abort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e)) #return json.dumps({'message':"We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e)}), 400
#flask_restful.abort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e))
return apiabort(400,message="We're having difficultly contacting {}. We failed with the message {}".format(params['identity']['site']['host'],e))
if not (res['stderr'] == '' or res['stderr'] is None or res['stderr'] == b''): if not (res['stderr'] == '' or res['stderr'] is None or res['stderr'] == b''):
logger.debug('failed to submit job') logger.debug('failed to submit job')
logger.debug(res['stderr']) logger.debug(res['stderr'])
flask_restful.abort(400, message=res['stderr'].decode()) #return json.dumps({'message':res['stderr'].decode()}), 400
#flask_restful.abort(400, message=res['stderr'].decode())
return apiabort(400, message=res['stderr'].decode())
return res['stdout'].decode() return res['stdout'].decode()
except Exception as e: except Exception as e:
import traceback import traceback
logger.error(e) logger.error(e)
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="JobSubmission failed in some unexpected way") #return json.dumps({'message':"JobSubmission failed in some unexpected way"}), 500
#flask_restful.abort(500,message="JobSubmission failed in some unexpected way")
return apiabort(500,message="JobSubmission failed in some unexpected way")
def gen_authtok(): def gen_authtok():
""" """
...@@ -386,6 +417,9 @@ def gen_authtok(): ...@@ -386,6 +417,9 @@ def gen_authtok():
return ''.join(random.SystemRandom().choice(string.ascii_uppercase + return ''.join(random.SystemRandom().choice(string.ascii_uppercase +
string.digits) for _ in range(16)) string.digits) for _ in range(16))
def apiabort(code, message):
return json.dumps({'message':message}), code
class AppUrl(Resource): class AppUrl(Resource):
def get(self): def get(self):
import logging import logging
...@@ -402,7 +436,8 @@ class AppUrl(Resource): ...@@ -402,7 +436,8 @@ class AppUrl(Resource):
import traceback import traceback
logger.error(e) logger.error(e)
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="AppUrl failed in some unexpected way") #flask_restful.abort(500,message="AppUrl failed in some unexpected way")
return apiabort(500,message="AppUrl failed in some unexpected way")
class AppInstance(Resource): class AppInstance(Resource):
def get(self, username, loginhost, batchhost, jobid): def get(self, username, loginhost, batchhost, jobid):
...@@ -421,7 +456,8 @@ class AppInstance(Resource): ...@@ -421,7 +456,8 @@ class AppInstance(Resource):
res = Ssh.execute(sshsess, host=batchhost, bastion=loginhost, user=username, cmd=paramscmd) res = Ssh.execute(sshsess, host=batchhost, bastion=loginhost, user=username, cmd=paramscmd)
except: except:
message = "The server couldn't execute to {} to get the necessary info".format(batchhost) message = "The server couldn't execute to {} to get the necessary info".format(batchhost)
flask_restful.abort(400, message=message) #flask_restful.abort(400, message=message)
return apiabort(400, message=message)
import traceback import traceback
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
try: try:
...@@ -432,22 +468,26 @@ class AppInstance(Resource): ...@@ -432,22 +468,26 @@ class AppInstance(Resource):
except json.decoder.JSONDecodeError as e: except json.decoder.JSONDecodeError as e:
logger.error(res['stderr']+res['stdout']) logger.error(res['stderr']+res['stdout'])
message="I'm having trouble using ssh to find out about that application" message="I'm having trouble using ssh to find out about that application"
flask_restful.abort(400, message=message) #flask_restful.abort(400, message=message)
return apiabort(400, message=message)
#raise AppParamsException(res['stderr']+res['stdout']) #raise AppParamsException(res['stderr']+res['stdout'])
if len(res['stderr']) > 0: if len(res['stderr']) > 0:
logger.error(res['stderr']+res['stdout']) logger.error(res['stderr']+res['stdout'])
flask_restful.abort(400, message="The command {} on {} didn't work".format(paramscmd,batchhost)) #flask_restful.abort(400, message="The command {} on {} didn't work".format(paramscmd,batchhost))
return apiabort(400, message="The command {} on {} didn't work".format(paramscmd,batchhost))
#raise AppParamsException(res['stderr']) #raise AppParamsException(res['stderr'])
if 'error' in data: if 'error' in data:
raise AppParamsException(data['error']) raise AppParamsException(data['error'])
if not (res['stderr'] == '' or res['stderr'] is None or res['stderr'] == b''): if not (res['stderr'] == '' or res['stderr'] is None or res['stderr'] == b''):
flask_restful.abort(400, message=res['stderr'].decode()) #flask_restful.abort(400, message=res['stderr'].decode())
return apiabort(400, message=res['stderr'].decode())
return data return data
except Exception as e: except Exception as e:
import traceback import traceback
logger.error(e) logger.error(e)
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="AppUrl failed in some unexpected way") #flask_restful.abort(500,message="AppUrl failed in some unexpected way")
return apiabort(500,message="AppUrl failed in some unexpected way")
class CreateTunnel(Resource): class CreateTunnel(Resource):
@staticmethod @staticmethod
...@@ -502,7 +542,8 @@ class CreateTunnel(Resource): ...@@ -502,7 +542,8 @@ class CreateTunnel(Resource):
import traceback import traceback
logger.error(e) logger.error(e)
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
flask_restful.abort(500,message="CreateTunnel failed in some unexpected way") #flask_restful.abort(500,message="CreateTunnel failed in some unexpected way")
return apiabort(500,message="CreateTunnel failed in some unexpected way")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment