Skip to content

Commit 1de5109

Browse files
authored
SRE-3150 test: Add device verification and test summary to launch (#16583)
Verify the server storage devices exist before and after running the tests. Generate a test summary indicating the order, status, and host usage for each test file and its variants. Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
1 parent eeb4288 commit 1de5109

8 files changed

Lines changed: 253 additions & 202 deletions

File tree

src/tests/ftest/launch.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from argparse import ArgumentParser, ArgumentTypeError, RawDescriptionHelpFormatter
1515
from collections import OrderedDict
1616

17+
import distro
1718
from ClusterShell.NodeSet import NodeSet
1819
from process_core_files import get_core_file_pattern
1920
# pylint: disable=import-error,no-name-in-module
@@ -176,6 +177,7 @@ def _configure(self, overwrite_config=False):
176177

177178
# Add details about the run
178179
self.details["avocado version"] = str(self.avocado)
180+
self.details["distro"] = distro.linux_distribution(full_distribution_name=True)
179181
self.details["launch host"] = str(self.local_host)
180182

181183
def _create_log_dir(self):
@@ -272,7 +274,7 @@ def _run(self, args):
272274
all_hosts = args.test_servers | args.test_clients | self.local_host
273275
self.details["installed packages"] = find_packages(
274276
logger, all_hosts,
275-
"'^(daos|libfabric|mercury|ior|openmpi|mpifileutils|mlnx-ofed-basic)-'")
277+
"'^(daos|libfabric|mercury|ior|openmpi|mpich|mpifileutils|mlnx-ofed-basic)-'")
276278

