fix drive name normalization (#74)
This commit is contained in:
@@ -392,10 +392,10 @@ local normalized, normalizeError = normalizeRaw({
|
||||
generated_at_epoch = 1700000000,
|
||||
lsblk = { blockdevices = {
|
||||
{
|
||||
name = "nvme9n1", kname = "nvme9n1", path = "/dev/nvme9n1", type = "disk",
|
||||
name = "/dev/nvme9n1", kname = "/dev/nvme9n1", path = "/dev/nvme9n1", type = "disk",
|
||||
tran = "nvme", rota = false, size = 2000000000, model = "Fixture NVMe", serial = "FIXTURE1",
|
||||
mountpoints = {}, children = {
|
||||
{ name = "nvme9n1p1", kname = "nvme9n1p1", path = "/dev/nvme9n1p1", type = "part",
|
||||
{ name = "/dev/nvme9n1p1", kname = "/dev/nvme9n1p1", path = "/dev/nvme9n1p1", type = "part",
|
||||
mountpoints = { "/mnt/work" }, fsused = 250, fsavail = 750 },
|
||||
},
|
||||
},
|
||||
@@ -485,15 +485,17 @@ assert(sleeping.summary.sleeping_count == 1 and sleeping.summary.smart_unavailab
|
||||
local namespaces = assert(normalizeRaw({
|
||||
schema = 2, generated_at_epoch = 1700000000,
|
||||
lsblk = { blockdevices = {
|
||||
{ name = "nvme0n1", kname = "nvme0n1", path = "/dev/nvme0n1", type = "disk",
|
||||
{ name = "/dev/nvme0n1", kname = "/dev/nvme0n1", path = "/dev/nvme0n1", type = "disk",
|
||||
tran = "nvme", rota = false, serial = "SHARED", children = {} },
|
||||
{ name = "nvme0n2", kname = "nvme0n2", path = "/dev/nvme0n2", type = "disk",
|
||||
{ name = "/dev/nvme0n2", kname = "/dev/nvme0n2", path = "/dev/nvme0n2", type = "disk",
|
||||
tran = "nvme", rota = false, serial = "SHARED", children = {} },
|
||||
{ name = "/dev/zram0", kname = "/dev/zram0", path = "/dev/zram0", type = "disk",
|
||||
rota = false, serial = "VIRTUAL", children = {} },
|
||||
} }, smart = {},
|
||||
}, "test"))
|
||||
assert(namespaces.disks[1].id ~= namespaces.disks[2].id
|
||||
and namespaces.disks[1].id:match(":n%d+$") and namespaces.disks[2].id:match(":n%d+$"),
|
||||
"NVMe namespaces sharing a controller serial did not receive unique IDs")
|
||||
assert(#namespaces.disks == 2, "absolute zram name was not excluded from physical drive inventory")
|
||||
assert(namespaces.disks[1].id == "SHARED:n1" and namespaces.disks[2].id == "SHARED:n2",
|
||||
"absolute NVMe names did not receive stable namespace-qualified IDs")
|
||||
|
||||
local empty = assert(normalizeRaw({
|
||||
schema = 2, collection_id = " ", generated_at_epoch = 1700000000,
|
||||
|
||||
+4
-3
@@ -3,12 +3,13 @@ set -eu
|
||||
|
||||
case " $* " in
|
||||
*" --nodeps "*)
|
||||
printf '%s\n' "/dev/sda disk 1" "/dev/nvme0n1 disk 0"
|
||||
printf '%s\n' "/dev/sda disk 1" "/dev/nvme0n1 disk 0" "/dev/zram0 disk 0"
|
||||
;;
|
||||
*" --json "*)
|
||||
printf '%s\n' '{"blockdevices":[' \
|
||||
'{"name":"sda","kname":"sda","path":"/dev/sda","type":"disk","tran":"sata","rota":true,"size":1000000000,"model":"Fixture SATA","serial":"SATA1","mountpoints":[]},' \
|
||||
'{"name":"nvme0n1","kname":"nvme0n1","path":"/dev/nvme0n1","type":"disk","tran":"nvme","rota":false,"size":2000000000,"model":"Fixture NVMe","serial":"NVME1","mountpoints":[]}' \
|
||||
'{"name":"/dev/sda","kname":"/dev/sda","path":"/dev/sda","type":"disk","tran":"sata","rota":true,"size":1000000000,"model":"Fixture SATA","serial":"SATA1","mountpoints":[]},' \
|
||||
'{"name":"/dev/nvme0n1","kname":"/dev/nvme0n1","path":"/dev/nvme0n1","type":"disk","tran":"nvme","rota":false,"size":2000000000,"model":"Fixture NVMe","serial":"NVME1","mountpoints":[]},' \
|
||||
'{"name":"/dev/zram0","kname":"/dev/zram0","path":"/dev/zram0","type":"disk","rota":false,"size":4294967296,"mountpoints":[]}' \
|
||||
']}'
|
||||
;;
|
||||
*)
|
||||
|
||||
@@ -9,7 +9,7 @@ printf '%s\n' "$payload" | jq -e '
|
||||
.schema == 2
|
||||
and .collector_version == "2.0.0"
|
||||
and (.collection_id | type == "string" and length > 0)
|
||||
and (.lsblk.blockdevices | length) == 2
|
||||
and ([.lsblk.blockdevices[].name] | sort) == ["/dev/nvme0n1", "/dev/sda", "/dev/zram0"]
|
||||
and (.smart | length) == 2
|
||||
and ([.smart[].requested_device] | sort) == ["/dev/nvme0", "/dev/sda"]
|
||||
and (.smart[] | select(.requested_device == "/dev/sda") | .payload.test_standby) == true
|
||||
|
||||
Reference in New Issue
Block a user