From c10b5cf9dc72f3103431f427950147efd2bcd960 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Thu, 9 Jun 2016 14:23:28 +0000 Subject: [PATCH] Task #9351: rest url to delete data for task --- .../lib/webservice.py | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py index 221c4a04064..d6587d2a064 100755 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py @@ -50,6 +50,9 @@ from lofar.sas.resourceassignment.resourceassignmentservice.config import DEFAUL from lofar.mom.momqueryservice.momqueryrpc import MoMQueryRPC from lofar.mom.momqueryservice.config import DEFAULT_MOMQUERY_BUSNAME, DEFAULT_MOMQUERY_SERVICENAME from lofar.sas.resourceassignment.resourceassignmenteditor.mom import updateTaskMomDetails +from lofar.sas.datamanagement.cleanup.rpc import CleanupRPC +from lofar.sas.datamanagement.cleanup.config import DEFAULT_BUSNAME as DEFAULT_CLEANUP_BUSNAME +from lofar.sas.datamanagement.cleanup.config import DEFAULT_SERVICENAME as DEFAULT_CLEANUP_SERVICENAME #from lofar.sas.resourceassignment.resourceassigner. import updateTaskMomDetails logger = logging.getLogger(__name__) @@ -93,6 +96,7 @@ app.json_encoder = CustomJSONEncoder rarpc = None momrpc = None +curpc = None radbchangeshandler = None @app.route('/') @@ -236,6 +240,20 @@ def putTask(task_id): abort(404) abort(406) +@app.route('/rest/tasks/<int:task_id>/cleanup', methods=['DELETE']) +def cleanupTaskData(task_id): + try: + task = rarpc.getTask(task_id) + + if not task: + abort(404, 'No such task (id=%s)' % task_id) + + result = curpc.removeTaskData(task['otdb_id']) + logger.info(result) + return jsonify(result) + except Exception as e: + abort(500) + @app.route('/rest/tasks/<int:task_id>/resourceclaims') def taskResourceClaims(task_id): return jsonify({'taskResourceClaims': rarpc.getResourceClaims(task_id=task_id, include_properties=True)}) @@ -323,6 +341,8 @@ def main(): parser.add_option('--radb_notification_subjects', dest='radb_notification_subjects', type='string', default=DEFAULT_RADB_CHANGES_SUBJECTS, help='Subject(s) to listen for on the radb notification bus exchange on the qpid broker, default: %default') parser.add_option('--mom_busname', dest='mom_busname', type='string', default=DEFAULT_MOMQUERY_BUSNAME, help='Name of the bus exchange on the qpid broker on which the momservice listens, default: %default') parser.add_option('--mom_servicename', dest='mom_servicename', type='string', default=DEFAULT_MOMQUERY_SERVICENAME, help='Name of the momservice, default: %default') + parser.add_option('--cleanup_busname', dest='cleanup_busname', type='string', default=DEFAULT_CLEANUP_BUSNAME, help='Name of the bus exchange on the qpid broker on which the cleanupservice listens, default: %default') + parser.add_option('--cleanup_servicename', dest='cleanup_servicename', type='string', default=DEFAULT_CLEANUP_SERVICENAME, help='Name of the cleanupservice, default: %default') parser.add_option('-V', '--verbose', dest='verbose', action='store_true', help='verbose logging') (options, args) = parser.parse_args() @@ -330,13 +350,15 @@ def main(): level=logging.DEBUG if options.verbose else logging.INFO) global rarpc - rarpc = RARPC(busname=DEFAULT_RADB_BUSNAME, servicename=DEFAULT_RADB_SERVICENAME, broker=options.broker) + rarpc = RARPC(busname=options.radb_busname, servicename=options.radb_servicename, broker=options.broker) global momrpc - momrpc = MoMQueryRPC(busname=DEFAULT_MOMQUERY_BUSNAME, servicename=DEFAULT_MOMQUERY_SERVICENAME, timeout=2.5, broker=options.broker) + momrpc = MoMQueryRPC(busname=options.mom_busname, servicename=options.mom_servicename, timeout=2.5, broker=options.broker) + global curpc + curpc = CleanupRPC(busname=options.cleanup_busname, servicename=options.cleanup_servicename, broker=options.broker) global radbchangeshandler - radbchangeshandler = RADBChangesHandler(DEFAULT_RADB_CHANGES_BUSNAME, broker=options.broker, momrpc=momrpc) + radbchangeshandler = RADBChangesHandler(options.radb_notification_busname, broker=options.broker, momrpc=momrpc) - with radbchangeshandler, rarpc, momrpc: + with radbchangeshandler, rarpc, curpc, momrpc: '''Start the webserver''' app.run(debug=options.verbose, threaded=True, host='0.0.0.0', port=options.port) -- GitLab