Skip to content

Commit 9393509

Browse files
committed
qa/suite/nvmeof: add asserts to scalability_test.sh
Add assertions to 'status_checks()' function. Use "apply" and "redeploy", instead of "orch rm" and "apply" to upscale/downscale gateways. Signed-off-by: Vallari Agrawal <[email protected]>
1 parent 6e15b5e commit 9393509

File tree

2 files changed

+43
-13
lines changed

2 files changed

+43
-13
lines changed

qa/suites/nvmeof/basic/workloads/nvmeof_scalability.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ tasks:
3131
no_coverage_and_limits: true
3232
timeout: 30m
3333
clients:
34-
client.0:
34+
client.3:
3535
- nvmeof/scalability_test.sh nvmeof.a,nvmeof.b
3636
- nvmeof/scalability_test.sh nvmeof.b,nvmeof.c,nvmeof.d
37+
- nvmeof/scalability_test.sh nvmeof.b,nvmeof.c
3738
env:
3839
SCALING_DELAYS: '50'
40+
RBD_POOL: mypool
41+
NVMEOF_GROUP: mygroup0

qa/workunits/nvmeof/scalability_test.sh

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,64 @@
33

44
GATEWAYS=$1 # exmaple "nvmeof.a,nvmeof.b"
55
DELAY="${SCALING_DELAYS:-50}"
6+
POOL="${RBD_POOL:-mypool}"
7+
GROUP="${NVMEOF_GROUP:-mygroup0}"
8+
source /etc/ceph/nvmeof.env
69

710
if [ -z "$GATEWAYS" ]; then
811
echo "At least one gateway needs to be defined for scalability test"
912
exit 1
1013
fi
1114

12-
pip3 install yq
13-
1415
status_checks() {
15-
ceph nvme-gw show mypool ''
16-
ceph orch ls
17-
ceph orch ps
18-
ceph -s
16+
expected_count=$1
17+
18+
output=$(ceph nvme-gw show $POOL $GROUP)
19+
nvme_show=$(echo $output | grep -o '"AVAILABLE"' | wc -l)
20+
if [ "$nvme_show" -ne "$expected_count" ]; then
21+
return 1
22+
fi
23+
24+
orch_ls=$(ceph orch ls)
25+
if ! echo "$orch_ls" | grep -q "$expected_count/$expected_count"; then
26+
return 1
27+
fi
28+
29+
output=$(ceph orch ps --service-name nvmeof.$POOL.$GROUP)
30+
orch_ps=$(echo $output | grep -o 'running' | wc -l)
31+
if [ "$orch_ps" -ne "$expected_count" ]; then
32+
return 1
33+
fi
34+
35+
ceph_status=$(ceph -s)
36+
if ! echo "$ceph_status" | grep -q "HEALTH_OK"; then
37+
return 1
38+
fi
1939
}
2040

41+
total_gateways_count=$(( $(echo "$NVMEOF_GATEWAY_IP_ADDRESSES" | tr -cd ',' | wc -c) + 1 ))
42+
scaled_down_gateways_count=$(( total_gateways_count - $(echo "$GATEWAYS" | tr -cd ',' | wc -c) - 1 ))
43+
2144

2245
echo "[nvmeof.scale] Setting up config to remove gateways ${GATEWAYS}"
46+
ceph orch ls --service-name nvmeof.$POOL.$GROUP --export > /tmp/nvmeof-gw.yaml
2347
ceph orch ls nvmeof --export > /tmp/nvmeof-gw.yaml
2448
cat /tmp/nvmeof-gw.yaml
25-
yq "del(.placement.hosts[] | select(. | test(\".*($(echo $GATEWAYS | sed 's/,/|/g'))\")))" /tmp/nvmeof-gw.yaml > /tmp/nvmeof-gw-new.yaml
49+
50+
pattern=$(echo $GATEWAYS | sed 's/,/\\|/g')
51+
sed "/$pattern/d" /tmp/nvmeof-gw.yaml > /tmp/nvmeof-gw-new.yaml
2652
cat /tmp/nvmeof-gw-new.yaml
2753

2854
echo "[nvmeof.scale] Starting scale testing by removing ${GATEWAYS}"
29-
status_checks
30-
ceph orch rm nvmeof.mypool && sleep 20 # temp workaround
55+
status_checks $total_gateways_count
3156
ceph orch apply -i /tmp/nvmeof-gw-new.yaml # downscale
57+
ceph orch redeploy nvmeof.$POOL.$GROUP
3258
sleep $DELAY
33-
status_checks
34-
ceph orch rm nvmeof.mypool && sleep 20 # temp workaround
59+
status_checks $scaled_down_gateways_count
60+
echo "[nvmeof.scale] Downscale complete - removed gateways (${GATEWAYS}); now scaling back up"
3561
ceph orch apply -i /tmp/nvmeof-gw.yaml #upscale
62+
ceph orch redeploy nvmeof.$POOL.$GROUP
3663
sleep $DELAY
37-
status_checks
64+
status_checks $total_gateways_count
3865

3966
echo "[nvmeof.scale] Scale testing passed for ${GATEWAYS}"

0 commit comments

Comments
 (0)