From: Casey Bodley Date: Mon, 23 Mar 2026 14:46:27 +0000 (-0400) Subject: qa/rgw: rgw task can enable/disable zone features X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ffe4fcc7779ed2fec30ae7c7a82d0e0f2fc5a7e1;p=ceph.git qa/rgw: rgw task can enable/disable zone features Signed-off-by: Casey Bodley --- 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), ])