From: Kotresh HR Date: Mon, 6 Jul 2020 16:54:03 +0000 (+0530) Subject: qa: Fix name collisions X-Git-Tag: v15.2.5~71^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a57c3a27aced4f0012e9beb6d3bd49257f18102f;p=ceph.git qa: Fix name collisions Addresses the name collisions of volumes, subvolumes, clones, subvolume groups and snapshots within the tests. Fixes: https://tracker.ceph.com/issues/43517 Signed-off-by: Kotresh HR (cherry picked from commit 3b6f6f1abf1beba54c7b4eb610ae05985cdf42b1) --- diff --git a/qa/tasks/cephfs/test_volumes.py b/qa/tasks/cephfs/test_volumes.py index a9002a299cb..0e36edefdfd 100644 --- a/qa/tasks/cephfs/test_volumes.py +++ b/qa/tasks/cephfs/test_volumes.py @@ -109,28 +109,33 @@ class TestVolumes(CephFSTestCase): self._verify_clone_attrs(subvolume, clone, source_group=source_group, clone_group=clone_group) def _generate_random_volume_name(self, count=1): - r = random.sample(range(10000), count) - volumes = ["{0}_{1}".format(TestVolumes.TEST_VOLUME_PREFIX, c) for c in r] + n = self.volume_start + volumes = [f"{TestVolumes.TEST_VOLUME_PREFIX}_{i:016}" for i in range(n, n+count)] + self.volume_start += count return volumes[0] if count == 1 else volumes def _generate_random_subvolume_name(self, count=1): - r = random.sample(range(10000), count) - subvolumes = ["{0}_{1}".format(TestVolumes.TEST_SUBVOLUME_PREFIX, c) for c in r] + n = self.subvolume_start + subvolumes = [f"{TestVolumes.TEST_SUBVOLUME_PREFIX}_{i:016}" for i in range(n, n+count)] + self.subvolume_start += count return subvolumes[0] if count == 1 else subvolumes def _generate_random_group_name(self, count=1): - r = random.sample(range(100), count) - groups = ["{0}_{1}".format(TestVolumes.TEST_GROUP_PREFIX, c) for c in r] + n = self.group_start + groups = [f"{TestVolumes.TEST_GROUP_PREFIX}_{i:016}" for i in range(n, n+count)] + self.group_start += count return groups[0] if count == 1 else groups def _generate_random_snapshot_name(self, count=1): - r = random.sample(range(100), count) - snaps = ["{0}_{1}".format(TestVolumes.TEST_SNAPSHOT_PREFIX, c) for c in r] + n = self.snapshot_start + snaps = [f"{TestVolumes.TEST_SNAPSHOT_PREFIX}_{i:016}" for i in range(n, n+count)] + self.snapshot_start += count return snaps[0] if count == 1 else snaps def _generate_random_clone_name(self, count=1): - r = random.sample(range(1000), count) - clones = ["{0}_{1}".format(TestVolumes.TEST_CLONE_PREFIX, c) for c in r] + n = self.clone_start + clones = [f"{TestVolumes.TEST_CLONE_PREFIX}_{i:016}" for i in range(n, n+count)] + self.clone_start += count return clones[0] if count == 1 else clones def _enable_multi_fs(self): @@ -230,6 +235,11 @@ class TestVolumes(CephFSTestCase): self._enable_multi_fs() self._create_or_reuse_test_volume() self.config_set('mon', 'mon_allow_pool_delete', True) + self.volume_start = random.randint(1, (1<<20)) + self.subvolume_start = random.randint(1, (1<<20)) + self.group_start = random.randint(1, (1<<20)) + self.snapshot_start = random.randint(1, (1<<20)) + self.clone_start = random.randint(1, (1<<20)) def tearDown(self): if self.vol_created: @@ -668,8 +678,8 @@ class TestVolumes(CephFSTestCase): self._fs_cmd("subvolumegroup", "pin", self.volname, group, "distributed", "True") # (no effect on distribution) pin the group directory to 0 so rank 0 has all subtree bounds visible self._fs_cmd("subvolumegroup", "pin", self.volname, group, "export", "0") - for i in range(10): - subvolume = self._generate_random_subvolume_name() + subvolumes = self._generate_random_subvolume_name(10) + for subvolume in subvolumes: self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) self._wait_distributed_subtrees(10, status=status) @@ -1003,8 +1013,7 @@ class TestVolumes(CephFSTestCase): self._fs_cmd("subvolumegroup", "rm", self.volname, group) def test_subvolume_group_create_with_desired_data_pool_layout(self): - group1 = self._generate_random_group_name() - group2 = self._generate_random_group_name() + group1, group2 = self._generate_random_group_name(2) # create group self._fs_cmd("subvolumegroup", "create", self.volname, group1) @@ -1065,8 +1074,7 @@ class TestVolumes(CephFSTestCase): raise RuntimeError("expected the 'fs subvolumegroup getpath' command to fail") def test_subvolume_create_with_desired_data_pool_layout_in_group(self): - subvol1 = self._generate_random_subvolume_name() - subvol2 = self._generate_random_subvolume_name() + subvol1, subvol2 = self._generate_random_subvolume_name(2) group = self._generate_random_group_name() # create group. this also helps set default pool layout for subvolumes @@ -1097,8 +1105,7 @@ class TestVolumes(CephFSTestCase): self._fs_cmd("subvolumegroup", "rm", self.volname, group) def test_subvolume_group_create_with_desired_mode(self): - group1 = self._generate_random_group_name() - group2 = self._generate_random_group_name() + group1, group2 = self._generate_random_group_name(2) # default mode expected_mode1 = "755" # desired mode @@ -1146,9 +1153,8 @@ class TestVolumes(CephFSTestCase): self._fs_cmd("subvolumegroup", "rm", self.volname, subvolgroupname) def test_subvolume_create_with_desired_mode_in_group(self): - subvol1 = self._generate_random_subvolume_name() - subvol2 = self._generate_random_subvolume_name() - subvol3 = self._generate_random_subvolume_name() + subvol1, subvol2, subvol3 = self._generate_random_subvolume_name(3) + group = self._generate_random_group_name() # default mode expected_mode1 = "755"