From 454faec9e7c725767d6cdac12dbf8765489c2358 Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Wed, 29 Apr 2020 09:41:30 +0000 Subject: [PATCH] added OTRS export job and route --- inventory_provider/__init__.py | 7 +++++ inventory_provider/routes/otrs_jobs.py | 37 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 inventory_provider/routes/otrs_jobs.py diff --git a/inventory_provider/__init__.py b/inventory_provider/__init__.py index 6068a9d4..60d148c8 100644 --- a/inventory_provider/__init__.py +++ b/inventory_provider/__init__.py @@ -50,6 +50,13 @@ def create_app(): # end of IMS based routes + # OTRS routes + + from inventory_provider.routes import otrs_jobs + app.register_blueprint(otrs_jobs.routes, url_prefix='/otrs') + + # end of OTRS routes + from inventory_provider.routes import default app.register_blueprint(default.routes, url_prefix='/') diff --git a/inventory_provider/routes/otrs_jobs.py b/inventory_provider/routes/otrs_jobs.py new file mode 100644 index 00000000..6de4678d --- /dev/null +++ b/inventory_provider/routes/otrs_jobs.py @@ -0,0 +1,37 @@ +import html + +import requests +from flask import Blueprint, request, Response + +from inventory_provider.routes import common +from inventory_provider.tasks.ims_worker import OTRSFiles, export_data_for_otrs + +routes = Blueprint("otrs", __name__) + + +@routes.after_request +def after_request(resp): + return common.after_request(resp) + + +@routes.route('export') +def send_exports(): + files_value = request.args.get('files', None) + if files_value: + try: + files_value = int(files_value) + except ValueError: + return Response( + response=html.escape('<files> should be an Integer'), + status=requests.codes.bad_request, + mimetype="text/html") + if files_value < 0 or files_value > sum(OTRSFiles): + return Response( + response=html.escape(f'Bad value for <files> {files_value}'), + status=requests.codes.bad_request, + mimetype="text/html") + task = export_data_for_otrs.delay(files_value) + return Response( + response=task.id, + status=requests.codes.ok, + mimetype="text/html") -- GitLab