From ad1f596aac4ac3d01c29ffff645e8f4ffbb4b8b7 Mon Sep 17 00:00:00 2001 From: Chris Hines <chris.hines@monash.edu> Date: Tue, 5 Feb 2019 14:33:59 +1100 Subject: [PATCH] change the list of parameters to /stat to make it shorter and more human readable --- tes/apiendpoints.py | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/tes/apiendpoints.py b/tes/apiendpoints.py index 6e8b429..71b1740 100644 --- a/tes/apiendpoints.py +++ b/tes/apiendpoints.py @@ -204,28 +204,17 @@ class JobStat(Resource): """ import logging logger = logging.getLogger() - try: - params = get_conn_params() - except: - flask_restful.abort(400, "connection parameters not correctly defined") try: sshsess = SSHSession.get_sshsession() sshsess.refresh() except: - flask_restful.abort(500, "Error relating to the ssh sessions") - try: - host = params['identity']['site']['host'] - except (TypeError, KeyError) as e: - flask_restful.abort(400, message="stat: definition of login host incomplete") + flask_restful.abort(500, message="Error relating to the ssh sessions") try: - user = params['identity']['username'] + cmd = json.loads(request.args.get('statcmd')) + host = json.loads(request.args.get('host')) + user = json.loads(request.args.get('username')) except (TypeError, KeyError) as e: - flask_restful.abort(400, message="stat: definition of username incomplete") - try: - cmd = params['interface']['statcmd'] - except (TypeError, KeyError) as e: - flask_restful.abort(400, message="stat: definition of batch interface incomplete") - logger.debug('ssh sess socket is {}'.format(sshsess.socket)) + flask_restful.abort(400, message="Missing required parameter {}".format(e)) try: logger.debug('attempting ssh execute {} {} {}'.format(host,user,cmd)) @@ -239,10 +228,6 @@ class JobStat(Resource): try: jobs = json.loads(res['stdout'].decode()) - # Attach the identity information to the job before returning it - for j in jobs: - j['identity'] = params['identity'] - return jobs except Exception as e: import traceback @@ -281,6 +266,9 @@ class MkDir(Resource): class DirList(Resource): def get(self): + import logging + logger = logging.getLogger() + params = get_conn_params() sshsess = SSHSession.get_sshsession() site = params['identity']['site'] @@ -295,6 +283,7 @@ class DirList(Resource): if cd == "": cd = "." if 'lscmd' in site and site['lscmd'] is not None and site['lscmd'] is not "": + logger.debug('using ssh.execute with lscmd') res = Ssh.execute(sshsess, host=params['identity']['site']['host'], user=params['identity']['username'], sshport=sshport, cmd="{} {} {}".format(site['lscmd'],path,cd)) @@ -303,6 +292,7 @@ class DirList(Resource): except: flask_restful.abort(404,message="You don't have permission to view that directory") else: + logger.debug('using ssh.sftpls') dirls = Ssh.sftpls(sshsess, host=params['identity']['site']['host'], user=params['identity']['username'], path=params['path'],changepath=params['cd'], sshport=sshport) @@ -340,7 +330,16 @@ class JobSubmit(Resource): logger.debug(data) try: script = data['app']['startscript'].format(**data) - except: + except Exception as e: + import traceback + logger.error(e) + logger.error(traceback.format_exc()) + logger.error('formating data') + logger.error(data) + logger.error('end formating data') + logger.error('body') + logger.error(request.data) + logger.error('end body') flask_restful.abort(400, message='Incomplete job information was passed to the backend.') logger.debug('script formated to {}'.format(script)) -- GitLab