]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: change processing of "nvme list" json output
authorVallari Agrawal <vallari.agrawal@ibm.com>
Wed, 28 May 2025 02:36:36 +0000 (08:06 +0530)
committerVallari Agrawal <vallari.agrawal@ibm.com>
Mon, 16 Jun 2025 04:10:29 +0000 (09:40 +0530)
Revert changes made in 22f91cdc65246a0f9255e9348c15230670574e64
to processing of "nvme list -o json".

nvme-cli has changed json output in 2.11
and then reverted the change in 2.13 release.
So this commit goes back to 2.13 (or pre-2.11)
processing of "nvme list" json output.

Signed-off-by: Vallari Agrawal <vallari.agrawal@ibm.com>
qa/tasks/nvmeof.py
qa/workunits/nvmeof/basic_tests.sh
qa/workunits/nvmeof/fio_test.sh

index 1069d0aabcb2beccc9656528c6c297b4b0a7db1a..e37d794da64b712d91d2c8adb251a9e77745681c 100644 (file)
@@ -331,7 +331,7 @@ class NvmeofThrasher(Thrasher, Greenlet):
 
     def _get_devices(self, remote):
         GET_DEVICE_CMD = "sudo nvme list --output-format=json | " \
-            "jq -r '.Devices[].Subsystems[] | select(.Controllers | all(.ModelNumber == \"Ceph bdev Controller\")) | .Namespaces | sort_by(.NSID) | .[] | .NameSpace'"
+            "jq -r '.Devices | sort_by(.NameSpace) | .[] | select(.ModelNumber == \"Ceph bdev Controller\") | .DevicePath'"
         devices = remote.sh(GET_DEVICE_CMD).split()
         return devices
     
index 9e7a1f5134e98307fa10daf20182827cdd4b832a..132867997e2ab2e9cca16f593615b95476979b0f 100755 (executable)
@@ -39,7 +39,7 @@ connect_all() {
     sudo nvme connect-all --traddr=$NVMEOF_DEFAULT_GATEWAY_IP_ADDRESS --transport=tcp -l 3600
     sleep 5
     expected_devices_count=$1
-    actual_devices=$(sudo nvme list --output-format=json | jq -r ".Devices[].Subsystems[] | select(.Controllers | all(.ModelNumber == \"$SPDK_CONTROLLER\")) | .Namespaces[].NameSpace" | wc -l)
+    actual_devices=$(sudo nvme list --output-format=json | grep -o "$SPDK_CONTROLLER" | wc -l)
     if [ "$actual_devices" -ne "$expected_devices_count" ]; then
         sudo nvme list --output-format=json
         return 1
index 20f338ec9d5cc5a1858f9c1df292ff984d2dff67..7aa26d973b65254167a45c27c8f8a1073c7ef84c 100755 (executable)
@@ -34,7 +34,7 @@ done
 
 fio_file=$(mktemp -t nvmeof-fio-XXXX)
 all_drives_list=$(sudo nvme list --output-format=json | 
-    jq -r '.Devices[].Subsystems[] | select(.Controllers | all(.ModelNumber == "Ceph bdev Controller")) | .Namespaces | sort_by(.NSID) | .[] | .NameSpace')
+    jq -r '.Devices | sort_by(.NameSpace) | .[] | select(.ModelNumber == "Ceph bdev Controller") | .DevicePath')
 
 # When the script is passed --start_ns and --end_ns (example: `nvmeof_fio_test.sh --start_ns 1 --end_ns 3`), 
 # then fio runs on namespaces only in the defined range (which is 1 to 3 here). 
@@ -50,8 +50,6 @@ fi
 
 
 RUNTIME=${RUNTIME:-600}
-filename=$(echo "$selected_drives" | sed -z 's/\n/:\/dev\//g' | sed 's/:\/dev\/$//')
-filename="/dev/$filename"
 
 cat >> $fio_file <<EOF
 [global]
@@ -73,7 +71,7 @@ EOF
 
 for i in $selected_drives; do
   echo "[job-$i]" >> "$fio_file"
-  echo "filename=/dev/$i" >> "$fio_file"
+  echo "filename=$i" >> "$fio_file"
   echo "" >> "$fio_file"  # Adds a blank line
 done