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