From 90b612aa1267be134e79de9e19b2d65ed95be213 Mon Sep 17 00:00:00 2001
From: "sascha.herzinger" <sascha.herzinger@uni.lu>
Date: Fri, 2 Mar 2018 12:50:54 -0500
Subject: [PATCH] Fixing import manage issue in sdist

---
 MANIFEST.in                                     |  1 -
 fractalis/cleanup.py                            | 17 +++++++++++++++++
 fractalis/data/etlhandler.py                    |  4 ++--
 manage.py                                       | 17 +++--------------
 .../etls/{transmart => }/test_etlhandler.py     |  0
 tests/unit/{test_manage.py => test_cleanup.py}  |  6 +++---
 6 files changed, 25 insertions(+), 20 deletions(-)
 create mode 100644 fractalis/cleanup.py
 rename tests/unit/etls/{transmart => }/test_etlhandler.py (100%)
 rename tests/unit/{test_manage.py => test_cleanup.py} (91%)

diff --git a/MANIFEST.in b/MANIFEST.in
index 98b1c01..8da6dae 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,2 +1 @@
 include fractalis/logging.yaml
-include manage.py
diff --git a/fractalis/cleanup.py b/fractalis/cleanup.py
new file mode 100644
index 0000000..86c082b
--- /dev/null
+++ b/fractalis/cleanup.py
@@ -0,0 +1,17 @@
+import os
+
+from fractalis import app, redis, sync, celery
+
+
+@celery.task
+def janitor():
+    """Ideally this is maintained by a systemd service to cleanup redis and the
+    file system while Fractalis is running.
+    """
+    tmp_dir = app.config['FRACTALIS_TMP_DIR']
+    tracked_files = [key.split(':')[1] for key in redis.scan_iter('data:*')]
+    cached_files = [f for f in os.listdir(tmp_dir)
+                    if os.path.isfile(os.path.join(tmp_dir, f))]
+    for cached_file in cached_files:
+        if cached_file not in tracked_files:
+            sync.remove_file(os.path.join(tmp_dir, cached_file))
diff --git a/fractalis/data/etlhandler.py b/fractalis/data/etlhandler.py
index 2006733..c1defa2 100644
--- a/fractalis/data/etlhandler.py
+++ b/fractalis/data/etlhandler.py
@@ -7,7 +7,7 @@ import logging
 from uuid import uuid4
 from typing import List, Union
 
-import manage
+from fractalis.cleanup import janitor
 from fractalis import app, redis, celery
 from fractalis.data.etl import ETL
 
@@ -136,7 +136,7 @@ class ETLHandler(metaclass=abc.ABCMeta):
         task_ids = self.find_duplicates(data_tasks, descriptor)
         for task_id in task_ids:
             redis.delete('data:{}'.format(task_id))
-        manage.janitor.delay()
+        janitor.delay()
 
     def find_duplicate_task_id(self, data_tasks: List[str],
                                descriptor: dict) -> Union[str, None]:
diff --git a/manage.py b/manage.py
index 673fdf5..f5630c6 100644
--- a/manage.py
+++ b/manage.py
@@ -1,26 +1,15 @@
-import os
-
 from flask_script import Manager
 
-from fractalis import app, redis, sync, celery
+import fractalis.cleanup
+from fractalis import app
 
 
 manager = Manager(app)
 
 
-@celery.task
 @manager.command
 def janitor():
-    """Ideally this is maintained by a systemd service to cleanup redis and the
-    file system while Fractalis is running.
-    """
-    tmp_dir = app.config['FRACTALIS_TMP_DIR']
-    tracked_files = [key.split(':')[1] for key in redis.scan_iter('data:*')]
-    cached_files = [f for f in os.listdir(tmp_dir)
-                    if os.path.isfile(os.path.join(tmp_dir, f))]
-    for cached_file in cached_files:
-        if cached_file not in tracked_files:
-            sync.remove_file(os.path.join(tmp_dir, cached_file))
+    fractalis.cleanup.janitor.delay()
 
 
 if __name__ == "__main__":
diff --git a/tests/unit/etls/transmart/test_etlhandler.py b/tests/unit/etls/test_etlhandler.py
similarity index 100%
rename from tests/unit/etls/transmart/test_etlhandler.py
rename to tests/unit/etls/test_etlhandler.py
diff --git a/tests/unit/test_manage.py b/tests/unit/test_cleanup.py
similarity index 91%
rename from tests/unit/test_manage.py
rename to tests/unit/test_cleanup.py
index 52b9c35..05c9559 100644
--- a/tests/unit/test_manage.py
+++ b/tests/unit/test_cleanup.py
@@ -3,7 +3,7 @@
 import os
 from pathlib import Path
 
-import manage
+from fractalis.cleanup import janitor
 from fractalis import app, redis
 
 
@@ -14,7 +14,7 @@ class TestManage:
         tmp_dir = app.config['FRACTALIS_TMP_DIR']
         os.makedirs(tmp_dir, exist_ok=True)
         Path(os.path.join(tmp_dir, 'abc')).touch()
-        manage.janitor()
+        janitor()
         assert not os.path.exists(os.path.join(tmp_dir, 'abc'))
 
     def test_janitor_does_not_remove_tracked_files(self):
@@ -22,5 +22,5 @@ class TestManage:
         os.makedirs(tmp_dir, exist_ok=True)
         Path(os.path.join(tmp_dir, 'abc')).touch()
         redis.set('data:abc', '')
-        manage.janitor()
+        janitor()
         assert os.path.exists(os.path.join(tmp_dir, 'abc'))
-- 
GitLab