diff --git a/drydock_backups/plugin.py b/drydock_backups/plugin.py index 027c1fc..b244941 100644 --- a/drydock_backups/plugin.py +++ b/drydock_backups/plugin.py @@ -107,10 +107,12 @@ ) as fi: tutor_hooks.Filters.CLI_DO_INIT_TASKS.add_item(("mysql", fi.read()), priority=tutor_hooks.priorities.HIGH) -@tutor_hooks.Actions.PLUGIN_LOADED.add() -def _add_minio_init(_name: str) -> None: - with open( - str(importlib_resources.files("drydock_backups") / "templates" / "drydock_backups" / "task" / "minio" / "init"), - encoding="utf-8", - ) as fi: - tutor_hooks.Filters.CLI_DO_INIT_TASKS.add_item(("minio", fi.read()), priority=tutor_hooks.priorities.HIGH) +@tutor_hooks.Actions.PLUGINS_LOADED.add() +def _add_minio_init() -> None: + _plugins_list = tutor_hooks.Filters.PLUGINS_LOADED.apply([]) + if "minio" in _plugins_list: + with open( + str(importlib_resources.files("drydock_backups") / "templates" / "drydock_backups" / "task" / "minio" / "init"), + encoding="utf-8", + ) as fi: + tutor_hooks.Filters.CLI_DO_INIT_TASKS.add_item(("minio", fi.read()), priority=tutor_hooks.priorities.HIGH) diff --git a/drydock_backups/templates/drydock_backups/task/minio/init b/drydock_backups/templates/drydock_backups/task/minio/init index df3075e..e578936 100644 --- a/drydock_backups/templates/drydock_backups/task/minio/init +++ b/drydock_backups/templates/drydock_backups/task/minio/init @@ -1,5 +1,9 @@ mc config host add minio http://minio:9000 {{ OPENEDX_AWS_ACCESS_KEY }} {{ OPENEDX_AWS_SECRET_ACCESS_KEY }} --api s3v4 mc mb --ignore-existing minio/{{ BACKUP_BUCKET_NAME }} {%- if BACKUP_MINIO_EXPIRATION_DAYS > 0 %} +# Validated if already exists expiration rule in backup bucket +if ! mc ilm ls minio/{{ BACKUP_BUCKET_NAME }} | grep -q "Expiration"; then +# Add expiration rule if it doesn't exist mc ilm add --expiry-days "{{ BACKUP_MINIO_EXPIRATION_DAYS }}" minio/{{ BACKUP_BUCKET_NAME }} +fi {%- endif %}