From 3d000c87eafa2bcd88e38367be100502bfedb441 Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Wed, 27 Jan 2021 13:47:49 +0000 Subject: [PATCH] added routes for ims_jobs --- inventory_provider/routes/ims_jobs.py | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 inventory_provider/routes/ims_jobs.py diff --git a/inventory_provider/routes/ims_jobs.py b/inventory_provider/routes/ims_jobs.py new file mode 100644 index 00000000..c57b686a --- /dev/null +++ b/inventory_provider/routes/ims_jobs.py @@ -0,0 +1,38 @@ +import json +import logging + +from distutils.util import strtobool +from flask import Blueprint, current_app, jsonify, Response, request + +from inventory_provider.tasks import monitor +from inventory_provider.tasks import ims_worker +from inventory_provider.routes import common +from inventory_provider.tasks.common import get_current_redis, get_latch + +routes = Blueprint("ims-inventory-data-job-routes", __name__) + + +@routes.route('/update', methods=['GET', 'POST']) +@common.require_accepts_json +def update_from_ims(): + force = request.args.get('force', default='false', type=str) + try: + force = strtobool(force) + except ValueError: + force = False + + config = current_app.config['INVENTORY_PROVIDER_CONFIG'] + r = get_current_redis(config) + + if not force: + latch = get_latch(r) + if latch and latch['pending']: + return Response( + response='an update is already in progress', + status=503, + mimetype="text/html") + + phase2_task_id = ims_worker.launch_refresh_cache_all(config) + + r.set('classifier-cache:update-task-id', phase2_task_id.encode('utf-8')) + return jsonify({'task id': phase2_task_id}) -- GitLab