From 4c29640fc09ccc79e991b5243b4875eb7ccab4ba Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Mon, 15 Jun 2020 14:52:29 +0000 Subject: [PATCH] removed call of otrs-exports as a celery task; made the rsync call quiet --- inventory_provider/routes/ims_otrs.py | 4 ++-- inventory_provider/tasks/ims_worker.py | 6 +++++- test/test_ims_worker.py | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/inventory_provider/routes/ims_otrs.py b/inventory_provider/routes/ims_otrs.py index b03fec11..dbe666f4 100644 --- a/inventory_provider/routes/ims_otrs.py +++ b/inventory_provider/routes/ims_otrs.py @@ -63,9 +63,9 @@ def send_exports(): response=html.escape(f'Bad value for <files> {files_value}'), status=requests.codes.bad_request, mimetype="text/html") - task = export_data_for_otrs.delay( + debug_uuid = export_data_for_otrs( files_to_export=files_value, export_duplicates=duplicates) return Response( - response=task.id, + response=f'Exports sent, search logs for {debug_uuid} for details', status=requests.codes.ok, mimetype="text/html") diff --git a/inventory_provider/tasks/ims_worker.py b/inventory_provider/tasks/ims_worker.py index 26f7f09d..b7c2e85c 100644 --- a/inventory_provider/tasks/ims_worker.py +++ b/inventory_provider/tasks/ims_worker.py @@ -6,6 +6,7 @@ import tempfile from datetime import datetime from enum import IntFlag from pathlib import Path +from uuid import uuid4 from inventory_provider.db import ims_data from inventory_provider.db.ims import IMS @@ -48,6 +49,8 @@ class OTRSFiles(IntFlag): @app.task(base=InventoryTask, bind=True, name='export_data_for_otrs') @log_task_entry_and_exit def export_data_for_otrs(self, files_to_export=None, export_duplicates=False): + debug_uuid = uuid4() + logger.debug(f'debug uuid: {debug_uuid}') if files_to_export: files_to_export = OTRSFiles(files_to_export) else: @@ -56,7 +59,7 @@ def export_data_for_otrs(self, files_to_export=None, export_duplicates=False): ims_config = InventoryTask.config["ims"] otrs_config = InventoryTask.config["otrs-export"] - command_template = 'rsync -aP --rsh="ssh -l {user} -p 22 -i {key_file} -o \'UserKnownHostsFile {known_hosts}\'" {source_dir}/* {destination}' # noqa + command_template = 'rsync -aPq --rsh="ssh -l {user} -p 22 -i {key_file} -o \'UserKnownHostsFile {known_hosts}\'" {source_dir}/* {destination}' # noqa with tempfile.TemporaryDirectory() as temp_dir: temp_path = Path(temp_dir) @@ -88,3 +91,4 @@ def export_data_for_otrs(self, files_to_export=None, export_duplicates=False): destination=otrs_config['destination'] ) subprocess.run(command, shell=True, check=True) + return debug_uuid diff --git a/test/test_ims_worker.py b/test/test_ims_worker.py index 7906c5bb..d94796a6 100644 --- a/test/test_ims_worker.py +++ b/test/test_ims_worker.py @@ -33,7 +33,7 @@ def test_otrs_exports(data_config_filename, data_config, mocker): args, kwargs = mocked_run.call_args called_with = args[0] - t = r'^rsync -aP --rsh="ssh -l {user} -p 22 -i {key_file} -o \'UserKnownHostsFile {known_hosts}\'" /\S+/\* {destination}$' # noqa + t = r'^rsync -aPq --rsh="ssh -l {user} -p 22 -i {key_file} -o \'UserKnownHostsFile {known_hosts}\'" /\S+/\* {destination}$' # noqa p = t.format( user=otrs_config['username'], -- GitLab