From a50388568a3ce498e7b8de8a6089b7eef16e1114 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Sun, 5 Apr 2020 21:03:31 +0200
Subject: [PATCH] after import is successfully performed create rename file to
 backup file name

---
 smash/web/importer/importer_cron_job.py | 28 ++++++++++++++++---------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/smash/web/importer/importer_cron_job.py b/smash/web/importer/importer_cron_job.py
index 18ea4727..bfb75d10 100644
--- a/smash/web/importer/importer_cron_job.py
+++ b/smash/web/importer/importer_cron_job.py
@@ -1,5 +1,7 @@
 # coding=utf-8
+import datetime
 import logging
+import os
 import os.path
 import traceback
 
@@ -22,8 +24,8 @@ class ImporterCronJob(CronJobBase):
 
     @timeout_decorator.timeout(CRON_JOB_TIMEOUT)
     def do(self):
-        title = "Daily import"
-        recipients = getattr(settings, "DEFAULT_FROM_EMAIL", None)
+        email_title = "Daily import"
+        email_recipients = getattr(settings, "DEFAULT_FROM_EMAIL", None)
 
         filename = getattr(settings, "DAILY_IMPORT_FILE", None)
 
@@ -32,22 +34,28 @@ class ImporterCronJob(CronJobBase):
             return "import file not defined"
         logger.info("Importing subjects from file: " + filename)
         if not os.path.isfile(filename):
-            EmailSender().send_email(title,
+            EmailSender().send_email(email_title,
                                      "<h3><font color='red'>File with imported data is not available in the system: " + filename + "</font></h3>",
-                                     recipients)
+                                     email_recipients)
             return "import file not found"
         try:
             importer = Importer(settings.DAILY_IMPORT_FILE, CsvSubjectImportReader())
             importer.execute()
-            body = importer.get_summary()
-            EmailSender().send_email(title,
-                                     "<h3>Data was successfully imported from file: " + filename + "</h3>" + body,
-                                     recipients)
+            email_body = importer.get_summary()
+            EmailSender().send_email(email_title,
+                                     "<h3>Data was successfully imported from file: " + filename + "</h3>" + email_body,
+                                     email_recipients)
+            self.backup_file(filename)
             return "import is successful"
 
         except:
             tb = traceback.format_exc()
-            EmailSender().send_email(title,
+            EmailSender().send_email(email_title,
                                      "<h3><font color='red'>There was a problem with importing data from file: " + filename + "</font></h3><pre>" + tb + "</pre>",
-                                     recipients)
+                                     email_recipients)
             return "import crashed"
+
+    def backup_file(self, filename):
+        new_file = filename + "-" + datetime.datetime.now().strftime("%Y-%m-%d-%H-%M") + ".bac"
+        os.rename(filename, new_file)
+        return
-- 
GitLab