]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/rgw: rgw task can enable/disable zone features
authorCasey Bodley <cbodley@redhat.com>
Mon, 23 Mar 2026 14:46:27 +0000 (10:46 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 20 Apr 2026 16:41:21 +0000 (12:41 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
qa/tasks/rgw.py

index 292b05efbd790674b5b27bb962bdbe034e704a7c..dbff5171f5dd68e6724d7d505cdad22a82830b16 100644 (file)
@@ -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),
     ])