From 63fe6ea07903102ffd25571557769275dbdaf45a Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Fri, 17 Feb 2017 08:49:33 +0000 Subject: [PATCH] Task #10339: get parset via url --- .../static/app/controllers/gridcontroller.js | 19 +++++++++++++ .../lib/webservice.py | 27 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js index f17d991ba72..8793fe228c7 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js @@ -788,6 +788,25 @@ gridControllerMod.directive('contextMenu', ['$document', '$window', function($do }); } + var liContent = selected_tasks.length > 0 ? '<li><a href="#">Show parset</a></li>' : '<li><a href="#" style="color:#aaaaaa">Show parset</a></li>' + var liElement = angular.element(liContent); + ulElement.append(liElement); + if(selected_tasks.length > 0) { + liElement.on('click', function() { + closeContextMenu(); + + var window_cntr = 0; + for(var selected_task of selected_tasks) { + var url = 'rest/tasks/otdb/' + selected_task.otdb_id + '/parset'; + setTimeout(function(url_arg) { + $window.open(url_arg, '_blank'); + }, window_cntr*750, url); + window_cntr += 1; + } + + }); + } + var liContent = completed_selected_cep4_tasks.length > 0 ? '<li><a href="#">Show disk usage</a></li>' : '<li><a href="#" style="color:#aaaaaa">Show disk usage</a></li>' var liElement = angular.element(liContent); ulElement.append(liElement); diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py index 90d85e8b748..2c3d51cd89c 100755 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py @@ -510,6 +510,31 @@ def copyTask(task_id): return jsonify({'copied':False}) +@app.route('/rest/tasks/<int:task_id>/parset', methods=['GET']) +@gzipped +def getParset(task_id): + try: + task = radb().getTask(task_id) + + if not task: + abort(404) + + return getParsetByOTDBId(task['otdb_id']) + except Exception as e: + abort(404) + abort(404) + +@app.route('/rest/tasks/otdb/<int:otdb_id>/parset', methods=['GET']) +@gzipped +def getParsetByOTDBId(otdb_id): + try: + logger.info('getParsetByOTDBId(%s)', otdb_id) + parset = otdbrpc.taskGetSpecification(otdb_id=otdb_id)['specification'] + return '\n'.join(['%s=%s' % (k,parset[k]) for k in sorted(parset.keys())]), 200, {'Content-Type': 'text/plain; charset=utf-8'} + except Exception as e: + abort(404) + abort(404) + @app.route('/rest/tasks/<int:task_id>/resourceclaims') @gzipped def taskResourceClaims(task_id): @@ -741,6 +766,8 @@ def getTaskHtml(task_id): html += '<p><a href="/tasks/%s/log.html">%s log</a></p> ' % (task['id'], task['type']) + html += '<p><a href="/rest/tasks/%s/parset">view %s parset</a></p> ' % (task['id'], task['type']) + props = sorted(task.keys()) html += '<tr><th>key</th><th>value</th></tr>\n' -- GitLab