277279
# Setup the test environment
278280
test_env = TestEnvironment()
Lines changed: 37 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
setup:
22
start_agents_once: False
33
start_servers_once: False
4-
server_config_namespace: /run/server_configurations/*/server_config/*
54

65
hosts:
76
test_servers: 3
@@ -39,145 +38,44 @@ test_two_pools_hw:
3938
scm: 2147483648 # 2GiB
4039
nvme: 0
4140

42-
# Mux the number of targets per engine (1-4) with both engines using the same number of targets
43-
server_configurations: !mux
44-
server_config_1_target:
45-
server_config:
46-
name: daos_server
47-
engines_per_host: 2
48-
engines:
41+
server_config:
42+
name: daos_server
43+
engines_per_host: 2
44+
engines:
45+
0:
46+
pinned_numa_node: 0
47+
fabric_iface: ib0
48+
fabric_iface_port: 31317
49+
log_file: daos_server0.log
50+
storage:
4951
0:
50-
targets: 1
51-
pinned_numa_node: 0
52-
nr_xs_helpers: 1
53-
fabric_iface: ib0
54-
fabric_iface_port: 31317
55-
log_file: daos_server0.log
56-
storage:
57-
0:
58-
class: dcpm
59-
scm_list: ["/dev/pmem0"]
60-
scm_mount: /mnt/daos0
61-
1:
62-
class: nvme
63-
bdev_list: ["aaaa:aa:aa.a"]
52+
class: dcpm
53+
scm_list: ["/dev/pmem0"]
54+
scm_mount: /mnt/daos0
6455
1:
65-
targets: 1
66-
pinned_numa_node: 1
67-
nr_xs_helpers: 1
68-
fabric_iface: ib1
69-
fabric_iface_port: 31417
70-
log_file: daos_server1.log
71-
storage:
72-
0:
73-
class: dcpm
74-
scm_list: ["/dev/pmem1"]
75-
scm_mount: /mnt/daos1
76-
1:
77-
class: nvme
78-
bdev_list: ["bbbb:bb:bb.b"]
79-
server_config_2_target:
80-
server_config:
81-
name: daos_server
82-
engines_per_host: 2
83-
engines:
56+
class: nvme
57+
bdev_list: ["aaaa:aa:aa.a"]
58+
1:
59+
pinned_numa_node: 1
60+
fabric_iface: ib1
61+
fabric_iface_port: 31417
62+
log_file: daos_server1.log
63+
storage:
8464
0:
85-
targets: 2
86-
pinned_numa_node: 0
87-
nr_xs_helpers: 1
88-
fabric_iface: ib0
89-
fabric_iface_port: 31317
90-
log_file: daos_server0.log
91-
storage:
92-
0:
93-
class: dcpm
94-
scm_list: ["/dev/pmem0"]
95-
scm_mount: /mnt/daos0
96-
1:
97-
class: nvme
98-
bdev_list: ["aaaa:aa:aa.a"]
65+
class: dcpm
66+
scm_list: ["/dev/pmem1"]
67+
scm_mount: /mnt/daos1
9968
1:
100-
targets: 2
101-
pinned_numa_node: 1
102-
nr_xs_helpers: 1
103-
fabric_iface: ib1
104-
fabric_iface_port: 31417
105-
log_file: daos_server1.log
106-
storage:
107-
0:
108-
class: dcpm
109-
scm_list: ["/dev/pmem1"]
110-
scm_mount: /mnt/daos1
111-
1:
112-
class: nvme
113-
bdev_list: ["bbbb:bb:bb.b"]
114-
server_config_3_target:
115-
server_config:
116-
name: daos_server
117-
engines_per_host: 2
118-
engines:
119-
0:
120-
targets: 3
121-
pinned_numa_node: 0
122-
nr_xs_helpers: 1
123-
fabric_iface: ib0
124-
fabric_iface_port: 31317
125-
log_file: daos_server0.log
126-
storage:
127-
0:
128-
class: dcpm
129-
scm_list: ["/dev/pmem0"]
130-
scm_mount: /mnt/daos0
131-
1:
132-
class: nvme
133-
bdev_list: ["aaaa:aa:aa.a"]
134-
1:
135-
targets: 3
136-
pinned_numa_node: 1
137-
nr_xs_helpers: 1
138-
fabric_iface: ib1
139-
fabric_iface_port: 31417
140-
log_file: daos_server1.log
141-
storage:
142-
0:
143-
class: dcpm
144-
scm_list: ["/dev/pmem1"]
145-
scm_mount: /mnt/daos1
146-
1:
147-
class: nvme
148-
bdev_list: ["bbbb:bb:bb.b"]
149-
server_config_5_target:
150-
server_config:
151-
name: daos_server
152-
engines_per_host: 2
153-
engines:
154-
0:
155-
targets: 5
156-
pinned_numa_node: 0
157-
nr_xs_helpers: 1
158-
fabric_iface: ib0
159-
fabric_iface_port: 31317
160-
log_file: daos_server0.log
161-
storage:
162-
0:
163-
class: dcpm
164-
scm_list: ["/dev/pmem0"]
165-
scm_mount: /mnt/daos0
166-
1:
167-
class: nvme
168-
bdev_list: ["aaaa:aa:aa.a"]
169-
1:
170-
targets: 5
171-
pinned_numa_node: 1
172-
nr_xs_helpers: 1
173-
fabric_iface: ib1
174-
fabric_iface_port: 31417
175-
log_file: daos_server1.log
176-
storage:
177-
0:
178-
class: dcpm
179-
scm_list: ["/dev/pmem1"]
180-
scm_mount: /mnt/daos1
181-
1:
182-
class: nvme
183-
bdev_list: ["bbbb:bb:bb.b"]
69+
class: nvme
70+
bdev_list: ["bbbb:bb:bb.b"]
71+
engines_common:
72+
targets_mux: !mux
73+
one_target:
74+
targets: 1
75+
two_targets:
76+
targets: 2
77+
three_targets:
78+
targets: 3
79+
five_targets:
80+
targets: 5
81+
nr_xs_helpers: 1

src/tests/ftest/server/storage_tiers.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""
22
(C) Copyright 2020-2023 Intel Corporation.
3+
(C) Copyright 2025 Hewlett Packard Enterprise Development LP
34
45
SPDX-License-Identifier: BSD-2-Clause-Patent
56
"""
@@ -25,9 +26,10 @@ def test_tiers(self):
2526
2627
Test Description:
2728
Verify storage tiers are correctly obtained from the test yaml file.
29+
Does not test or rely on actual hardware being present.
2830
2931
:avocado: tags=all,pr
30-
:avocado: tags=hw,medium
32+
:avocado: tags=vm
3133
:avocado: tags=server,storage,storage_tiers
3234
:avocado: tags=StorageTiers,test_tiers
3335
"""
@@ -58,9 +60,9 @@ def test_tiers(self):
5860
"class": storage_class,
5961
"bdev_list": self.params.get("bdev_list", namespace),
6062
}
61-
storage_roles = self.params.get("roles", namespace, None)
63+
storage_roles = self.params.get("bdev_roles", namespace, None)
6264
if storage_roles:
63-
data["roles"] = storage_roles
65+
data["bdev_roles"] = storage_roles
6466
storage.append(data)
6567
expected.append(storage)
6668
self.log.info("expected:\n%s", yaml.dump(expected, default_flow_style=False))

src/tests/ftest/server/storage_tiers.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ hosts:
55
setup:
66
start_servers: false
77
start_agents: false
8-
server_config_namespace: /run/server_configurations/*/server_config/*
8+
server_config_namespace: /run/configurations/*/server_config/*
9+
10+
check_server_storage: false
911

1012
timeout: 1800
1113

@@ -33,23 +35,23 @@ storage_1: &storage_ram
3335

3436
storage_2: &storage_nvme_all
3537
class: nvme
36-
roles: [wal, index, data]
38+
bdev_roles: [wal, index, data]
3739

3840
storage_3: &storage_nvme_wal_index
3941
class: nvme
40-
roles: [wal, index]
42+
bdev_roles: [wal, index]
4143

4244
storage_4: &storage_nvme_wal
4345
class: nvme
44-
roles: [wal]
46+
bdev_roles: [wal]
4547

4648
storage_5: &storage_nvme_index
4749
class: nvme
48-
roles: [index]
50+
bdev_roles: [index]
4951

5052
storage_6: &storage_nvme_data
5153
class: nvme
52-
roles: [data]
54+
bdev_roles: [data]
5355

5456
configurations: !mux
5557
1_tier_dcpm:

0 commit comments

Comments
 (0)