From b5f54c938281002403f43ca157a633c8f670a967 Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Mon, 20 Jul 2026 18:11:47 +0200 Subject: [PATCH] Fix tenant enumeration path in dump_db_to_directory os.path.join(ConfigManager._cfgdir, '/tenants/') discards the cfgdir because the second component is absolute, so it resolves to /tenants/ rather than /tenants. Tenants are not used yet but let's not face this issue in the future. --- confluent_server/confluent/config/configmanager.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/confluent_server/confluent/config/configmanager.py b/confluent_server/confluent/config/configmanager.py index c3665b83..d24856da 100644 --- a/confluent_server/confluent/config/configmanager.py +++ b/confluent_server/confluent/config/configmanager.py @@ -3250,13 +3250,14 @@ async def dump_db_to_directory(location, password, redact=None, skipkeys=False, writecfg('globals', json.dumps(bkupglobals)) # Handle tenants try: - for tenant in os.listdir( - os.path.join(ConfigManager._cfgdir, '/tenants/')): - writecfg(os.path.join('tenants', tenant, 'main'), - await ConfigManager(tenant=tenant)._dump_to_json( - redact=redact)) + tenants = os.listdir(os.path.join(ConfigManager._cfgdir, 'tenants')) except OSError: - pass + tenants = [] + for tenant in tenants: + os.makedirs(os.path.join(location, 'tenants', tenant), exist_ok=True) + writecfg(os.path.join('tenants', tenant, 'main'), + await ConfigManager(tenant=tenant)._dump_to_json( + redact=redact)) def get_globals():