From 99262dc4086c1181bcd6102eb3722b262d21886d Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Mon, 12 Dec 2022 12:32:21 -0500 Subject: [PATCH] qa/rgw: rgw/verify suite randomizes --placement-inline-data test coverage for https://github.com/ceph/ceph/pull/48711 Signed-off-by: Casey Bodley --- qa/suites/rgw/verify/inline-data$/off.yaml | 3 +++ qa/suites/rgw/verify/inline-data$/on.yaml | 0 qa/tasks/rgw.py | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 qa/suites/rgw/verify/inline-data$/off.yaml create mode 100644 qa/suites/rgw/verify/inline-data$/on.yaml diff --git a/qa/suites/rgw/verify/inline-data$/off.yaml b/qa/suites/rgw/verify/inline-data$/off.yaml new file mode 100644 index 00000000000..56d1bce1077 --- /dev/null +++ b/qa/suites/rgw/verify/inline-data$/off.yaml @@ -0,0 +1,3 @@ +overrides: + rgw: + inline data: false diff --git a/qa/suites/rgw/verify/inline-data$/on.yaml b/qa/suites/rgw/verify/inline-data$/on.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/qa/tasks/rgw.py b/qa/tasks/rgw.py index a10266d050e..61bcea3a5e2 100644 --- a/qa/tasks/rgw.py +++ b/qa/tasks/rgw.py @@ -314,6 +314,20 @@ def configure_compression(ctx, clients, compression): check_status=True) yield +@contextlib.contextmanager +def disable_inline_data(ctx, clients): + for client in clients: + # XXX: the 'default' zone and zonegroup aren't created until we run RGWRados::init_complete(). + # issue a 'radosgw-admin user list' command to trigger this + rgwadmin(ctx, client, cmd=['user', 'list'], check_status=True) + + rgwadmin(ctx, client, + cmd=['zone', 'placement', 'modify', '--rgw-zone', 'default', + '--placement-id', 'default-placement', + '--placement-inline-data', 'false'], + check_status=True) + yield + @contextlib.contextmanager def configure_datacache(ctx, clients, datacache_path): """ create directory for rgw datacache """ @@ -414,6 +428,7 @@ def task(ctx, config): ctx.rgw.cache_pools = bool(config.pop('cache-pools', False)) ctx.rgw.frontend = config.pop('frontend', 'beast') ctx.rgw.compression_type = config.pop('compression type', None) + ctx.rgw.inline_data = config.pop('inline data', True) ctx.rgw.storage_classes = config.pop('storage classes', None) default_cert = config.pop('ssl certificate', None) ctx.rgw.data_pool_pg_size = config.pop('data_pool_pg_size', 64) @@ -435,6 +450,10 @@ def task(ctx, config): lambda: configure_compression(ctx=ctx, clients=clients, compression=ctx.rgw.compression_type), ]) + if not ctx.rgw.inline_data: + subtasks.extend([ + lambda: disable_inline_data(ctx=ctx, clients=clients), + ]) if ctx.rgw.datacache: subtasks.extend([ lambda: configure_datacache(ctx=ctx, clients=clients,