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