From ffe4fcc7779ed2fec30ae7c7a82d0e0f2fc5a7e1 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Mon, 23 Mar 2026 10:46:27 -0400 Subject: [PATCH] qa/rgw: rgw task can enable/disable zone features Signed-off-by: Casey Bodley --- qa/tasks/rgw.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/qa/tasks/rgw.py b/qa/tasks/rgw.py index 292b05efbd79..dbff5171f5dd 100644 --- a/qa/tasks/rgw.py +++ b/qa/tasks/rgw.py @@ -426,6 +426,21 @@ def configure_storage_classes(ctx, clients, storage_classes): check_status=True) yield +@contextlib.contextmanager +def configure_features(ctx, clients, enable, disable): + features = [] + for f in enable: + features.extend(['--enable-feature', f]) + for f in disable: + features.extend(['--disable-feature', f]) + + for client in clients: + cmd = ['zone', 'modify', '--rgw-zone', ctx.rgw.zone] + features + rgwadmin(ctx, client, cmd, check_status=True) + cmd = ['zonegroup', 'modify', '--rgw-zonegroup', ctx.rgw.zonegroup] + features + rgwadmin(ctx, client, cmd, check_status=True) + yield + @contextlib.contextmanager def task(ctx, config): """ @@ -505,6 +520,8 @@ def task(ctx, config): ctx.rgw.realm = config.pop('realm', None) ctx.rgw.zonegroup = config.pop('zonegroup', 'default') ctx.rgw.zone = config.pop('zone', 'default') + enable_features = config.pop('enable features', []) + disable_features = config.pop('disable features', []) ctx.rgw.config = config log.debug("config is {}".format(config)) @@ -542,6 +559,10 @@ def task(ctx, config): lambda: configure_storage_classes(ctx=ctx, clients=clients, storage_classes=storage_classes), ]) + if enable_features or disable_features: + subtasks.extend([ + lambda: configure_features(ctx, clients, enable_features, disable_features) + ]) subtasks.extend([ lambda: start_rgw(ctx=ctx, config=config, clients=clients), ]) -- 2.47.3