From 4880f1e41b49fc42af26bc2b6fc49596122110c2 Mon Sep 17 00:00:00 2001 From: yerkennz Date: Tue, 30 Jun 2026 19:21:38 +0500 Subject: [PATCH 1/2] fix: [CPCAP-11196] use default storageName in AwsS3Vault to support S3 aliases --- services/backup-daemon/docker/granular/storage_s3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/backup-daemon/docker/granular/storage_s3.py b/services/backup-daemon/docker/granular/storage_s3.py index 17cd43d6..f26a9499 100644 --- a/services/backup-daemon/docker/granular/storage_s3.py +++ b/services/backup-daemon/docker/granular/storage_s3.py @@ -83,7 +83,7 @@ def get_s3_bucket_name(alias=None): return alias.get("bucketName") return os.getenv("CONTAINER") or os.getenv("AWS_S3_BUCKET") or os.getenv("S3_BUCKET") - def __init__(self, storage_name=None, cluster_name=None, cache_enabled=False, + def __init__(self, storage_name="default", cluster_name=None, cache_enabled=False, aws_s3_bucket_listing=None, prefix=None): self.storage_name = storage_name From e52aeb4a8c54d523dd75f1f4a9065ae6f7123f8c Mon Sep 17 00:00:00 2001 From: yerkennz Date: Wed, 1 Jul 2026 16:28:21 +0500 Subject: [PATCH 2/2] fix: add fallback bucket for backward compatability --- .../backup-daemon/docker/granular/storage_s3.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/services/backup-daemon/docker/granular/storage_s3.py b/services/backup-daemon/docker/granular/storage_s3.py index f26a9499..d6d87305 100644 --- a/services/backup-daemon/docker/granular/storage_s3.py +++ b/services/backup-daemon/docker/granular/storage_s3.py @@ -52,8 +52,6 @@ def get_s3_aliases(cls): if not aliases: raise Exception("S3 aliases are enabled, but /aliases/s3_aliases.json is empty") - if "default" not in aliases: - raise Exception("Default S3 alias is not configured in /aliases/s3_aliases.json") cls.__s3_aliases_cache = aliases @@ -67,7 +65,14 @@ def get_s3_alias_config(cls, storage_name=None): return None if not storage_name or not storage_name.strip(): - raise Exception("storageName is required when S3 aliases are enabled") + fallback_bucket = cls.get_s3_bucket_name(alias=None) + if fallback_bucket: + cls.__log.info( + "storageName not provided, falling back to s3Storage configuration (bucket: %s)", + fallback_bucket + ) + return None + raise Exception("storageName is required when S3 aliases are enabled and no s3Storage fallback is configured") storage_name = storage_name.strip() @@ -83,7 +88,7 @@ def get_s3_bucket_name(alias=None): return alias.get("bucketName") return os.getenv("CONTAINER") or os.getenv("AWS_S3_BUCKET") or os.getenv("S3_BUCKET") - def __init__(self, storage_name="default", cluster_name=None, cache_enabled=False, + def __init__(self, storage_name=None, cluster_name=None, cache_enabled=False, aws_s3_bucket_listing=None, prefix=None): self.storage_name = storage_name