This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit e0abdebb508d867fd104f3e09c712c9c46cf1eb5
Author: Marcus Christie <[email protected]>
AuthorDate: Mon Apr 17 16:43:28 2023 -0400

    AIRAVATA-3694 minimum archive size setting
---
 .../apps/admin/management/commands/archive_user_data.py            | 7 +++++++
 django_airavata/settings.py                                        | 1 +
 django_airavata/settings_local.py.sample                           | 1 +
 3 files changed, 9 insertions(+)

diff --git 
a/django_airavata/apps/admin/management/commands/archive_user_data.py 
b/django_airavata/apps/admin/management/commands/archive_user_data.py
index 4eae0904..a2698ee4 100644
--- a/django_airavata/apps/admin/management/commands/archive_user_data.py
+++ b/django_airavata/apps/admin/management/commands/archive_user_data.py
@@ -59,6 +59,13 @@ class Command(BaseCommand):
                 with open(os.path.join(tmpdir, archive_list_filename)) as 
archive_list_file:
                     for line in archive_list_file:
                         tarball.add(line.strip())
+
+            minimum_bytes_size = 
settings.GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB * 1024 ** 3
+            if os.stat(archive_tarball_filepath).st_size < minimum_bytes_size:
+                self.stdout.write(self.style.WARNING("Aborting, archive size 
is not large enough to proceed (size less than 
GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB)"))
+                # Exit early
+                return
+
             self.stdout.write(self.style.SUCCESS(f"Created tarball: 
{archive_tarball_filename}"))
 
             # Move the archive files into the final destination
diff --git a/django_airavata/settings.py b/django_airavata/settings.py
index d041d43f..a415a5be 100644
--- a/django_airavata/settings.py
+++ b/django_airavata/settings.py
@@ -206,6 +206,7 @@ TUS_DATA_DIR = None
 # TODO: document, timedelta arguments
 GATEWAY_USER_DATA_ARCHIVE_MAX_AGE = None
 GATEWAY_USER_DATA_ARCHIVE_DIRECTORY = "/tmp"
+GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB = 1
 
 # Legacy (PGA) Portal link - provide a link to the legacy portal
 PGA_URL = None
diff --git a/django_airavata/settings_local.py.sample 
b/django_airavata/settings_local.py.sample
index 1245000c..a21bf826 100644
--- a/django_airavata/settings_local.py.sample
+++ b/django_airavata/settings_local.py.sample
@@ -119,6 +119,7 @@ PROFILE_SERVICE_SECURE = False
 # archived and deleted to free up storage space.
 # GATEWAY_USER_DATA_ARCHIVE_MAX_AGE = {'days': 90}
 # GATEWAY_USER_DATA_ARCHIVE_DIRECTORY = "/path/dir/where/to/copy/archives"
+# GATEWAY_USER_DATA_ARCHIVE_MINIMUM_ARCHIVE_SIZE_GB = 1
 
 # Portal settings
 PORTAL_TITLE = 'Django Airavata Gateway'

Reply via email to