]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/tasks/nvmeof.py: add nvmeof gw-group to deployment 59434/head
authorVallari Agrawal <val.agl002@gmail.com>
Mon, 26 Aug 2024 04:23:07 +0000 (09:53 +0530)
committerVallari Agrawal <val.agl002@gmail.com>
Mon, 26 Aug 2024 09:45:10 +0000 (15:15 +0530)
Groups was made a required parameter to be
`ceph orch apply nvmeof <pool> <group>` in
https://github.com/ceph/ceph/pull/58860.
That broke the `nvmeof` suite so this PR fixes that.

Right now, all gateway are deployed in a single group.
Later, this would be changed to have multi groups for a better test.

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
qa/suites/nvmeof/basic/workloads/nvmeof_initiator.yaml
qa/suites/nvmeof/thrash/gateway-initiator-setup/3-subsys-60-namespace.yaml
qa/tasks/nvmeof.py

index 1532c944452cff640bd158ed35cecc9820e9c908..7774ba789222c6ce5adc0bbe07c83bc2b5f7b80e 100644 (file)
@@ -11,7 +11,7 @@ tasks:
       cli_image: quay.io/ceph/nvmeof-cli:1.2
 
 - cephadm.wait_for_service:
-    service: nvmeof.mypool
+    service: nvmeof.mypool.mygroup0
 
 - workunit:
     no_coverage_and_limits: true
index 3e5262f95df4dc6f7bc11fd6cb2bfd53a230d5c6..184858565a7641c42beda9cfb3f64eb5a616d499 100644 (file)
@@ -11,7 +11,7 @@ tasks:
       cli_image: quay.io/ceph/nvmeof-cli:1.2
 
 - cephadm.wait_for_service:
-    service: nvmeof.mypool
+    service: nvmeof.mypool.mygroup0
 
 - workunit:
     no_coverage_and_limits: true
index b56bcae0d0b70fabe3dff0e6d5bcebc05ac3ee9d..092585955a3b69c6a76eee0e6a60b503d85fdafd 100644 (file)
@@ -64,6 +64,8 @@ class Nvmeof(Task):
 
         gateway_config = self.config.get('gateway_config', {})
         self.cli_image = gateway_config.get('cli_image', 'quay.io/ceph/nvmeof-cli:latest')
+        self.groups_count = gateway_config.get('groups_count', 1)
+        self.groups_prefix = gateway_config.get('groups_prefix', 'mygroup') 
         self.nqn_prefix = gateway_config.get('subsystem_nqn_prefix', 'nqn.2016-06.io.spdk:cnode')
         self.subsystems_count = gateway_config.get('subsystems_count', 1) 
         self.namespaces_count = gateway_config.get('namespaces_count', 1) # namepsaces per subsystem
@@ -114,11 +116,17 @@ class Nvmeof(Task):
                 'rbd', 'pool', 'init', poolname
             ])
 
-            log.info(f'[nvmeof]: ceph orch apply nvmeof {poolname}')
-            _shell(self.ctx, self.cluster_name, self.remote, [
-                'ceph', 'orch', 'apply', 'nvmeof', poolname, 
-                '--placement', str(len(nodes)) + ';' + ';'.join(nodes)
-            ])
+            group_to_nodes = defaultdict(list)
+            for index, node in enumerate(nodes):
+                group_name = self.groups_prefix + str(index % int(self.groups_count))
+                group_to_nodes[group_name] += [node]
+            for group_name in group_to_nodes:
+                gp_nodes = group_to_nodes[group_name]
+                log.info(f'[nvmeof]: ceph orch apply nvmeof {poolname} {group_name}')
+                _shell(self.ctx, self.cluster_name, self.remote, [
+                    'ceph', 'orch', 'apply', 'nvmeof', poolname, group_name,
+                    '--placement', ';'.join(gp_nodes)
+                ])
 
             total_images = int(self.namespaces_count) * int(self.subsystems_count)
             log.info(f'[nvmeof]: creating {total_images} images')