* [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests
@ 2021-04-01 13:40 Oguz Bektas
2021-04-01 13:40 ` [pve-devel] [PATCH storage 2/2] smartctl: use json parsing Oguz Bektas
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Oguz Bektas @ 2021-04-01 13:40 UTC (permalink / raw)
To: pve-devel
Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
---
test/disk_tests/cciss/cciss!c0d0/device/model | 1 -
.../disk_tests/cciss/cciss!c0d0/device/vendor | 1 -
.../cciss/cciss!c0d0/queue/rotational | 1 -
test/disk_tests/cciss/cciss!c0d0/size | 1 -
test/disk_tests/cciss/cciss!c0d0_udevadm | 32 ---
test/disk_tests/cciss/disklist | 1 -
test/disk_tests/cciss/disklist_expected.json | 16 --
test/disk_tests/hdd_smart/disklist | 2 -
.../hdd_smart/disklist_expected.json | 30 --
test/disk_tests/hdd_smart/sda/device/vendor | 1 -
.../disk_tests/hdd_smart/sda/queue/rotational | 1 -
test/disk_tests/hdd_smart/sda/size | 1 -
test/disk_tests/hdd_smart/sda_health | 5 -
test/disk_tests/hdd_smart/sda_smart | 40 ---
.../hdd_smart/sda_smart_expected.json | 246 -----------------
test/disk_tests/hdd_smart/sda_udevadm | 11 -
test/disk_tests/hdd_smart/sdb/device/vendor | 1 -
.../disk_tests/hdd_smart/sdb/queue/rotational | 1 -
test/disk_tests/hdd_smart/sdb/size | 1 -
test/disk_tests/hdd_smart/sdb_health | 5 -
test/disk_tests/hdd_smart/sdb_smart | 36 ---
.../hdd_smart/sdb_smart_expected.json | 216 ---------------
test/disk_tests/hdd_smart/sdb_udevadm | 11 -
test/disk_tests/nvme_smart/disklist | 1 -
.../nvme_smart/disklist_expected.json | 16 --
test/disk_tests/nvme_smart/nvme0/model | 1 -
test/disk_tests/nvme_smart/nvme0_smart | 22 --
test/disk_tests/nvme_smart/nvme0n1/device | 1 -
.../nvme_smart/nvme0n1/queue/rotational | 1 -
test/disk_tests/nvme_smart/nvme0n1/size | 1 -
.../nvme_smart/nvme0n1_smart_expected.json | 6 -
test/disk_tests/nvme_smart/nvme0n1_udevadm | 18 --
test/disk_tests/sas/disklist | 1 -
test/disk_tests/sas/disklist_expected.json | 17 --
test/disk_tests/sas/sda/device/model | 1 -
test/disk_tests/sas/sda/device/vendor | 1 -
test/disk_tests/sas/sda/queue/rotational | 1 -
test/disk_tests/sas/sda/size | 1 -
test/disk_tests/sas/sda_smart | 20 --
test/disk_tests/sas/sda_smart_expected.json | 6 -
test/disk_tests/sas/sda_udevadm | 31 ---
test/disk_tests/sas_ssd/disklist | 1 -
.../disk_tests/sas_ssd/disklist_expected.json | 17 --
test/disk_tests/sas_ssd/sda/device/model | 1 -
test/disk_tests/sas_ssd/sda/device/vendor | 1 -
test/disk_tests/sas_ssd/sda/queue/rotational | 1 -
test/disk_tests/sas_ssd/sda/size | 1 -
test/disk_tests/sas_ssd/sda_smart | 20 --
.../sas_ssd/sda_smart_expected.json | 6 -
test/disk_tests/sas_ssd/sda_udevadm | 31 ---
test/disk_tests/ssd_smart/disklist | 5 -
.../ssd_smart/disklist_expected.json | 72 -----
test/disk_tests/ssd_smart/sda/device/vendor | 1 -
.../disk_tests/ssd_smart/sda/queue/rotational | 1 -
test/disk_tests/ssd_smart/sda/size | 1 -
test/disk_tests/ssd_smart/sda_smart | 39 ---
.../ssd_smart/sda_smart_expected.json | 236 ----------------
test/disk_tests/ssd_smart/sda_udevadm | 11 -
test/disk_tests/ssd_smart/sdb/device/vendor | 1 -
.../disk_tests/ssd_smart/sdb/queue/rotational | 1 -
test/disk_tests/ssd_smart/sdb/size | 1 -
test/disk_tests/ssd_smart/sdb_smart | 41 ---
.../ssd_smart/sdb_smart_expected.json | 256 ------------------
test/disk_tests/ssd_smart/sdb_udevadm | 12 -
test/disk_tests/ssd_smart/sdc/device/vendor | 1 -
.../disk_tests/ssd_smart/sdc/queue/rotational | 1 -
test/disk_tests/ssd_smart/sdc/size | 1 -
test/disk_tests/ssd_smart/sdc_smart | 16 --
.../ssd_smart/sdc_smart_expected.json | 16 --
test/disk_tests/ssd_smart/sdc_udevadm | 11 -
test/disk_tests/ssd_smart/sdd/device/vendor | 1 -
.../disk_tests/ssd_smart/sdd/queue/rotational | 1 -
test/disk_tests/ssd_smart/sdd/size | 1 -
test/disk_tests/ssd_smart/sdd_smart | 40 ---
.../ssd_smart/sdd_smart_expected.json | 256 ------------------
test/disk_tests/ssd_smart/sdd_udevadm | 11 -
test/disk_tests/ssd_smart/sde/device/vendor | 1 -
.../disk_tests/ssd_smart/sde/queue/rotational | 1 -
test/disk_tests/ssd_smart/sde/size | 1 -
test/disk_tests/ssd_smart/sde_smart | 40 ---
.../ssd_smart/sde_smart_expected.json | 246 -----------------
test/disk_tests/ssd_smart/sde_udevadm | 11 -
test/disk_tests/usages/disklist | 14 -
test/disk_tests/usages/disklist_expected.json | 222 ---------------
test/disk_tests/usages/lsblk | 8 -
test/disk_tests/usages/lvs | 6 -
test/disk_tests/usages/mounts | 2 -
test/disk_tests/usages/partlist | 6 -
test/disk_tests/usages/pvs | 7 -
test/disk_tests/usages/sda/device/vendor | 1 -
test/disk_tests/usages/sda/queue/rotational | 1 -
test/disk_tests/usages/sda/size | 1 -
test/disk_tests/usages/sda_udevadm | 12 -
test/disk_tests/usages/sdb/device/vendor | 1 -
test/disk_tests/usages/sdb/queue/rotational | 1 -
test/disk_tests/usages/sdb/size | 1 -
test/disk_tests/usages/sdb_udevadm | 12 -
test/disk_tests/usages/sdc/device/vendor | 1 -
test/disk_tests/usages/sdc/queue/rotational | 1 -
test/disk_tests/usages/sdc/size | 1 -
test/disk_tests/usages/sdc_udevadm | 12 -
test/disk_tests/usages/sdd/device/vendor | 1 -
test/disk_tests/usages/sdd/queue/rotational | 1 -
test/disk_tests/usages/sdd/sdd1/size | 1 -
test/disk_tests/usages/sdd/sdd2/size | 1 -
test/disk_tests/usages/sdd/size | 1 -
test/disk_tests/usages/sdd_udevadm | 12 -
test/disk_tests/usages/sde/device/vendor | 1 -
test/disk_tests/usages/sde/queue/rotational | 1 -
test/disk_tests/usages/sde/sde1/size | 1 -
test/disk_tests/usages/sde/size | 1 -
test/disk_tests/usages/sde_udevadm | 12 -
test/disk_tests/usages/sdf/device/vendor | 1 -
test/disk_tests/usages/sdf/queue/rotational | 1 -
test/disk_tests/usages/sdf/sdf1/size | 1 -
test/disk_tests/usages/sdf/size | 1 -
test/disk_tests/usages/sdf_udevadm | 12 -
test/disk_tests/usages/sdg/device/vendor | 1 -
test/disk_tests/usages/sdg/queue/rotational | 1 -
test/disk_tests/usages/sdg/size | 1 -
test/disk_tests/usages/sdg_udevadm | 12 -
test/disk_tests/usages/sdh/device/vendor | 1 -
test/disk_tests/usages/sdh/queue/rotational | 1 -
test/disk_tests/usages/sdh/size | 1 -
test/disk_tests/usages/sdh_udevadm | 12 -
test/disk_tests/usages/sdi/device/vendor | 1 -
test/disk_tests/usages/sdi/queue/rotational | 1 -
test/disk_tests/usages/sdi/size | 1 -
test/disk_tests/usages/sdi_udevadm | 12 -
test/disk_tests/usages/sdj/device/vendor | 1 -
test/disk_tests/usages/sdj/queue/rotational | 1 -
test/disk_tests/usages/sdj/size | 1 -
test/disk_tests/usages/sdj_udevadm | 12 -
test/disk_tests/usages/sdk/device/vendor | 1 -
test/disk_tests/usages/sdk/queue/rotational | 1 -
test/disk_tests/usages/sdk/size | 1 -
test/disk_tests/usages/sdk_udevadm | 12 -
test/disk_tests/usages/sdl/device/vendor | 1 -
test/disk_tests/usages/sdl/queue/rotational | 1 -
test/disk_tests/usages/sdl/size | 1 -
test/disk_tests/usages/sdl_udevadm | 12 -
test/disk_tests/usages/sdm/device/vendor | 1 -
test/disk_tests/usages/sdm/queue/rotational | 1 -
test/disk_tests/usages/sdm/sdm1/size | 1 -
test/disk_tests/usages/sdm/sdm9/size | 1 -
test/disk_tests/usages/sdm/size | 1 -
test/disk_tests/usages/sdm_udevadm | 12 -
test/disk_tests/usages/sdn/device/vendor | 1 -
test/disk_tests/usages/sdn/queue/rotational | 1 -
test/disk_tests/usages/sdn/size | 1 -
test/disk_tests/usages/sdn_udevadm | 14 -
test/disk_tests/usages/zpool | 6 -
152 files changed, 2709 deletions(-)
delete mode 100644 test/disk_tests/cciss/cciss!c0d0/device/model
delete mode 100644 test/disk_tests/cciss/cciss!c0d0/device/vendor
delete mode 100644 test/disk_tests/cciss/cciss!c0d0/queue/rotational
delete mode 100644 test/disk_tests/cciss/cciss!c0d0/size
delete mode 100644 test/disk_tests/cciss/cciss!c0d0_udevadm
delete mode 100644 test/disk_tests/cciss/disklist
delete mode 100644 test/disk_tests/cciss/disklist_expected.json
delete mode 100644 test/disk_tests/hdd_smart/disklist
delete mode 100644 test/disk_tests/hdd_smart/disklist_expected.json
delete mode 100644 test/disk_tests/hdd_smart/sda/device/vendor
delete mode 100644 test/disk_tests/hdd_smart/sda/queue/rotational
delete mode 100644 test/disk_tests/hdd_smart/sda/size
delete mode 100644 test/disk_tests/hdd_smart/sda_health
delete mode 100644 test/disk_tests/hdd_smart/sda_smart
delete mode 100644 test/disk_tests/hdd_smart/sda_smart_expected.json
delete mode 100644 test/disk_tests/hdd_smart/sda_udevadm
delete mode 100644 test/disk_tests/hdd_smart/sdb/device/vendor
delete mode 100644 test/disk_tests/hdd_smart/sdb/queue/rotational
delete mode 100644 test/disk_tests/hdd_smart/sdb/size
delete mode 100644 test/disk_tests/hdd_smart/sdb_health
delete mode 100644 test/disk_tests/hdd_smart/sdb_smart
delete mode 100644 test/disk_tests/hdd_smart/sdb_smart_expected.json
delete mode 100644 test/disk_tests/hdd_smart/sdb_udevadm
delete mode 100644 test/disk_tests/nvme_smart/disklist
delete mode 100644 test/disk_tests/nvme_smart/disklist_expected.json
delete mode 100644 test/disk_tests/nvme_smart/nvme0/model
delete mode 100644 test/disk_tests/nvme_smart/nvme0_smart
delete mode 120000 test/disk_tests/nvme_smart/nvme0n1/device
delete mode 100644 test/disk_tests/nvme_smart/nvme0n1/queue/rotational
delete mode 100644 test/disk_tests/nvme_smart/nvme0n1/size
delete mode 100644 test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
delete mode 100644 test/disk_tests/nvme_smart/nvme0n1_udevadm
delete mode 100644 test/disk_tests/sas/disklist
delete mode 100644 test/disk_tests/sas/disklist_expected.json
delete mode 100644 test/disk_tests/sas/sda/device/model
delete mode 100644 test/disk_tests/sas/sda/device/vendor
delete mode 100644 test/disk_tests/sas/sda/queue/rotational
delete mode 100644 test/disk_tests/sas/sda/size
delete mode 100644 test/disk_tests/sas/sda_smart
delete mode 100644 test/disk_tests/sas/sda_smart_expected.json
delete mode 100644 test/disk_tests/sas/sda_udevadm
delete mode 100644 test/disk_tests/sas_ssd/disklist
delete mode 100644 test/disk_tests/sas_ssd/disklist_expected.json
delete mode 100644 test/disk_tests/sas_ssd/sda/device/model
delete mode 100644 test/disk_tests/sas_ssd/sda/device/vendor
delete mode 100644 test/disk_tests/sas_ssd/sda/queue/rotational
delete mode 100644 test/disk_tests/sas_ssd/sda/size
delete mode 100644 test/disk_tests/sas_ssd/sda_smart
delete mode 100644 test/disk_tests/sas_ssd/sda_smart_expected.json
delete mode 100644 test/disk_tests/sas_ssd/sda_udevadm
delete mode 100644 test/disk_tests/ssd_smart/disklist
delete mode 100644 test/disk_tests/ssd_smart/disklist_expected.json
delete mode 100644 test/disk_tests/ssd_smart/sda/device/vendor
delete mode 100644 test/disk_tests/ssd_smart/sda/queue/rotational
delete mode 100644 test/disk_tests/ssd_smart/sda/size
delete mode 100644 test/disk_tests/ssd_smart/sda_smart
delete mode 100644 test/disk_tests/ssd_smart/sda_smart_expected.json
delete mode 100644 test/disk_tests/ssd_smart/sda_udevadm
delete mode 100644 test/disk_tests/ssd_smart/sdb/device/vendor
delete mode 100644 test/disk_tests/ssd_smart/sdb/queue/rotational
delete mode 100644 test/disk_tests/ssd_smart/sdb/size
delete mode 100644 test/disk_tests/ssd_smart/sdb_smart
delete mode 100644 test/disk_tests/ssd_smart/sdb_smart_expected.json
delete mode 100644 test/disk_tests/ssd_smart/sdb_udevadm
delete mode 100644 test/disk_tests/ssd_smart/sdc/device/vendor
delete mode 100644 test/disk_tests/ssd_smart/sdc/queue/rotational
delete mode 100644 test/disk_tests/ssd_smart/sdc/size
delete mode 100644 test/disk_tests/ssd_smart/sdc_smart
delete mode 100644 test/disk_tests/ssd_smart/sdc_smart_expected.json
delete mode 100644 test/disk_tests/ssd_smart/sdc_udevadm
delete mode 100644 test/disk_tests/ssd_smart/sdd/device/vendor
delete mode 100644 test/disk_tests/ssd_smart/sdd/queue/rotational
delete mode 100644 test/disk_tests/ssd_smart/sdd/size
delete mode 100644 test/disk_tests/ssd_smart/sdd_smart
delete mode 100644 test/disk_tests/ssd_smart/sdd_smart_expected.json
delete mode 100644 test/disk_tests/ssd_smart/sdd_udevadm
delete mode 100644 test/disk_tests/ssd_smart/sde/device/vendor
delete mode 100644 test/disk_tests/ssd_smart/sde/queue/rotational
delete mode 100644 test/disk_tests/ssd_smart/sde/size
delete mode 100644 test/disk_tests/ssd_smart/sde_smart
delete mode 100644 test/disk_tests/ssd_smart/sde_smart_expected.json
delete mode 100644 test/disk_tests/ssd_smart/sde_udevadm
delete mode 100644 test/disk_tests/usages/disklist
delete mode 100644 test/disk_tests/usages/disklist_expected.json
delete mode 100644 test/disk_tests/usages/lsblk
delete mode 100644 test/disk_tests/usages/lvs
delete mode 100644 test/disk_tests/usages/mounts
delete mode 100644 test/disk_tests/usages/partlist
delete mode 100644 test/disk_tests/usages/pvs
delete mode 100644 test/disk_tests/usages/sda/device/vendor
delete mode 100644 test/disk_tests/usages/sda/queue/rotational
delete mode 100644 test/disk_tests/usages/sda/size
delete mode 100644 test/disk_tests/usages/sda_udevadm
delete mode 100644 test/disk_tests/usages/sdb/device/vendor
delete mode 100644 test/disk_tests/usages/sdb/queue/rotational
delete mode 100644 test/disk_tests/usages/sdb/size
delete mode 100644 test/disk_tests/usages/sdb_udevadm
delete mode 100644 test/disk_tests/usages/sdc/device/vendor
delete mode 100644 test/disk_tests/usages/sdc/queue/rotational
delete mode 100644 test/disk_tests/usages/sdc/size
delete mode 100644 test/disk_tests/usages/sdc_udevadm
delete mode 100644 test/disk_tests/usages/sdd/device/vendor
delete mode 100644 test/disk_tests/usages/sdd/queue/rotational
delete mode 100644 test/disk_tests/usages/sdd/sdd1/size
delete mode 100644 test/disk_tests/usages/sdd/sdd2/size
delete mode 100644 test/disk_tests/usages/sdd/size
delete mode 100644 test/disk_tests/usages/sdd_udevadm
delete mode 100644 test/disk_tests/usages/sde/device/vendor
delete mode 100644 test/disk_tests/usages/sde/queue/rotational
delete mode 100644 test/disk_tests/usages/sde/sde1/size
delete mode 100644 test/disk_tests/usages/sde/size
delete mode 100644 test/disk_tests/usages/sde_udevadm
delete mode 100644 test/disk_tests/usages/sdf/device/vendor
delete mode 100644 test/disk_tests/usages/sdf/queue/rotational
delete mode 100644 test/disk_tests/usages/sdf/sdf1/size
delete mode 100644 test/disk_tests/usages/sdf/size
delete mode 100644 test/disk_tests/usages/sdf_udevadm
delete mode 100644 test/disk_tests/usages/sdg/device/vendor
delete mode 100644 test/disk_tests/usages/sdg/queue/rotational
delete mode 100644 test/disk_tests/usages/sdg/size
delete mode 100644 test/disk_tests/usages/sdg_udevadm
delete mode 100644 test/disk_tests/usages/sdh/device/vendor
delete mode 100644 test/disk_tests/usages/sdh/queue/rotational
delete mode 100644 test/disk_tests/usages/sdh/size
delete mode 100644 test/disk_tests/usages/sdh_udevadm
delete mode 100644 test/disk_tests/usages/sdi/device/vendor
delete mode 100644 test/disk_tests/usages/sdi/queue/rotational
delete mode 100644 test/disk_tests/usages/sdi/size
delete mode 100644 test/disk_tests/usages/sdi_udevadm
delete mode 100644 test/disk_tests/usages/sdj/device/vendor
delete mode 100644 test/disk_tests/usages/sdj/queue/rotational
delete mode 100644 test/disk_tests/usages/sdj/size
delete mode 100644 test/disk_tests/usages/sdj_udevadm
delete mode 100644 test/disk_tests/usages/sdk/device/vendor
delete mode 100644 test/disk_tests/usages/sdk/queue/rotational
delete mode 100644 test/disk_tests/usages/sdk/size
delete mode 100644 test/disk_tests/usages/sdk_udevadm
delete mode 100644 test/disk_tests/usages/sdl/device/vendor
delete mode 100644 test/disk_tests/usages/sdl/queue/rotational
delete mode 100644 test/disk_tests/usages/sdl/size
delete mode 100644 test/disk_tests/usages/sdl_udevadm
delete mode 100644 test/disk_tests/usages/sdm/device/vendor
delete mode 100644 test/disk_tests/usages/sdm/queue/rotational
delete mode 100644 test/disk_tests/usages/sdm/sdm1/size
delete mode 100644 test/disk_tests/usages/sdm/sdm9/size
delete mode 100644 test/disk_tests/usages/sdm/size
delete mode 100644 test/disk_tests/usages/sdm_udevadm
delete mode 100644 test/disk_tests/usages/sdn/device/vendor
delete mode 100644 test/disk_tests/usages/sdn/queue/rotational
delete mode 100644 test/disk_tests/usages/sdn/size
delete mode 100644 test/disk_tests/usages/sdn_udevadm
delete mode 100644 test/disk_tests/usages/zpool
diff --git a/test/disk_tests/cciss/cciss!c0d0/device/model b/test/disk_tests/cciss/cciss!c0d0/device/model
deleted file mode 100644
index 676b97d..0000000
--- a/test/disk_tests/cciss/cciss!c0d0/device/model
+++ /dev/null
@@ -1 +0,0 @@
-LOGICAL_VOLUME
diff --git a/test/disk_tests/cciss/cciss!c0d0/device/vendor b/test/disk_tests/cciss/cciss!c0d0/device/vendor
deleted file mode 100644
index e8b2ad6..0000000
--- a/test/disk_tests/cciss/cciss!c0d0/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-HP
diff --git a/test/disk_tests/cciss/cciss!c0d0/queue/rotational b/test/disk_tests/cciss/cciss!c0d0/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/cciss/cciss!c0d0/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/cciss/cciss!c0d0/size b/test/disk_tests/cciss/cciss!c0d0/size
deleted file mode 100644
index f599e28..0000000
--- a/test/disk_tests/cciss/cciss!c0d0/size
+++ /dev/null
@@ -1 +0,0 @@
-10
diff --git a/test/disk_tests/cciss/cciss!c0d0_udevadm b/test/disk_tests/cciss/cciss!c0d0_udevadm
deleted file mode 100644
index 21e8899..0000000
--- a/test/disk_tests/cciss/cciss!c0d0_udevadm
+++ /dev/null
@@ -1,32 +0,0 @@
-P: /devices/pci0000:40/0000:40:13.0/0000:45:00.0/cciss0/c0d0/block/cciss!c0d0
-N: cciss/c0d0
-S: disk/by-id/cciss-SERIAL111
-S: disk/by-id/wwn-0x00000000000000000000000000000000
-S: disk/by-path/pci-0000:45:00.0-cciss-disk0
-E: DEVLINKS=/dev/disk/by-id/cciss-000000000000000000000000000000000 /dev/disk/by-id/wwn-0x000000000000000000000000000000000/dev/disk/by-path/pci-0000:45:00.0-cciss-disk0
-E: DEVNAME=/dev/cciss/c0d0
-E: DEVPATH=/devices/pci0000:40/0000:40:13.0/0000:45:00.0/cciss0/c0d0/block/cciss!c0d0
-E: DEVTYPE=disk
-E: ID_BUS=cciss
-E: ID_MODEL=LOGICAL_VOLUME
-E: ID_MODEL_ENC=LOGICAL\x20VOLUME\x20\x20
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=cfe72deb-65d1-487c-bdfa-8af66dc1a969
-E: ID_PATH=pci-0000:45:00.0-cciss-disk0
-E: ID_PATH_TAG=pci-0000_45_00_0-cciss-disk0
-E: ID_REVISION=7.24
-E: ID_SCSI=1
-E: ID_SCSI_SERIAL=SERIAL1
-E: ID_SERIAL=SERIAL111
-E: ID_SERIAL_SHORT=SER111
-E: ID_TYPE=disk
-E: ID_VENDOR=HP
-E: ID_VENDOR_ENC=HP\x20\x20\x20\x20\x20\x20
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_VENDOR_EXTENSION=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x00000000000000000000000000000000
-E: MAJOR=104
-E: MINOR=0
-E: SUBSYSTEM=block
-E: TAGS=:systemd:
-E: USEC_INITIALIZED=2247
diff --git a/test/disk_tests/cciss/disklist b/test/disk_tests/cciss/disklist
deleted file mode 100644
index aa174aa..0000000
--- a/test/disk_tests/cciss/disklist
+++ /dev/null
@@ -1 +0,0 @@
-cciss!c0d0
diff --git a/test/disk_tests/cciss/disklist_expected.json b/test/disk_tests/cciss/disklist_expected.json
deleted file mode 100644
index eff58db..0000000
--- a/test/disk_tests/cciss/disklist_expected.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "cciss/c0d0" : {
- "wearout" : "N/A",
- "vendor" : "HP",
- "rpm" : -1,
- "type" : "unknown",
- "serial" : "SER111",
- "osdid" : -1,
- "health" : "UNKNOWN",
- "model" : "LOGICAL_VOLUME",
- "size" : 5120,
- "wwn" : "0x0000000000000000",
- "gpt" : 1,
- "devpath" : "/dev/cciss/c0d0"
- }
-}
diff --git a/test/disk_tests/hdd_smart/disklist b/test/disk_tests/hdd_smart/disklist
deleted file mode 100644
index 9f6776c..0000000
--- a/test/disk_tests/hdd_smart/disklist
+++ /dev/null
@@ -1,2 +0,0 @@
-sda
-sdb
diff --git a/test/disk_tests/hdd_smart/disklist_expected.json b/test/disk_tests/hdd_smart/disklist_expected.json
deleted file mode 100644
index 02a341e..0000000
--- a/test/disk_tests/hdd_smart/disklist_expected.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "sdb" : {
- "devpath" : "/dev/sdb",
- "size" : 1024000,
- "gpt" : 1,
- "osdid" : -1,
- "rpm" : 7200,
- "model" : "ST4000NM0033-9ZM170",
- "vendor" : "ATA",
- "health" : "PASSED",
- "type" : "hdd",
- "wwn" : "0x0000000000000000",
- "wearout" : "N/A",
- "serial" : "00000000"
- },
- "sda" : {
- "osdid" : -1,
- "size" : 1024000,
- "gpt" : 1,
- "devpath" : "/dev/sda",
- "model" : "ST4000DM000-1F2168",
- "rpm" : 5900,
- "type" : "hdd",
- "health" : "PASSED",
- "vendor" : "ATA",
- "serial" : "00000000",
- "wearout" : "N/A",
- "wwn" : "0x0000000000000000"
- }
-}
diff --git a/test/disk_tests/hdd_smart/sda/device/vendor b/test/disk_tests/hdd_smart/sda/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/hdd_smart/sda/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/hdd_smart/sda/queue/rotational b/test/disk_tests/hdd_smart/sda/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/hdd_smart/sda/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/hdd_smart/sda/size b/test/disk_tests/hdd_smart/sda/size
deleted file mode 100644
index 8bd1af1..0000000
--- a/test/disk_tests/hdd_smart/sda/size
+++ /dev/null
@@ -1 +0,0 @@
-2000
diff --git a/test/disk_tests/hdd_smart/sda_health b/test/disk_tests/hdd_smart/sda_health
deleted file mode 100644
index faf4ce3..0000000
--- a/test/disk_tests/hdd_smart/sda_health
+++ /dev/null
@@ -1,5 +0,0 @@
-smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
-Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
diff --git a/test/disk_tests/hdd_smart/sda_smart b/test/disk_tests/hdd_smart/sda_smart
deleted file mode 100644
index a3f8f0a..0000000
--- a/test/disk_tests/hdd_smart/sda_smart
+++ /dev/null
@@ -1,40 +0,0 @@
-smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
-Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
-
-SMART Attributes Data Structure revision number: 10
-Vendor Specific SMART Attributes with Thresholds:
-ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
- 1 Raw_Read_Error_Rate POSR-- 117 099 006 - 158983656
- 3 Spin_Up_Time PO---- 092 091 000 - 0
- 4 Start_Stop_Count -O--CK 100 100 020 - 189
- 5 Reallocated_Sector_Ct PO--CK 100 100 010 - 0
- 7 Seek_Error_Rate POSR-- 075 060 030 - 30779387
- 9 Power_On_Hours -O--CK 099 099 000 - 1250
- 10 Spin_Retry_Count PO--C- 100 100 097 - 0
- 12 Power_Cycle_Count -O--CK 100 100 020 - 190
-183 Runtime_Bad_Block -O--CK 100 100 000 - 0
-184 End-to-End_Error -O--CK 100 100 099 - 0
-187 Reported_Uncorrect -O--CK 100 100 000 - 0
-188 Command_Timeout -O--CK 100 100 000 - 0 0 0
-189 High_Fly_Writes -O-RCK 100 100 000 - 0
-190 Airflow_Temperature_Cel -O---K 069 061 045 - 31 (Min/Max 20/33)
-191 G-Sense_Error_Rate -O--CK 100 100 000 - 0
-192 Power-Off_Retract_Count -O--CK 100 100 000 - 43
-193 Load_Cycle_Count -O--CK 100 100 000 - 201
-194 Temperature_Celsius -O---K 031 040 000 - 31 (0 17 0 0 0)
-197 Current_Pending_Sector -O--C- 100 100 000 - 0
-198 Offline_Uncorrectable ----C- 100 100 000 - 0
-199 UDMA_CRC_Error_Count -OSRCK 200 200 000 - 0
-240 Head_Flying_Hours ------ 100 253 000 - 1259h+06m+33.546s
-241 Total_LBAs_Written ------ 100 253 000 - 24013587236
-242 Total_LBAs_Read ------ 100 253 000 - 66916845706732
- ||||||_ K auto-keep
- |||||__ C event count
- ||||___ R error rate
- |||____ S speed/performance
- ||_____ O updated online
- |______ P prefailure warning
-
diff --git a/test/disk_tests/hdd_smart/sda_smart_expected.json b/test/disk_tests/hdd_smart/sda_smart_expected.json
deleted file mode 100644
index 01bb860..0000000
--- a/test/disk_tests/hdd_smart/sda_smart_expected.json
+++ /dev/null
@@ -1,246 +0,0 @@
-{
- "attributes" : [
- {
- "threshold" : 6,
- "fail" : "-",
- "flags" : "POSR--",
- "value" : 117,
- "id" : " 1",
- "raw" : "158983656",
- "name" : "Raw_Read_Error_Rate",
- "worst" : 99
- },
- {
- "flags" : "PO----",
- "value" : 92,
- "raw" : "0",
- "name" : "Spin_Up_Time",
- "worst" : 91,
- "id" : " 3",
- "fail" : "-",
- "threshold" : 0
- },
- {
- "value" : 100,
- "flags" : "-O--CK",
- "id" : " 4",
- "name" : "Start_Stop_Count",
- "worst" : 100,
- "raw" : "189",
- "threshold" : 20,
- "fail" : "-"
- },
- {
- "value" : 100,
- "flags" : "PO--CK",
- "id" : " 5",
- "name" : "Reallocated_Sector_Ct",
- "worst" : 100,
- "raw" : "0",
- "threshold" : 10,
- "fail" : "-"
- },
- {
- "flags" : "POSR--",
- "value" : 75,
- "raw" : "30779387",
- "worst" : 60,
- "name" : "Seek_Error_Rate",
- "id" : " 7",
- "fail" : "-",
- "threshold" : 30
- },
- {
- "raw" : "1250",
- "worst" : 99,
- "name" : "Power_On_Hours",
- "id" : " 9",
- "flags" : "-O--CK",
- "value" : 99,
- "fail" : "-",
- "threshold" : 0
- },
- {
- "value" : 100,
- "flags" : "PO--C-",
- "id" : " 10",
- "name" : "Spin_Retry_Count",
- "worst" : 100,
- "raw" : "0",
- "threshold" : 97,
- "fail" : "-"
- },
- {
- "flags" : "-O--CK",
- "value" : 100,
- "id" : " 12",
- "raw" : "190",
- "worst" : 100,
- "name" : "Power_Cycle_Count",
- "threshold" : 20,
- "fail" : "-"
- },
- {
- "threshold" : 0,
- "fail" : "-",
- "flags" : "-O--CK",
- "value" : 100,
- "id" : "183",
- "raw" : "0",
- "worst" : 100,
- "name" : "Runtime_Bad_Block"
- },
- {
- "fail" : "-",
- "threshold" : 99,
- "flags" : "-O--CK",
- "value" : 100,
- "raw" : "0",
- "worst" : 100,
- "name" : "End-to-End_Error",
- "id" : "184"
- },
- {
- "worst" : 100,
- "name" : "Reported_Uncorrect",
- "raw" : "0",
- "id" : "187",
- "value" : 100,
- "flags" : "-O--CK",
- "fail" : "-",
- "threshold" : 0
- },
- {
- "flags" : "-O--CK",
- "value" : 100,
- "raw" : "0 0 0",
- "worst" : 100,
- "name" : "Command_Timeout",
- "id" : "188",
- "fail" : "-",
- "threshold" : 0
- },
- {
- "threshold" : 0,
- "fail" : "-",
- "flags" : "-O-RCK",
- "value" : 100,
- "id" : "189",
- "raw" : "0",
- "name" : "High_Fly_Writes",
- "worst" : 100
- },
- {
- "worst" : 61,
- "name" : "Airflow_Temperature_Cel",
- "raw" : "31 (Min/Max 20/33)",
- "id" : "190",
- "value" : 69,
- "flags" : "-O---K",
- "fail" : "-",
- "threshold" : 45
- },
- {
- "fail" : "-",
- "threshold" : 0,
- "worst" : 100,
- "name" : "G-Sense_Error_Rate",
- "raw" : "0",
- "id" : "191",
- "value" : 100,
- "flags" : "-O--CK"
- },
- {
- "id" : "192",
- "raw" : "43",
- "name" : "Power-Off_Retract_Count",
- "worst" : 100,
- "flags" : "-O--CK",
- "value" : 100,
- "threshold" : 0,
- "fail" : "-"
- },
- {
- "flags" : "-O--CK",
- "value" : 100,
- "raw" : "201",
- "worst" : 100,
- "name" : "Load_Cycle_Count",
- "id" : "193",
- "fail" : "-",
- "threshold" : 0
- },
- {
- "fail" : "-",
- "threshold" : 0,
- "value" : 31,
- "flags" : "-O---K",
- "name" : "Temperature_Celsius",
- "worst" : 40,
- "raw" : "31 (0 17 0 0 0)",
- "id" : "194"
- },
- {
- "value" : 100,
- "flags" : "-O--C-",
- "id" : "197",
- "worst" : 100,
- "name" : "Current_Pending_Sector",
- "raw" : "0",
- "threshold" : 0,
- "fail" : "-"
- },
- {
- "worst" : 100,
- "name" : "Offline_Uncorrectable",
- "raw" : "0",
- "id" : "198",
- "value" : 100,
- "flags" : "----C-",
- "fail" : "-",
- "threshold" : 0
- },
- {
- "threshold" : 0,
- "fail" : "-",
- "value" : 200,
- "flags" : "-OSRCK",
- "id" : "199",
- "worst" : 200,
- "name" : "UDMA_CRC_Error_Count",
- "raw" : "0"
- },
- {
- "raw" : "1259h+06m+33.546s",
- "name" : "Head_Flying_Hours",
- "worst" : 253,
- "id" : "240",
- "flags" : "------",
- "value" : 100,
- "fail" : "-",
- "threshold" : 0
- },
- {
- "fail" : "-",
- "threshold" : 0,
- "name" : "Total_LBAs_Written",
- "worst" : 253,
- "raw" : "24013587236",
- "id" : "241",
- "value" : 100,
- "flags" : "------"
- },
- {
- "flags" : "------",
- "value" : 100,
- "id" : "242",
- "raw" : "66916845706732",
- "worst" : 253,
- "name" : "Total_LBAs_Read",
- "threshold" : 0,
- "fail" : "-"
- }
- ],
- "health" : "PASSED",
- "type" : "ata"
-}
diff --git a/test/disk_tests/hdd_smart/sda_udevadm b/test/disk_tests/hdd_smart/sda_udevadm
deleted file mode 100644
index d9b5497..0000000
--- a/test/disk_tests/hdd_smart/sda_udevadm
+++ /dev/null
@@ -1,11 +0,0 @@
-E: DEVNAME=/dev/sda
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=5900
-E: ID_BUS=ata
-E: ID_MODEL=ST4000DM000-1F2168
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=4f2e07a6-5437-2b4e-b6e8-9cba98639324
-E: ID_SERIAL_SHORT=00000000
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/hdd_smart/sdb/device/vendor b/test/disk_tests/hdd_smart/sdb/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/hdd_smart/sdb/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/hdd_smart/sdb/queue/rotational b/test/disk_tests/hdd_smart/sdb/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/hdd_smart/sdb/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/hdd_smart/sdb/size b/test/disk_tests/hdd_smart/sdb/size
deleted file mode 100644
index 8bd1af1..0000000
--- a/test/disk_tests/hdd_smart/sdb/size
+++ /dev/null
@@ -1 +0,0 @@
-2000
diff --git a/test/disk_tests/hdd_smart/sdb_health b/test/disk_tests/hdd_smart/sdb_health
deleted file mode 100644
index faf4ce3..0000000
--- a/test/disk_tests/hdd_smart/sdb_health
+++ /dev/null
@@ -1,5 +0,0 @@
-smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
-Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
diff --git a/test/disk_tests/hdd_smart/sdb_smart b/test/disk_tests/hdd_smart/sdb_smart
deleted file mode 100644
index ce52bea..0000000
--- a/test/disk_tests/hdd_smart/sdb_smart
+++ /dev/null
@@ -1,36 +0,0 @@
-smartctl 6.4 2014-10-07 r4002 [x86_64-linux-4.4.10-1-pve] (local build)
-Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
-
-SMART Attributes Data Structure revision number: 10
-Vendor Specific SMART Attributes with Thresholds:
-ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH FAIL RAW_VALUE
- 1 Raw_Read_Error_Rate POSR-- 083 063 044 - 215697022
- 3 Spin_Up_Time PO---- 092 091 000 - 0
- 4 Start_Stop_Count -O--CK 100 100 020 - 265
- 5 Reallocated_Sector_Ct PO--CK 100 100 010 - 0
- 7 Seek_Error_Rate POSR-- 091 060 030 - 1572375006
- 9 Power_On_Hours -O--CK 089 089 000 - 9885
- 10 Spin_Retry_Count PO--C- 100 100 097 - 0
- 12 Power_Cycle_Count -O--CK 100 100 020 - 265
-184 End-to-End_Error -O--CK 100 100 099 - 0
-187 Reported_Uncorrect -O--CK 100 100 000 - 0
-188 Command_Timeout -O--CK 100 100 000 - 0
-189 High_Fly_Writes -O--CK 100 100 000 - 0
-190 Airflow_Temperature_Cel -O-RCK 045 036 045 NOW 55 (147 229 55 24 0)
-191 G-Sense_Error_Rate -O---K 100 100 000 - 0
-192 Power-Off_Retract_Count -O--CK 100 100 000 - 57
-193 Load_Cycle_Count -O--CK 100 100 000 - 265
-194 Temperature_Celsius -O--CK 055 064 000 - 55 (0 16 0 0 0)
-195 Hardware_ECC_Recovered -O---K 023 013 000 - 215697022
-197 Current_Pending_Sector -O--C- 100 100 000 - 0
-198 Offline_Uncorrectable ----C- 100 100 000 - 0
-199 UDMA_CRC_Error_Count -OSRCK 200 200 000 - 0
- ||||||_ K auto-keep
- |||||__ C event count
- ||||___ R error rate
- |||____ S speed/performance
- ||_____ O updated online
- |______ P prefailure warning
diff --git a/test/disk_tests/hdd_smart/sdb_smart_expected.json b/test/disk_tests/hdd_smart/sdb_smart_expected.json
deleted file mode 100644
index 41e55fb..0000000
--- a/test/disk_tests/hdd_smart/sdb_smart_expected.json
+++ /dev/null
@@ -1,216 +0,0 @@
-{
- "attributes" : [
- {
- "threshold" : 44,
- "fail" : "-",
- "id" : " 1",
- "name" : "Raw_Read_Error_Rate",
- "worst" : 63,
- "raw" : "215697022",
- "value" : 83,
- "flags" : "POSR--"
- },
- {
- "flags" : "PO----",
- "value" : 92,
- "id" : " 3",
- "raw" : "0",
- "worst" : 91,
- "name" : "Spin_Up_Time",
- "threshold" : 0,
- "fail" : "-"
- },
- {
- "fail" : "-",
- "threshold" : 20,
- "value" : 100,
- "flags" : "-O--CK",
- "worst" : 100,
- "name" : "Start_Stop_Count",
- "raw" : "265",
- "id" : " 4"
- },
- {
- "flags" : "PO--CK",
- "value" : 100,
- "id" : " 5",
- "raw" : "0",
- "name" : "Reallocated_Sector_Ct",
- "worst" : 100,
- "threshold" : 10,
- "fail" : "-"
- },
- {
- "id" : " 7",
- "raw" : "1572375006",
- "name" : "Seek_Error_Rate",
- "worst" : 60,
- "flags" : "POSR--",
- "value" : 91,
- "threshold" : 30,
- "fail" : "-"
- },
- {
- "raw" : "9885",
- "name" : "Power_On_Hours",
- "worst" : 89,
- "id" : " 9",
- "flags" : "-O--CK",
- "value" : 89,
- "fail" : "-",
- "threshold" : 0
- },
- {
- "fail" : "-",
- "threshold" : 97,
- "value" : 100,
- "flags" : "PO--C-",
- "worst" : 100,
- "name" : "Spin_Retry_Count",
- "raw" : "0",
- "id" : " 10"
- },
- {
- "threshold" : 20,
- "fail" : "-",
- "id" : " 12",
- "raw" : "265",
- "name" : "Power_Cycle_Count",
- "worst" : 100,
- "flags" : "-O--CK",
- "value" : 100
- },
- {
- "name" : "End-to-End_Error",
- "worst" : 100,
- "raw" : "0",
- "id" : "184",
- "value" : 100,
- "flags" : "-O--CK",
- "fail" : "-",
- "threshold" : 99
- },
- {
- "threshold" : 0,
- "fail" : "-",
- "id" : "187",
- "raw" : "0",
- "name" : "Reported_Uncorrect",
- "worst" : 100,
- "flags" : "-O--CK",
- "value" : 100
- },
- {
- "threshold" : 0,
- "fail" : "-",
- "id" : "188",
- "raw" : "0",
- "name" : "Command_Timeout",
- "worst" : 100,
- "flags" : "-O--CK",
- "value" : 100
- },
- {
- "fail" : "-",
- "threshold" : 0,
- "raw" : "0",
- "worst" : 100,
- "name" : "High_Fly_Writes",
- "id" : "189",
- "flags" : "-O--CK",
- "value" : 100
- },
- {
- "flags" : "-O-RCK",
- "value" : 45,
- "raw" : "55 (147 229 55 24 0)",
- "worst" : 36,
- "name" : "Airflow_Temperature_Cel",
- "id" : "190",
- "fail" : "NOW",
- "threshold" : 45
- },
- {
- "fail" : "-",
- "threshold" : 0,
- "raw" : "0",
- "worst" : 100,
- "name" : "G-Sense_Error_Rate",
- "id" : "191",
- "flags" : "-O---K",
- "value" : 100
- },
- {
- "threshold" : 0,
- "fail" : "-",
- "id" : "192",
- "raw" : "57",
- "worst" : 100,
- "name" : "Power-Off_Retract_Count",
- "flags" : "-O--CK",
- "value" : 100
- },
- {
- "fail" : "-",
- "threshold" : 0,
- "value" : 100,
- "flags" : "-O--CK",
- "name" : "Load_Cycle_Count",
- "worst" : 100,
- "raw" : "265",
- "id" : "193"
- },
- {
- "threshold" : 0,
- "fail" : "-",
- "flags" : "-O--CK",
- "value" : 55,
- "id" : "194",
- "raw" : "55 (0 16 0 0 0)",
- "name" : "Temperature_Celsius",
- "worst" : 64
- },
- {
- "threshold" : 0,
- "fail" : "-",
- "id" : "195",
- "name" : "Hardware_ECC_Recovered",
- "worst" : 13,
- "raw" : "215697022",
- "value" : 23,
- "flags" : "-O---K"
- },
- {
- "worst" : 100,
- "name" : "Current_Pending_Sector",
- "raw" : "0",
- "id" : "197",
- "value" : 100,
- "flags" : "-O--C-",
- "fail" : "-",
- "threshold" : 0
- },
- {
- "worst" : 100,
- "name" : "Offline_Uncorrectable",
- "raw" : "0",
- "id" : "198",
- "value" : 100,
- "flags" : "----C-",
- "fail" : "-",
- "threshold" : 0
- },
- {
- "fail" : "-",
- "threshold" : 0,
- "value" : 200,
- "flags" : "-OSRCK",
- "worst" : 200,
- "name" : "UDMA_CRC_Error_Count",
- "raw" : "0",
- "id" : "199"
- }
- ],
- "type" : "ata",
- "health" : "PASSED"
-}
diff --git a/test/disk_tests/hdd_smart/sdb_udevadm b/test/disk_tests/hdd_smart/sdb_udevadm
deleted file mode 100644
index 3bc3a57..0000000
--- a/test/disk_tests/hdd_smart/sdb_udevadm
+++ /dev/null
@@ -1,11 +0,0 @@
-E: DEVNAME=/dev/sdb
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=7200
-E: ID_BUS=ata
-E: ID_MODEL=ST4000NM0033-9ZM170
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=4f2e07a6-5437-2b4e-b6e8-9cba98639324
-E: ID_SERIAL_SHORT=00000000
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/nvme_smart/disklist b/test/disk_tests/nvme_smart/disklist
deleted file mode 100644
index d00b90e..0000000
--- a/test/disk_tests/nvme_smart/disklist
+++ /dev/null
@@ -1 +0,0 @@
-nvme0n1
diff --git a/test/disk_tests/nvme_smart/disklist_expected.json b/test/disk_tests/nvme_smart/disklist_expected.json
deleted file mode 100644
index 4d1c92f..0000000
--- a/test/disk_tests/nvme_smart/disklist_expected.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "nvme0n1" : {
- "wearout" : 69,
- "vendor" : "unknown",
- "size" : 512000,
- "health" : "PASSED",
- "serial" : "unknown",
- "model" : "NVME MODEL 1",
- "rpm" : 0,
- "osdid" : -1,
- "devpath" : "/dev/nvme0n1",
- "gpt" : 0,
- "wwn" : "unknown",
- "type" : "nvme"
- }
-}
diff --git a/test/disk_tests/nvme_smart/nvme0/model b/test/disk_tests/nvme_smart/nvme0/model
deleted file mode 100644
index 9bd6eba..0000000
--- a/test/disk_tests/nvme_smart/nvme0/model
+++ /dev/null
@@ -1 +0,0 @@
-NVME MODEL 1
diff --git a/test/disk_tests/nvme_smart/nvme0_smart b/test/disk_tests/nvme_smart/nvme0_smart
deleted file mode 100644
index f371d5b..0000000
--- a/test/disk_tests/nvme_smart/nvme0_smart
+++ /dev/null
@@ -1,22 +0,0 @@
-smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.19-1-pve] (local build)
-Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
-
-SMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)
-Critical Warning: 0x00
-Temperature: 32 Celsius
-Available Spare: 100%
-Available Spare Threshold: 10%
-Percentage Used: 31%
-Data Units Read: 1,299,288 [665 GB]
-Data Units Written: 5,592,478 [2.86 TB]
-Host Read Commands: 30,360,807
-Host Write Commands: 470,356,196
-Controller Busy Time: 12
-Power Cycles: 98
-Power On Hours: 687
-Unsafe Shutdowns: 21
-Media and Data Integrity Errors: 0
-Error Information Log Entries: 0
diff --git a/test/disk_tests/nvme_smart/nvme0n1/device b/test/disk_tests/nvme_smart/nvme0n1/device
deleted file mode 120000
index e890f3e..0000000
--- a/test/disk_tests/nvme_smart/nvme0n1/device
+++ /dev/null
@@ -1 +0,0 @@
-../nvme0
\ No newline at end of file
diff --git a/test/disk_tests/nvme_smart/nvme0n1/queue/rotational b/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
deleted file mode 100644
index 573541a..0000000
--- a/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/test/disk_tests/nvme_smart/nvme0n1/size b/test/disk_tests/nvme_smart/nvme0n1/size
deleted file mode 100644
index 83b33d2..0000000
--- a/test/disk_tests/nvme_smart/nvme0n1/size
+++ /dev/null
@@ -1 +0,0 @@
-1000
diff --git a/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json b/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
deleted file mode 100644
index af8eade..0000000
--- a/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "text" : "\nSMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)\nCritical Warning: 0x00\nTemperature: 32 Celsius\nAvailable Spare: 100%\nAvailable Spare Threshold: 10%\nPercentage Used: 31%\nData Units Read: 1,299,288 [665 GB]\nData Units Written: 5,592,478 [2.86 TB]\nHost Read Commands: 30,360,807\nHost Write Commands: 470,356,196\nController Busy Time: 12\nPower Cycles: 98\nPower On Hours: 687\nUnsafe Shutdowns: 21\nMedia and Data Integrity Errors: 0\nError Information Log Entries: 0\n",
- "health" : "PASSED",
- "type" : "text",
- "wearout": 69
-}
diff --git a/test/disk_tests/nvme_smart/nvme0n1_udevadm b/test/disk_tests/nvme_smart/nvme0n1_udevadm
deleted file mode 100644
index 36c78ce..0000000
--- a/test/disk_tests/nvme_smart/nvme0n1_udevadm
+++ /dev/null
@@ -1,18 +0,0 @@
-
-P: /devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
-N: nvme0n1
-S: disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
-E: DEVLINKS=/dev/disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
-E: DEVNAME=/dev/nvme0n1
-E: DEVPATH=/devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
-E: DEVTYPE=disk
-E: ID_FS_TYPE=LVM2_member
-E: ID_FS_USAGE=raid
-E: ID_FS_UUID=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
-E: ID_FS_UUID_ENC=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
-E: ID_FS_VERSION=LVM2 001
-E: MAJOR=259
-E: MINOR=0
-E: SUBSYSTEM=block
-E: TAGS=:systemd:
-E: USEC_INITIALIZED=3842
diff --git a/test/disk_tests/sas/disklist b/test/disk_tests/sas/disklist
deleted file mode 100644
index 9191c61..0000000
--- a/test/disk_tests/sas/disklist
+++ /dev/null
@@ -1 +0,0 @@
-sda
diff --git a/test/disk_tests/sas/disklist_expected.json b/test/disk_tests/sas/disklist_expected.json
deleted file mode 100644
index 39b14a5..0000000
--- a/test/disk_tests/sas/disklist_expected.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "sda" : {
- "gpt" : 1,
- "devpath" : "/dev/sda",
- "type" : "unknown",
- "model" : "MODEL1",
- "health" : "UNKNOWN",
- "osdid" : -1,
- "wwn" : "0x0000000000000000",
- "vendor" : "VENDOR1",
- "rpm" : -1,
- "size" : 5120000,
- "serial" : "SER2",
- "wearout" : "N/A",
- "by_id_link" : "/dev/disk/by-id/scsi-00000000000000000"
- }
-}
diff --git a/test/disk_tests/sas/sda/device/model b/test/disk_tests/sas/sda/device/model
deleted file mode 100644
index 6b69674..0000000
--- a/test/disk_tests/sas/sda/device/model
+++ /dev/null
@@ -1 +0,0 @@
-MODEL1
diff --git a/test/disk_tests/sas/sda/device/vendor b/test/disk_tests/sas/sda/device/vendor
deleted file mode 100644
index a7894eb..0000000
--- a/test/disk_tests/sas/sda/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-VENDOR1
diff --git a/test/disk_tests/sas/sda/queue/rotational b/test/disk_tests/sas/sda/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/sas/sda/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/sas/sda/size b/test/disk_tests/sas/sda/size
deleted file mode 100644
index 5caff40..0000000
--- a/test/disk_tests/sas/sda/size
+++ /dev/null
@@ -1 +0,0 @@
-10000
diff --git a/test/disk_tests/sas/sda_smart b/test/disk_tests/sas/sda_smart
deleted file mode 100644
index 856af39..0000000
--- a/test/disk_tests/sas/sda_smart
+++ /dev/null
@@ -1,20 +0,0 @@
-=== START OF READ SMART DATA SECTION ===
-SMART Health Status: OK
-
-Percentage used endurance indicator: 0%
-Current Drive Temperature: 20 C
-Drive Trip Temperature: 70 C
-
-Manufactured in week 47 of year 2012
-Specified cycle count over device lifetime: 0
-Accumulated start-stop cycles: 0
-Specified load-unload count over device lifetime: 0
-Accumulated load-unload cycles: 0
-Elements in grown defect list: 0
-
-Vendor (Seagate) cache information
- Blocks sent to initiator = 1286675833552896
-
-Vendor (Seagate/Hitachi) factory information
- number of hours powered up = 7127.12
- number of minutes until next internal SMART test = 0
diff --git a/test/disk_tests/sas/sda_smart_expected.json b/test/disk_tests/sas/sda_smart_expected.json
deleted file mode 100644
index 2964372..0000000
--- a/test/disk_tests/sas/sda_smart_expected.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "health" : "OK",
- "text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature: 20 C\nDrive Trip Temperature: 70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime: 0\nAccumulated start-stop cycles: 0\nSpecified load-unload count over device lifetime: 0\nAccumulated load-unload cycles: 0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n number of hours powered up = 7127.12\n number of minutes until next internal SMART test = 0\n",
- "type" : "text",
- "wearout": 100
-}
diff --git a/test/disk_tests/sas/sda_udevadm b/test/disk_tests/sas/sda_udevadm
deleted file mode 100644
index ac0744d..0000000
--- a/test/disk_tests/sas/sda_udevadm
+++ /dev/null
@@ -1,31 +0,0 @@
-P: /devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
-N: sda
-S: disk/by-id/scsi-00000000000000000
-S: disk/by-id/wwn-0x0000000000000000
-S: disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
-E: DEVLINKS=/dev/disk/by-id/scsi-00000000000000000 /dev/disk/by-id/wwn-0x0000000000000000 /dev/disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
-E: DEVNAME=/dev/sda
-E: DEVPATH=/devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
-E: DEVTYPE=disk
-E: ID_BUS=scsi
-E: ID_MODEL=MODEL1
-E: ID_MODEL_ENC=MODEL1\x20\x20\x20\x20\x20\x20
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=605740f0-44a1-4dc5-9fea-bde166df963e
-E: ID_PATH=pci-0000:02:00.0-sas-0x0000000000000000-lun-0
-E: ID_PATH_TAG=pci-0000_02_00_0-sas-0x0000000000000000-lun-0
-E: ID_REVISION=ES64
-E: ID_SCSI=1
-E: ID_SCSI_SERIAL=SERIAL
-E: ID_SERIAL=SERIAL2
-E: ID_SERIAL_SHORT=SER2
-E: ID_TYPE=disk
-E: ID_VENDOR=VENDOR1
-E: ID_VENDOR_ENC=VENDOR1\x20
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
-E: MAJOR=8
-E: MINOR=0
-E: SUBSYSTEM=block
-E: TAGS=:systemd:
-E: USEC_INITIALIZED=667541
diff --git a/test/disk_tests/sas_ssd/disklist b/test/disk_tests/sas_ssd/disklist
deleted file mode 100644
index 9191c61..0000000
--- a/test/disk_tests/sas_ssd/disklist
+++ /dev/null
@@ -1 +0,0 @@
-sda
diff --git a/test/disk_tests/sas_ssd/disklist_expected.json b/test/disk_tests/sas_ssd/disklist_expected.json
deleted file mode 100644
index dd9b748..0000000
--- a/test/disk_tests/sas_ssd/disklist_expected.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "sda" : {
- "gpt" : 1,
- "devpath" : "/dev/sda",
- "type" : "ssd",
- "model" : "MODEL1",
- "health" : "OK",
- "osdid" : -1,
- "wwn" : "0x0000000000000000",
- "vendor" : "VENDOR1",
- "rpm" : 0,
- "size" : 5120000,
- "serial" : "SER2",
- "wearout" : 100,
- "by_id_link" : "/dev/disk/by-id/scsi-00000000000000000"
- }
-}
diff --git a/test/disk_tests/sas_ssd/sda/device/model b/test/disk_tests/sas_ssd/sda/device/model
deleted file mode 100644
index 6b69674..0000000
--- a/test/disk_tests/sas_ssd/sda/device/model
+++ /dev/null
@@ -1 +0,0 @@
-MODEL1
diff --git a/test/disk_tests/sas_ssd/sda/device/vendor b/test/disk_tests/sas_ssd/sda/device/vendor
deleted file mode 100644
index a7894eb..0000000
--- a/test/disk_tests/sas_ssd/sda/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-VENDOR1
diff --git a/test/disk_tests/sas_ssd/sda/queue/rotational b/test/disk_tests/sas_ssd/sda/queue/rotational
deleted file mode 100644
index 573541a..0000000
--- a/test/disk_tests/sas_ssd/sda/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/test/disk_tests/sas_ssd/sda/size b/test/disk_tests/sas_ssd/sda/size
deleted file mode 100644
index 5caff40..0000000
--- a/test/disk_tests/sas_ssd/sda/size
+++ /dev/null
@@ -1 +0,0 @@
-10000
diff --git a/test/disk_tests/sas_ssd/sda_smart b/test/disk_tests/sas_ssd/sda_smart
deleted file mode 100644
index 856af39..0000000
--- a/test/disk_tests/sas_ssd/sda_smart
+++ /dev/null
@@ -1,20 +0,0 @@
-=== START OF READ SMART DATA SECTION ===
-SMART Health Status: OK
-
-Percentage used endurance indicator: 0%
-Current Drive Temperature: 20 C
-Drive Trip Temperature: 70 C
-
-Manufactured in week 47 of year 2012
-Specified cycle count over device lifetime: 0
-Accumulated start-stop cycles: 0
-Specified load-unload count over device lifetime: 0
-Accumulated load-unload cycles: 0
-Elements in grown defect list: 0
-
-Vendor (Seagate) cache information
- Blocks sent to initiator = 1286675833552896
-
-Vendor (Seagate/Hitachi) factory information
- number of hours powered up = 7127.12
- number of minutes until next internal SMART test = 0
diff --git a/test/disk_tests/sas_ssd/sda_smart_expected.json b/test/disk_tests/sas_ssd/sda_smart_expected.json
deleted file mode 100644
index 2964372..0000000
--- a/test/disk_tests/sas_ssd/sda_smart_expected.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "health" : "OK",
- "text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature: 20 C\nDrive Trip Temperature: 70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime: 0\nAccumulated start-stop cycles: 0\nSpecified load-unload count over device lifetime: 0\nAccumulated load-unload cycles: 0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n number of hours powered up = 7127.12\n number of minutes until next internal SMART test = 0\n",
- "type" : "text",
- "wearout": 100
-}
diff --git a/test/disk_tests/sas_ssd/sda_udevadm b/test/disk_tests/sas_ssd/sda_udevadm
deleted file mode 100644
index ac0744d..0000000
--- a/test/disk_tests/sas_ssd/sda_udevadm
+++ /dev/null
@@ -1,31 +0,0 @@
-P: /devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
-N: sda
-S: disk/by-id/scsi-00000000000000000
-S: disk/by-id/wwn-0x0000000000000000
-S: disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
-E: DEVLINKS=/dev/disk/by-id/scsi-00000000000000000 /dev/disk/by-id/wwn-0x0000000000000000 /dev/disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
-E: DEVNAME=/dev/sda
-E: DEVPATH=/devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
-E: DEVTYPE=disk
-E: ID_BUS=scsi
-E: ID_MODEL=MODEL1
-E: ID_MODEL_ENC=MODEL1\x20\x20\x20\x20\x20\x20
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=605740f0-44a1-4dc5-9fea-bde166df963e
-E: ID_PATH=pci-0000:02:00.0-sas-0x0000000000000000-lun-0
-E: ID_PATH_TAG=pci-0000_02_00_0-sas-0x0000000000000000-lun-0
-E: ID_REVISION=ES64
-E: ID_SCSI=1
-E: ID_SCSI_SERIAL=SERIAL
-E: ID_SERIAL=SERIAL2
-E: ID_SERIAL_SHORT=SER2
-E: ID_TYPE=disk
-E: ID_VENDOR=VENDOR1
-E: ID_VENDOR_ENC=VENDOR1\x20
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
-E: MAJOR=8
-E: MINOR=0
-E: SUBSYSTEM=block
-E: TAGS=:systemd:
-E: USEC_INITIALIZED=667541
diff --git a/test/disk_tests/ssd_smart/disklist b/test/disk_tests/ssd_smart/disklist
deleted file mode 100644
index 18048d5..0000000
--- a/test/disk_tests/ssd_smart/disklist
+++ /dev/null
@@ -1,5 +0,0 @@
-sda
-sdb
-sdc
-sdd
-sde
diff --git a/test/disk_tests/ssd_smart/disklist_expected.json b/test/disk_tests/ssd_smart/disklist_expected.json
deleted file mode 100644
index d84b9dc..0000000
--- a/test/disk_tests/ssd_smart/disklist_expected.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "sda" : {
- "serial" : "000000000000",
- "vendor" : "ATA",
- "rpm" : 0,
- "gpt" : 1,
- "health" : "PASSED",
- "wearout" : "100",
- "osdid" : -1,
- "size" : 512000,
- "type" : "ssd",
- "devpath" : "/dev/sda",
- "model" : "Crucial_CT500MX200SSD1",
- "wwn" : "0x0000000000000000"
- },
- "sdb" : {
- "model" : "INTEL_SSDSC2BB080G6",
- "devpath" : "/dev/sdb",
- "osdid" : -1,
- "type" : "ssd",
- "size" : 512000,
- "wwn" : "0x0000000000000000",
- "gpt" : 1,
- "rpm" : 0,
- "vendor" : "ATA",
- "serial" : "000000000000000000",
- "wearout" : "97",
- "health" : "PASSED"
- },
- "sdc" : {
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdc",
- "model" : "Samsung SSD 850 PRO 512GB",
- "osdid" : -1,
- "type" : "ssd",
- "size" : 512000,
- "wearout" : "99",
- "health" : "PASSED",
- "gpt" : 1,
- "rpm" : 0,
- "vendor" : "ATA",
- "serial" : "000000000000"
- },
- "sdd" : {
- "rpm" : 0,
- "gpt" : 1,
- "serial" : "000000000000",
- "vendor" : "ATA",
- "wearout" : "100",
- "health" : "PASSED",
- "devpath" : "/dev/sdd",
- "model" : "SanDisk SD8SB8U1T001122",
- "size" : 512000,
- "osdid" : -1,
- "type" : "ssd",
- "wwn" : "0x0000000000000000"
- },
- "sde" : {
- "type" : "ssd",
- "osdid" : -1,
- "size" : 512000,
- "model" : "KINGSTON SHFS37A120G",
- "devpath" : "/dev/sde",
- "wwn" : "0x0000000000000000",
- "vendor" : "ATA",
- "serial" : "000000000000",
- "gpt" : 1,
- "rpm" : 0,
- "health" : "PASSED",
- "wearout" : "91"
- }
-}
diff --git a/test/disk_tests/ssd_smart/sda/device/vendor b/test/disk_tests/ssd_smart/sda/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/ssd_smart/sda/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/ssd_smart/sda/queue/rotational b/test/disk_tests/ssd_smart/sda/queue/rotational
deleted file mode 100644
index 573541a..0000000
--- a/test/disk_tests/ssd_smart/sda/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/test/disk_tests/ssd_smart/sda/size b/test/disk_tests/ssd_smart/sda/size
deleted file mode 100644
index 83b33d2..0000000
--- a/test/disk_tests/ssd_smart/sda/size
+++ /dev/null
@@ -1 +0,0 @@
-1000
diff --git a/test/disk_tests/ssd_smart/sda_smart b/test/disk_tests/ssd_smart/sda_smart
deleted file mode 100644
index 2857588..0000000
--- a/test/disk_tests/ssd_smart/sda_smart
+++ /dev/null
@@ -1,39 +0,0 @@
-smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
-Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
-
-SMART Attributes Data Structure revision number: 16
-Vendor Specific SMART Attributes with Thresholds:
-ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
- 1 Raw_Read_Error_Rate POSR-K 100 100 000 - 0
- 5 Reallocate_NAND_Blk_Cnt -O--CK 100 100 010 - 0
- 9 Power_On_Hours -O--CK 100 100 000 - 1309
- 12 Power_Cycle_Count -O--CK 100 100 000 - 200
-171 Program_Fail_Count -O--CK 100 100 000 - 0
-172 Erase_Fail_Count -O--CK 100 100 000 - 0
-173 Ave_Block-Erase_Count -O--CK 100 100 000 - 12
-174 Unexpect_Power_Loss_Ct -O--CK 100 100 000 - 53
-180 Unused_Reserve_NAND_Blk PO--CK 000 000 000 - 5565
-183 SATA_Interfac_Downshift -O--CK 100 100 000 - 0
-184 Error_Correction_Count -O--CK 100 100 000 - 0
-187 Reported_Uncorrect -O--CK 100 100 000 - 0
-194 Temperature_Celsius -O---K 068 054 000 - 32 (Min/Max 22/46)
-196 Reallocated_Event_Count -O--CK 100 100 000 - 0
-197 Current_Pending_Sector -O--CK 100 100 000 - 0
-198 Offline_Uncorrectable ----CK 100 100 000 - 0
-199 UDMA_CRC_Error_Count -O--CK 100 100 000 - 0
-202 Percent_Lifetime_Used ----CK 100 100 001 - 0
-206 Write_Error_Rate -OSR-- 100 100 000 - 0
-210 Success_RAIN_Recov_Cnt -O--CK 100 100 000 - 0
-246 Total_Host_Sector_Write -O--CK 100 100 000 - 6751830403
-247 Host_Program_Page_Count -O--CK 100 100 000 - 211228065
-248 Bckgnd_Program_Page_Cnt -O--CK 100 100 000 - 253276904
- ||||||_ K auto-keep
- |||||__ C event count
- ||||___ R error rate
- |||____ S speed/performance
- ||_____ O updated online
- |______ P prefailure warning
-
diff --git a/test/disk_tests/ssd_smart/sda_smart_expected.json b/test/disk_tests/ssd_smart/sda_smart_expected.json
deleted file mode 100644
index a71fab2..0000000
--- a/test/disk_tests/ssd_smart/sda_smart_expected.json
+++ /dev/null
@@ -1,236 +0,0 @@
-{
- "type" : "ata",
- "health" : "PASSED",
- "attributes" : [
- {
- "worst" : 100,
- "threshold" : 0,
- "name" : "Raw_Read_Error_Rate",
- "id" : " 1",
- "flags" : "POSR-K",
- "raw" : "0",
- "fail" : "-",
- "value" : 100
- },
- {
- "worst" : 100,
- "threshold" : 10,
- "name" : "Reallocate_NAND_Blk_Cnt",
- "id" : " 5",
- "flags" : "-O--CK",
- "raw" : "0",
- "fail" : "-",
- "value" : 100
- },
- {
- "name" : "Power_On_Hours",
- "threshold" : 0,
- "worst" : 100,
- "value" : 100,
- "fail" : "-",
- "raw" : "1309",
- "flags" : "-O--CK",
- "id" : " 9"
- },
- {
- "threshold" : 0,
- "name" : "Power_Cycle_Count",
- "worst" : 100,
- "raw" : "200",
- "flags" : "-O--CK",
- "fail" : "-",
- "id" : " 12",
- "value" : 100
- },
- {
- "value" : 100,
- "raw" : "0",
- "flags" : "-O--CK",
- "fail" : "-",
- "id" : "171",
- "threshold" : 0,
- "name" : "Program_Fail_Count",
- "worst" : 100
- },
- {
- "value" : 100,
- "id" : "172",
- "raw" : "0",
- "flags" : "-O--CK",
- "fail" : "-",
- "worst" : 100,
- "threshold" : 0,
- "name" : "Erase_Fail_Count"
- },
- {
- "threshold" : 0,
- "name" : "Ave_Block-Erase_Count",
- "worst" : 100,
- "raw" : "12",
- "flags" : "-O--CK",
- "fail" : "-",
- "id" : "173",
- "value" : 100
- },
- {
- "name" : "Unexpect_Power_Loss_Ct",
- "threshold" : 0,
- "worst" : 100,
- "value" : 100,
- "fail" : "-",
- "raw" : "53",
- "flags" : "-O--CK",
- "id" : "174"
- },
- {
- "raw" : "5565",
- "flags" : "PO--CK",
- "fail" : "-",
- "id" : "180",
- "value" : 0,
- "threshold" : 0,
- "name" : "Unused_Reserve_NAND_Blk",
- "worst" : 0
- },
- {
- "name" : "SATA_Interfac_Downshift",
- "threshold" : 0,
- "worst" : 100,
- "fail" : "-",
- "raw" : "0",
- "flags" : "-O--CK",
- "id" : "183",
- "value" : 100
- },
- {
- "worst" : 100,
- "threshold" : 0,
- "name" : "Error_Correction_Count",
- "id" : "184",
- "flags" : "-O--CK",
- "raw" : "0",
- "fail" : "-",
- "value" : 100
- },
- {
- "name" : "Reported_Uncorrect",
- "threshold" : 0,
- "worst" : 100,
- "value" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "raw" : "0",
- "id" : "187"
- },
- {
- "worst" : 54,
- "name" : "Temperature_Celsius",
- "threshold" : 0,
- "id" : "194",
- "fail" : "-",
- "flags" : "-O---K",
- "raw" : "32 (Min/Max 22/46)",
- "value" : 68
- },
- {
- "raw" : "0",
- "flags" : "-O--CK",
- "fail" : "-",
- "id" : "196",
- "value" : 100,
- "threshold" : 0,
- "name" : "Reallocated_Event_Count",
- "worst" : 100
- },
- {
- "id" : "197",
- "fail" : "-",
- "flags" : "-O--CK",
- "raw" : "0",
- "value" : 100,
- "worst" : 100,
- "name" : "Current_Pending_Sector",
- "threshold" : 0
- },
- {
- "threshold" : 0,
- "name" : "Offline_Uncorrectable",
- "worst" : 100,
- "flags" : "----CK",
- "raw" : "0",
- "fail" : "-",
- "id" : "198",
- "value" : 100
- },
- {
- "worst" : 100,
- "name" : "UDMA_CRC_Error_Count",
- "threshold" : 0,
- "id" : "199",
- "fail" : "-",
- "raw" : "0",
- "flags" : "-O--CK",
- "value" : 100
- },
- {
- "value" : 100,
- "id" : "202",
- "flags" : "----CK",
- "raw" : "0",
- "fail" : "-",
- "worst" : 100,
- "threshold" : 1,
- "name" : "Percent_Lifetime_Used"
- },
- {
- "name" : "Write_Error_Rate",
- "threshold" : 0,
- "worst" : 100,
- "value" : 100,
- "fail" : "-",
- "raw" : "0",
- "flags" : "-OSR--",
- "id" : "206"
- },
- {
- "name" : "Success_RAIN_Recov_Cnt",
- "threshold" : 0,
- "worst" : 100,
- "fail" : "-",
- "raw" : "0",
- "flags" : "-O--CK",
- "id" : "210",
- "value" : 100
- },
- {
- "value" : 100,
- "id" : "246",
- "fail" : "-",
- "raw" : "6751830403",
- "flags" : "-O--CK",
- "worst" : 100,
- "name" : "Total_Host_Sector_Write",
- "threshold" : 0
- },
- {
- "name" : "Host_Program_Page_Count",
- "threshold" : 0,
- "worst" : 100,
- "fail" : "-",
- "raw" : "211228065",
- "flags" : "-O--CK",
- "id" : "247",
- "value" : 100
- },
- {
- "value" : 100,
- "fail" : "-",
- "raw" : "253276904",
- "flags" : "-O--CK",
- "id" : "248",
- "name" : "Bckgnd_Program_Page_Cnt",
- "threshold" : 0,
- "worst" : 100
- }
- ]
-}
diff --git a/test/disk_tests/ssd_smart/sda_udevadm b/test/disk_tests/ssd_smart/sda_udevadm
deleted file mode 100644
index 3290a13..0000000
--- a/test/disk_tests/ssd_smart/sda_udevadm
+++ /dev/null
@@ -1,11 +0,0 @@
-E: DEVNAME=/dev/sda
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=Crucial_CT500MX200SSD1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_SERIAL=Crucial_CT500MX200SSD1_000000000000
-E: ID_SERIAL_SHORT=000000000000
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-
diff --git a/test/disk_tests/ssd_smart/sdb/device/vendor b/test/disk_tests/ssd_smart/sdb/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/ssd_smart/sdb/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/ssd_smart/sdb/queue/rotational b/test/disk_tests/ssd_smart/sdb/queue/rotational
deleted file mode 100644
index 573541a..0000000
--- a/test/disk_tests/ssd_smart/sdb/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/test/disk_tests/ssd_smart/sdb/size b/test/disk_tests/ssd_smart/sdb/size
deleted file mode 100644
index 83b33d2..0000000
--- a/test/disk_tests/ssd_smart/sdb/size
+++ /dev/null
@@ -1 +0,0 @@
-1000
diff --git a/test/disk_tests/ssd_smart/sdb_smart b/test/disk_tests/ssd_smart/sdb_smart
deleted file mode 100644
index 79eea84..0000000
--- a/test/disk_tests/ssd_smart/sdb_smart
+++ /dev/null
@@ -1,41 +0,0 @@
-smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
-Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
-
-SMART Attributes Data Structure revision number: 1
-Vendor Specific SMART Attributes with Thresholds:
-ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
- 5 Reallocated_Sector_Ct -O--CK 100 100 000 - 0
- 9 Power_On_Hours -O--CK 100 100 000 - 1259
- 12 Power_Cycle_Count -O--CK 100 100 000 - 191
-170 Available_Reservd_Space PO--CK 100 100 010 - 0
-171 Program_Fail_Count -O--CK 100 100 000 - 0
-172 Erase_Fail_Count -O--CK 100 100 000 - 0
-174 Unsafe_Shutdown_Count -O--CK 100 100 000 - 164
-175 Power_Loss_Cap_Test PO--CK 100 100 010 - 5670 (1 343)
-183 SATA_Downshift_Count -O--CK 100 100 000 - 0
-184 End-to-End_Error PO--CK 100 100 090 - 0
-187 Reported_Uncorrect -O--CK 100 100 000 - 0
-190 Temperature_Case -O---K 072 071 000 - 28 (Min/Max 21/30)
-192 Unsafe_Shutdown_Count -O--CK 100 100 000 - 164
-194 Temperature_Internal -O---K 100 100 000 - 28
-197 Current_Pending_Sector -O--C- 100 100 000 - 0
-199 CRC_Error_Count -OSRCK 100 100 000 - 0
-225 Host_Writes_32MiB -O--CK 100 100 000 - 296600
-226 Workld_Media_Wear_Indic -O--CK 100 100 000 - 3747
-227 Workld_Host_Reads_Perc -O--CK 100 100 000 - 0
-228 Workload_Minutes -O--CK 100 100 000 - 75111
-232 Available_Reservd_Space PO--CK 100 100 010 - 0
-233 Media_Wearout_Indicator -O--CK 097 097 000 - 0
-234 Thermal_Throttle -O--CK 100 100 000 - 0/0
-241 Host_Writes_32MiB -O--CK 100 100 000 - 296600
-242 Host_Reads_32MiB -O--CK 100 100 000 - 1207
- ||||||_ K auto-keep
- |||||__ C event count
- ||||___ R error rate
- |||____ S speed/performance
- ||_____ O updated online
- |______ P prefailure warning
-
diff --git a/test/disk_tests/ssd_smart/sdb_smart_expected.json b/test/disk_tests/ssd_smart/sdb_smart_expected.json
deleted file mode 100644
index 6f55c3e..0000000
--- a/test/disk_tests/ssd_smart/sdb_smart_expected.json
+++ /dev/null
@@ -1,256 +0,0 @@
-{
- "health" : "PASSED",
- "type" : "ata",
- "attributes" : [
- {
- "name" : "Reallocated_Sector_Ct",
- "threshold" : 0,
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "raw" : "0",
- "id" : " 5",
- "value" : 100
- },
- {
- "worst" : 100,
- "name" : "Power_On_Hours",
- "threshold" : 0,
- "id" : " 9",
- "fail" : "-",
- "raw" : "1259",
- "flags" : "-O--CK",
- "value" : 100
- },
- {
- "value" : 100,
- "id" : " 12",
- "raw" : "191",
- "flags" : "-O--CK",
- "fail" : "-",
- "worst" : 100,
- "threshold" : 0,
- "name" : "Power_Cycle_Count"
- },
- {
- "id" : "170",
- "raw" : "0",
- "flags" : "PO--CK",
- "fail" : "-",
- "value" : 100,
- "worst" : 100,
- "threshold" : 10,
- "name" : "Available_Reservd_Space"
- },
- {
- "threshold" : 0,
- "name" : "Program_Fail_Count",
- "worst" : 100,
- "value" : 100,
- "raw" : "0",
- "flags" : "-O--CK",
- "fail" : "-",
- "id" : "171"
- },
- {
- "worst" : 100,
- "name" : "Erase_Fail_Count",
- "threshold" : 0,
- "id" : "172",
- "fail" : "-",
- "flags" : "-O--CK",
- "raw" : "0",
- "value" : 100
- },
- {
- "worst" : 100,
- "threshold" : 0,
- "name" : "Unsafe_Shutdown_Count",
- "value" : 100,
- "id" : "174",
- "raw" : "164",
- "flags" : "-O--CK",
- "fail" : "-"
- },
- {
- "value" : 100,
- "fail" : "-",
- "flags" : "PO--CK",
- "raw" : "5670 (1 343)",
- "id" : "175",
- "name" : "Power_Loss_Cap_Test",
- "threshold" : 10,
- "worst" : 100
- },
- {
- "worst" : 100,
- "threshold" : 0,
- "name" : "SATA_Downshift_Count",
- "value" : 100,
- "id" : "183",
- "raw" : "0",
- "flags" : "-O--CK",
- "fail" : "-"
- },
- {
- "worst" : 100,
- "name" : "End-to-End_Error",
- "threshold" : 90,
- "value" : 100,
- "id" : "184",
- "fail" : "-",
- "raw" : "0",
- "flags" : "PO--CK"
- },
- {
- "worst" : 100,
- "name" : "Reported_Uncorrect",
- "threshold" : 0,
- "value" : 100,
- "id" : "187",
- "fail" : "-",
- "raw" : "0",
- "flags" : "-O--CK"
- },
- {
- "worst" : 71,
- "name" : "Temperature_Case",
- "threshold" : 0,
- "id" : "190",
- "fail" : "-",
- "raw" : "28 (Min/Max 21/30)",
- "flags" : "-O---K",
- "value" : 72
- },
- {
- "worst" : 100,
- "threshold" : 0,
- "name" : "Unsafe_Shutdown_Count",
- "value" : 100,
- "id" : "192",
- "raw" : "164",
- "flags" : "-O--CK",
- "fail" : "-"
- },
- {
- "id" : "194",
- "fail" : "-",
- "raw" : "28",
- "flags" : "-O---K",
- "value" : 100,
- "worst" : 100,
- "name" : "Temperature_Internal",
- "threshold" : 0
- },
- {
- "worst" : 100,
- "threshold" : 0,
- "name" : "Current_Pending_Sector",
- "value" : 100,
- "id" : "197",
- "raw" : "0",
- "flags" : "-O--C-",
- "fail" : "-"
- },
- {
- "worst" : 100,
- "threshold" : 0,
- "name" : "CRC_Error_Count",
- "value" : 100,
- "id" : "199",
- "flags" : "-OSRCK",
- "raw" : "0",
- "fail" : "-"
- },
- {
- "worst" : 100,
- "name" : "Host_Writes_32MiB",
- "threshold" : 0,
- "id" : "225",
- "fail" : "-",
- "flags" : "-O--CK",
- "raw" : "296600",
- "value" : 100
- },
- {
- "value" : 100,
- "id" : "226",
- "raw" : "3747",
- "flags" : "-O--CK",
- "fail" : "-",
- "worst" : 100,
- "threshold" : 0,
- "name" : "Workld_Media_Wear_Indic"
- },
- {
- "worst" : 100,
- "threshold" : 0,
- "name" : "Workld_Host_Reads_Perc",
- "id" : "227",
- "raw" : "0",
- "flags" : "-O--CK",
- "fail" : "-",
- "value" : 100
- },
- {
- "threshold" : 0,
- "name" : "Workload_Minutes",
- "worst" : 100,
- "raw" : "75111",
- "flags" : "-O--CK",
- "fail" : "-",
- "id" : "228",
- "value" : 100
- },
- {
- "fail" : "-",
- "raw" : "0",
- "flags" : "PO--CK",
- "id" : "232",
- "value" : 100,
- "name" : "Available_Reservd_Space",
- "threshold" : 10,
- "worst" : 100
- },
- {
- "value" : 97,
- "fail" : "-",
- "flags" : "-O--CK",
- "raw" : "0",
- "id" : "233",
- "name" : "Media_Wearout_Indicator",
- "threshold" : 0,
- "worst" : 97
- },
- {
- "value" : 100,
- "fail" : "-",
- "raw" : "0/0",
- "flags" : "-O--CK",
- "id" : "234",
- "name" : "Thermal_Throttle",
- "threshold" : 0,
- "worst" : 100
- },
- {
- "worst" : 100,
- "name" : "Host_Writes_32MiB",
- "threshold" : 0,
- "id" : "241",
- "fail" : "-",
- "raw" : "296600",
- "flags" : "-O--CK",
- "value" : 100
- },
- {
- "value" : 100,
- "id" : "242",
- "fail" : "-",
- "raw" : "1207",
- "flags" : "-O--CK",
- "worst" : 100,
- "name" : "Host_Reads_32MiB",
- "threshold" : 0
- }
- ]
-}
diff --git a/test/disk_tests/ssd_smart/sdb_udevadm b/test/disk_tests/ssd_smart/sdb_udevadm
deleted file mode 100644
index bb723c8..0000000
--- a/test/disk_tests/ssd_smart/sdb_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdb
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=INTEL_SSDSC2BB080G6
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=21c18951-8568-488c-a2a8-24441eb4b165
-E: ID_SERIAL=INTEL_SSDSC2BB080G6_000000000000000000
-E: ID_SERIAL_SHORT=000000000000000000
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/ssd_smart/sdc/device/vendor b/test/disk_tests/ssd_smart/sdc/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/ssd_smart/sdc/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/ssd_smart/sdc/queue/rotational b/test/disk_tests/ssd_smart/sdc/queue/rotational
deleted file mode 100644
index 573541a..0000000
--- a/test/disk_tests/ssd_smart/sdc/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/test/disk_tests/ssd_smart/sdc/size b/test/disk_tests/ssd_smart/sdc/size
deleted file mode 100644
index 83b33d2..0000000
--- a/test/disk_tests/ssd_smart/sdc/size
+++ /dev/null
@@ -1 +0,0 @@
-1000
diff --git a/test/disk_tests/ssd_smart/sdc_smart b/test/disk_tests/ssd_smart/sdc_smart
deleted file mode 100644
index 927f6d2..0000000
--- a/test/disk_tests/ssd_smart/sdc_smart
+++ /dev/null
@@ -1,16 +0,0 @@
-smartctl 6.4 2014-10-07 r4002 [x86_64-linux-4.4.8-1-pve] (local build)
-Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
-
-SMART Attributes Data Structure revision number: 1
-Vendor Specific SMART Attributes with Thresholds:
-ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
-177 Wear_Leveling_Count PO--CK 099 099 000 - 34
- ||||||_ K auto-keep
- |||||__ C event count
- ||||___ R error rate
- |||____ S speed/performance
- ||_____ O updated onlinie
- |______ P prefailure warning
diff --git a/test/disk_tests/ssd_smart/sdc_smart_expected.json b/test/disk_tests/ssd_smart/sdc_smart_expected.json
deleted file mode 100644
index f0cffcf..0000000
--- a/test/disk_tests/ssd_smart/sdc_smart_expected.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "type" : "ata",
- "health" : "PASSED",
- "attributes" : [
- {
- "value" : 99,
- "fail" : "-",
- "raw" : "34",
- "flags" : "PO--CK",
- "id" : "177",
- "name" : "Wear_Leveling_Count",
- "threshold" : 0,
- "worst" : 99
- }
- ]
-}
diff --git a/test/disk_tests/ssd_smart/sdc_udevadm b/test/disk_tests/ssd_smart/sdc_udevadm
deleted file mode 100644
index 5adb3ef..0000000
--- a/test/disk_tests/ssd_smart/sdc_udevadm
+++ /dev/null
@@ -1,11 +0,0 @@
-E: DEVNAME=/dev/sdc
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=Samsung SSD 850 PRO 512GB
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_SERIAL=SAMSUNG_00000000
-E: ID_SERIAL_SHORT=000000000000
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-
diff --git a/test/disk_tests/ssd_smart/sdd/device/vendor b/test/disk_tests/ssd_smart/sdd/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/ssd_smart/sdd/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/ssd_smart/sdd/queue/rotational b/test/disk_tests/ssd_smart/sdd/queue/rotational
deleted file mode 100644
index 573541a..0000000
--- a/test/disk_tests/ssd_smart/sdd/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/test/disk_tests/ssd_smart/sdd/size b/test/disk_tests/ssd_smart/sdd/size
deleted file mode 100644
index 83b33d2..0000000
--- a/test/disk_tests/ssd_smart/sdd/size
+++ /dev/null
@@ -1 +0,0 @@
-1000
diff --git a/test/disk_tests/ssd_smart/sdd_smart b/test/disk_tests/ssd_smart/sdd_smart
deleted file mode 100644
index 2ad16af..0000000
--- a/test/disk_tests/ssd_smart/sdd_smart
+++ /dev/null
@@ -1,40 +0,0 @@
-smartctl 6.4 2014-10-07 r4002 [x86_64-linux-4.4.19-1-pve] (local build)
-Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
-
-SMART Attributes Data Structure revision number: 4
-Vendor Specific SMART Attributes with Thresholds:
-ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
- 5 Reallocated_Sector_Ct -O--CK 100 100 --- - 0
- 9 Power_On_Hours -O--CK 100 100 --- - 799
- 12 Power_Cycle_Count -O--CK 100 100 --- - 92
-165 Unknown_Attribute -O--CK 100 100 --- - 9699447
-166 Unknown_Attribute -O--CK 100 100 --- - 1
-167 Unknown_Attribute -O--CK 100 100 --- - 46
-168 Unknown_Attribute -O--CK 100 100 --- - 5
-169 Unknown_Attribute -O--CK 100 100 --- - 1079
-170 Unknown_Attribute -O--CK 100 100 --- - 0
-171 Unknown_Attribute -O--CK 100 100 --- - 0
-172 Unknown_Attribute -O--CK 100 100 --- - 0
-173 Unknown_Attribute -O--CK 100 100 --- - 1
-174 Unknown_Attribute -O--CK 100 100 --- - 22
-184 End-to-End_Error -O--CK 100 100 --- - 0
-187 Reported_Uncorrect -O--CK 100 100 --- - 0
-188 Command_Timeout -O--CK 100 100 --- - 0
-194 Temperature_Celsius -O---K 073 064 --- - 27 (Min/Max 23/64)
-199 UDMA_CRC_Error_Count -O--CK 100 100 --- - 0
-230 Unknown_SSD_Attribute -O--CK 100 100 --- - 146029805602
-232 Available_Reservd_Space PO--CK 100 100 004 - 100
-233 Media_Wearout_Indicator -O--CK 100 100 --- - 1574
-234 Unknown_Attribute -O--CK 100 100 --- - 2303
-241 Total_LBAs_Written ----CK 253 253 --- - 2111
-242 Total_LBAs_Read ----CK 253 253 --- - 1542
-244 Unknown_Attribute -O--CK 000 100 --- - 0
- ||||||_ K auto-keep
- |||||__ C event count
- ||||___ R error rate
- |||____ S speed/performance
- ||_____ O updated online
- |______ P prefailure warning
diff --git a/test/disk_tests/ssd_smart/sdd_smart_expected.json b/test/disk_tests/ssd_smart/sdd_smart_expected.json
deleted file mode 100644
index a85e7d7..0000000
--- a/test/disk_tests/ssd_smart/sdd_smart_expected.json
+++ /dev/null
@@ -1,256 +0,0 @@
-{
- "attributes" : [
- {
- "id" : " 5",
- "flags" : "-O--CK",
- "fail" : "-",
- "worst" : 100,
- "raw" : "0",
- "threshold" : 0,
- "value" : 100,
- "name" : "Reallocated_Sector_Ct"
- },
- {
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : " 9",
- "name" : "Power_On_Hours",
- "threshold" : 0,
- "value" : 100,
- "raw" : "799"
- },
- {
- "name" : "Power_Cycle_Count",
- "raw" : "92",
- "threshold" : 0,
- "value" : 100,
- "fail" : "-",
- "worst" : 100,
- "id" : " 12",
- "flags" : "-O--CK"
- },
- {
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : "165",
- "name" : "Unknown_Attribute",
- "threshold" : 0,
- "value" : 100,
- "raw" : "9699447"
- },
- {
- "value" : 100,
- "threshold" : 0,
- "raw" : "1",
- "name" : "Unknown_Attribute",
- "flags" : "-O--CK",
- "id" : "166",
- "worst" : 100,
- "fail" : "-"
- },
- {
- "id" : "167",
- "flags" : "-O--CK",
- "fail" : "-",
- "worst" : 100,
- "raw" : "46",
- "value" : 100,
- "threshold" : 0,
- "name" : "Unknown_Attribute"
- },
- {
- "name" : "Unknown_Attribute",
- "raw" : "5",
- "value" : 100,
- "threshold" : 0,
- "fail" : "-",
- "worst" : 100,
- "id" : "168",
- "flags" : "-O--CK"
- },
- {
- "flags" : "-O--CK",
- "id" : "169",
- "worst" : 100,
- "fail" : "-",
- "value" : 100,
- "threshold" : 0,
- "raw" : "1079",
- "name" : "Unknown_Attribute"
- },
- {
- "raw" : "0",
- "threshold" : 0,
- "value" : 100,
- "name" : "Unknown_Attribute",
- "id" : "170",
- "flags" : "-O--CK",
- "fail" : "-",
- "worst" : 100
- },
- {
- "fail" : "-",
- "worst" : 100,
- "id" : "171",
- "flags" : "-O--CK",
- "name" : "Unknown_Attribute",
- "raw" : "0",
- "value" : 100,
- "threshold" : 0
- },
- {
- "name" : "Unknown_Attribute",
- "raw" : "0",
- "value" : 100,
- "threshold" : 0,
- "fail" : "-",
- "worst" : 100,
- "id" : "172",
- "flags" : "-O--CK"
- },
- {
- "name" : "Unknown_Attribute",
- "threshold" : 0,
- "value" : 100,
- "raw" : "1",
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : "173"
- },
- {
- "name" : "Unknown_Attribute",
- "value" : 100,
- "threshold" : 0,
- "raw" : "22",
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : "174"
- },
- {
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : "184",
- "name" : "End-to-End_Error",
- "value" : 100,
- "threshold" : 0,
- "raw" : "0"
- },
- {
- "name" : "Reported_Uncorrect",
- "value" : 100,
- "threshold" : 0,
- "raw" : "0",
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : "187"
- },
- {
- "name" : "Command_Timeout",
- "raw" : "0",
- "value" : 100,
- "threshold" : 0,
- "fail" : "-",
- "worst" : 100,
- "id" : "188",
- "flags" : "-O--CK"
- },
- {
- "threshold" : 0,
- "value" : 73,
- "raw" : "27 (Min/Max 23/64)",
- "name" : "Temperature_Celsius",
- "flags" : "-O---K",
- "id" : "194",
- "worst" : 64,
- "fail" : "-"
- },
- {
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : "199",
- "name" : "UDMA_CRC_Error_Count",
- "value" : 100,
- "threshold" : 0,
- "raw" : "0"
- },
- {
- "name" : "Unknown_SSD_Attribute",
- "threshold" : 0,
- "value" : 100,
- "raw" : "146029805602",
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : "230"
- },
- {
- "raw" : "100",
- "value" : 100,
- "threshold" : 4,
- "name" : "Available_Reservd_Space",
- "id" : "232",
- "flags" : "PO--CK",
- "fail" : "-",
- "worst" : 100
- },
- {
- "threshold" : 0,
- "value" : 100,
- "raw" : "1574",
- "name" : "Media_Wearout_Indicator",
- "flags" : "-O--CK",
- "id" : "233",
- "worst" : 100,
- "fail" : "-"
- },
- {
- "id" : "234",
- "flags" : "-O--CK",
- "fail" : "-",
- "worst" : 100,
- "raw" : "2303",
- "value" : 100,
- "threshold" : 0,
- "name" : "Unknown_Attribute"
- },
- {
- "fail" : "-",
- "worst" : 253,
- "id" : "241",
- "flags" : "----CK",
- "name" : "Total_LBAs_Written",
- "raw" : "2111",
- "value" : 253,
- "threshold" : 0
- },
- {
- "worst" : 253,
- "fail" : "-",
- "flags" : "----CK",
- "id" : "242",
- "name" : "Total_LBAs_Read",
- "threshold" : 0,
- "value" : 253,
- "raw" : "1542"
- },
- {
- "name" : "Unknown_Attribute",
- "value" : 0,
- "threshold" : 0,
- "raw" : "0",
- "worst" : 100,
- "fail" : "-",
- "flags" : "-O--CK",
- "id" : "244"
- }
- ],
- "type" : "ata",
- "health" : "PASSED"
-}
diff --git a/test/disk_tests/ssd_smart/sdd_udevadm b/test/disk_tests/ssd_smart/sdd_udevadm
deleted file mode 100644
index d46a7d4..0000000
--- a/test/disk_tests/ssd_smart/sdd_udevadm
+++ /dev/null
@@ -1,11 +0,0 @@
-E: DEVNAME=/dev/sdd
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=SanDisk SD8SB8U1T001122
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_SERIAL=SANDISK_00000000000
-E: ID_SERIAL_SHORT=000000000000
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-
diff --git a/test/disk_tests/ssd_smart/sde/device/vendor b/test/disk_tests/ssd_smart/sde/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/ssd_smart/sde/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/ssd_smart/sde/queue/rotational b/test/disk_tests/ssd_smart/sde/queue/rotational
deleted file mode 100644
index 573541a..0000000
--- a/test/disk_tests/ssd_smart/sde/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/test/disk_tests/ssd_smart/sde/size b/test/disk_tests/ssd_smart/sde/size
deleted file mode 100644
index 83b33d2..0000000
--- a/test/disk_tests/ssd_smart/sde/size
+++ /dev/null
@@ -1 +0,0 @@
-1000
diff --git a/test/disk_tests/ssd_smart/sde_smart b/test/disk_tests/ssd_smart/sde_smart
deleted file mode 100644
index f6f01d6..0000000
--- a/test/disk_tests/ssd_smart/sde_smart
+++ /dev/null
@@ -1,40 +0,0 @@
-smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.65-1-pve] (local build)
-Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
-
-=== START OF READ SMART DATA SECTION ===
-SMART overall-health self-assessment test result: PASSED
-
-SMART Attributes Data Structure revision number: 10
-Vendor Specific SMART Attributes with Thresholds:
-ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
- 1 Raw_Read_Error_Rate -O--CK 120 120 050 - 0/0
- 5 Retired_Block_Count PO--CK 100 100 003 - 0
- 9 Power_On_Hours_and_Msec -O--CK 091 091 000 - 7963h+07m+54.620s
- 12 Power_Cycle_Count -O--CK 099 099 000 - 1153
-171 Program_Fail_Count -O-R-- 100 100 000 - 0
-172 Erase_Fail_Count -O--CK 100 100 000 - 0
-174 Unexpect_Power_Loss_Ct ----CK 000 000 000 - 113
-177 Wear_Range_Delta ------ 000 000 000 - 1
-181 Program_Fail_Count -O-R-- 100 100 000 - 0
-182 Erase_Fail_Count -O--CK 100 100 000 - 0
-187 Reported_Uncorrect -O--C- 100 100 000 - 0
-189 Airflow_Temperature_Cel ------ 027 049 000 - 27 (Min/Max 2/49)
-194 Temperature_Celsius -O---K 027 049 000 - 27 (Min/Max 2/49)
-195 ECC_Uncorr_Error_Count --SRC- 120 120 000 - 0/0
-196 Reallocated_Event_Count PO--CK 100 100 003 - 0
-201 Unc_Soft_Read_Err_Rate --SRC- 120 120 000 - 0/0
-204 Soft_ECC_Correct_Rate --SRC- 120 120 000 - 0/0
-230 Life_Curve_Status PO--C- 100 100 000 - 100
-231 SSD_Life_Left ------ 091 091 011 - 4294967296
-233 SandForce_Internal -O--CK 000 000 000 - 6317
-234 SandForce_Internal -O--CK 000 000 000 - 4252
-241 Lifetime_Writes_GiB -O--CK 000 000 000 - 4252
-242 Lifetime_Reads_GiB -O--CK 000 000 000 - 34599
-244 Unknown_Attribute ------ 099 099 010 - 4063273
- ||||||_ K auto-keep
- |||||__ C event count
- ||||___ R error rate
- |||____ S speed/performance
- ||_____ O updated online
- |______ P prefailure warning
-
diff --git a/test/disk_tests/ssd_smart/sde_smart_expected.json b/test/disk_tests/ssd_smart/sde_smart_expected.json
deleted file mode 100644
index 1d45c1d..0000000
--- a/test/disk_tests/ssd_smart/sde_smart_expected.json
+++ /dev/null
@@ -1,246 +0,0 @@
-{
- "health": "PASSED",
- "type": "ata",
- "attributes": [
- {
- "fail": "-",
- "id": " 1",
- "raw": "0/0",
- "flags": "-O--CK",
- "name": "Raw_Read_Error_Rate",
- "threshold": 50,
- "value": 120,
- "worst": 120
- },
- {
- "id": " 5",
- "fail": "-",
- "value": 100,
- "worst": 100,
- "threshold": 3,
- "name": "Retired_Block_Count",
- "flags": "PO--CK",
- "raw": "0"
- },
- {
- "fail": "-",
- "id": " 9",
- "raw": "7963h+07m+54.620s",
- "flags": "-O--CK",
- "worst": 91,
- "value": 91,
- "name": "Power_On_Hours_and_Msec",
- "threshold": 0
- },
- {
- "id": " 12",
- "fail": "-",
- "threshold": 0,
- "name": "Power_Cycle_Count",
- "worst": 99,
- "value": 99,
- "flags": "-O--CK",
- "raw": "1153"
- },
- {
- "flags": "-O-R--",
- "raw": "0",
- "worst": 100,
- "value": 100,
- "threshold": 0,
- "name": "Program_Fail_Count",
- "fail": "-",
- "id": "171"
- },
- {
- "fail": "-",
- "id": "172",
- "flags": "-O--CK",
- "raw": "0",
- "name": "Erase_Fail_Count",
- "threshold": 0,
- "worst": 100,
- "value": 100
- },
- {
- "fail": "-",
- "id": "174",
- "raw": "113",
- "flags": "----CK",
- "value": 0,
- "worst": 0,
- "threshold": 0,
- "name": "Unexpect_Power_Loss_Ct"
- },
- {
- "id": "177",
- "fail": "-",
- "value": 0,
- "worst": 0,
- "name": "Wear_Range_Delta",
- "threshold": 0,
- "flags": "------",
- "raw": "1"
- },
- {
- "flags": "-O-R--",
- "raw": "0",
- "threshold": 0,
- "name": "Program_Fail_Count",
- "worst": 100,
- "value": 100,
- "fail": "-",
- "id": "181"
- },
- {
- "threshold": 0,
- "name": "Erase_Fail_Count",
- "value": 100,
- "worst": 100,
- "flags": "-O--CK",
- "raw": "0",
- "id": "182",
- "fail": "-"
- },
- {
- "flags": "-O--C-",
- "raw": "0",
- "value": 100,
- "worst": 100,
- "threshold": 0,
- "name": "Reported_Uncorrect",
- "fail": "-",
- "id": "187"
- },
- {
- "value": 27,
- "worst": 49,
- "name": "Airflow_Temperature_Cel",
- "threshold": 0,
- "flags": "------",
- "raw": "27 (Min/Max 2/49)",
- "id": "189",
- "fail": "-"
- },
- {
- "threshold": 0,
- "name": "Temperature_Celsius",
- "worst": 49,
- "value": 27,
- "flags": "-O---K",
- "raw": "27 (Min/Max 2/49)",
- "id": "194",
- "fail": "-"
- },
- {
- "id": "195",
- "fail": "-",
- "worst": 120,
- "value": 120,
- "threshold": 0,
- "name": "ECC_Uncorr_Error_Count",
- "raw": "0/0",
- "flags": "--SRC-"
- },
- {
- "fail": "-",
- "id": "196",
- "raw": "0",
- "flags": "PO--CK",
- "threshold": 3,
- "name": "Reallocated_Event_Count",
- "value": 100,
- "worst": 100
- },
- {
- "value": 120,
- "worst": 120,
- "threshold": 0,
- "name": "Unc_Soft_Read_Err_Rate",
- "flags": "--SRC-",
- "raw": "0/0",
- "id": "201",
- "fail": "-"
- },
- {
- "raw": "0/0",
- "flags": "--SRC-",
- "value": 120,
- "worst": 120,
- "threshold": 0,
- "name": "Soft_ECC_Correct_Rate",
- "fail": "-",
- "id": "204"
- },
- {
- "value": 100,
- "worst": 100,
- "threshold": 0,
- "name": "Life_Curve_Status",
- "raw": "100",
- "flags": "PO--C-",
- "id": "230",
- "fail": "-"
- },
- {
- "id": "231",
- "fail": "-",
- "worst": 91,
- "value": 91,
- "name": "SSD_Life_Left",
- "threshold": 11,
- "flags": "------",
- "raw": "4294967296"
- },
- {
- "raw": "6317",
- "flags": "-O--CK",
- "name": "SandForce_Internal",
- "threshold": 0,
- "value": 0,
- "worst": 0,
- "fail": "-",
- "id": "233"
- },
- {
- "value": 0,
- "worst": 0,
- "name": "SandForce_Internal",
- "threshold": 0,
- "flags": "-O--CK",
- "raw": "4252",
- "id": "234",
- "fail": "-"
- },
- {
- "worst": 0,
- "value": 0,
- "name": "Lifetime_Writes_GiB",
- "threshold": 0,
- "flags": "-O--CK",
- "raw": "4252",
- "id": "241",
- "fail": "-"
- },
- {
- "flags": "-O--CK",
- "raw": "34599",
- "value": 0,
- "worst": 0,
- "threshold": 0,
- "name": "Lifetime_Reads_GiB",
- "fail": "-",
- "id": "242"
- },
- {
- "threshold": 10,
- "name": "Unknown_Attribute",
- "worst": 99,
- "value": 99,
- "flags": "------",
- "raw": "4063273",
- "id": "244",
- "fail": "-"
- }
- ]
-}
diff --git a/test/disk_tests/ssd_smart/sde_udevadm b/test/disk_tests/ssd_smart/sde_udevadm
deleted file mode 100644
index 440c33a..0000000
--- a/test/disk_tests/ssd_smart/sde_udevadm
+++ /dev/null
@@ -1,11 +0,0 @@
-E: DEVNAME=/dev/sde
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=KINGSTON SHFS37A120G
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_SERIAL=KINGSTON_00000000000
-E: ID_SERIAL_SHORT=000000000000
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-
diff --git a/test/disk_tests/usages/disklist b/test/disk_tests/usages/disklist
deleted file mode 100644
index 648bea5..0000000
--- a/test/disk_tests/usages/disklist
+++ /dev/null
@@ -1,14 +0,0 @@
-sda
-sdb
-sdc
-sdd
-sde
-sdf
-sdg
-sdh
-sdi
-sdj
-sdk
-sdl
-sdm
-sdn
diff --git a/test/disk_tests/usages/disklist_expected.json b/test/disk_tests/usages/disklist_expected.json
deleted file mode 100644
index 93dc251..0000000
--- a/test/disk_tests/usages/disklist_expected.json
+++ /dev/null
@@ -1,222 +0,0 @@
-{
- "sdf" : {
- "gpt" : 1,
- "rpm" : 0,
- "size" : 1536000,
- "type" : "hdd",
- "osdencrypted": 0,
- "osdid" : "444",
- "bluestore" : "0",
- "health" : "UNKNOWN",
- "model" : "MODEL1",
- "used" : "mounted",
- "wearout" : "N/A",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdf",
- "vendor" : "ATA",
- "serial" : "SERIAL1"
- },
- "sde" : {
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sde",
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "health" : "UNKNOWN",
- "rpm" : 0,
- "size" : 1536000,
- "gpt" : 1,
- "osdid" : -1,
- "type" : "hdd",
- "model" : "MODEL1",
- "used" : "Device Mapper",
- "wearout" : "N/A"
- },
- "sdb" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdb",
- "model" : "MODEL1",
- "used" : "LVM",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "size" : 1536000,
- "rpm" : 0,
- "type" : "hdd",
- "osdid" : -1
- },
- "sda" : {
- "model" : "MODEL1",
- "used" : "mounted",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "size" : 1536000,
- "rpm" : 0,
- "type" : "hdd",
- "osdid" : -1,
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sda"
- },
- "sdc" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "devpath" : "/dev/sdc",
- "wwn" : "0x0000000000000000",
- "used" : "ZFS",
- "wearout" : "N/A",
- "model" : "MODEL1",
- "health" : "UNKNOWN",
- "type" : "hdd",
- "osdid" : -1,
- "gpt" : 1,
- "rpm" : 0,
- "size" : 1536000
- },
- "sdd" : {
- "model" : "MODEL1",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "size" : 1536000,
- "rpm" : 0,
- "gpt" : 1,
- "type" : "hdd",
- "osdid" : -1,
- "serial" : "SERIAL1",
- "used": "ZFS",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdd"
- },
- "sdg" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdg",
- "model" : "MODEL1",
- "used" : "LVM",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "size" : 1536000,
- "rpm" : 0,
- "type" : "hdd",
- "bluestore": 1,
- "osdencrypted": 0,
- "osdid" : 1
- },
- "sdh" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdh",
- "model" : "MODEL1",
- "used" : "LVM",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "journals": 1,
- "size" : 1536000,
- "rpm" : 0,
- "type" : "hdd",
- "osdid" : -1
- },
- "sdi" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdi",
- "model" : "MODEL1",
- "used" : "LVM",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "size" : 1536000,
- "rpm" : 0,
- "type" : "hdd",
- "db": 1,
- "osdid" : -1
- },
- "sdj" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdj",
- "model" : "MODEL1",
- "used" : "LVM",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "size" : 1536000,
- "rpm" : 0,
- "bluestore": 0,
- "type" : "hdd",
- "osdencrypted": 1,
- "osdid" : 0
- },
- "sdk" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdk",
- "model" : "MODEL1",
- "used" : "LVM",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "size" : 1536000,
- "rpm" : 0,
- "bluestore": 0,
- "type" : "hdd",
- "osdencrypted": 0,
- "osdid" : 230
- },
- "sdl" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdl",
- "model" : "MODEL1",
- "used" : "LVM",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "size" : 1536000,
- "rpm" : 0,
- "type" : "hdd",
- "osdid" : -1
- },
- "sdm" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdm",
- "model" : "MODEL1",
- "used" : "ZFS",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 1,
- "size" : 1536000,
- "rpm" : 0,
- "type" : "hdd",
- "osdid" : -1
- },
- "sdn" : {
- "serial" : "SERIAL1",
- "vendor" : "ATA",
- "wwn" : "0x0000000000000000",
- "devpath" : "/dev/sdn",
- "model" : "MODEL1",
- "used" : "xfs",
- "wearout" : "N/A",
- "health" : "UNKNOWN",
- "gpt" : 0,
- "size" : 1536000,
- "rpm" : 0,
- "type" : "hdd",
- "osdid" : -1
- }
-}
diff --git a/test/disk_tests/usages/lsblk b/test/disk_tests/usages/lsblk
deleted file mode 100644
index 6a725ab..0000000
--- a/test/disk_tests/usages/lsblk
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "blockdevices": [
- {"path":"/dev/sdm", "parttype":null, "fstype":null},
- {"path":"/dev/sdm1", "parttype":"6a898cc3-1dd2-11b2-99a6-080020736631", "fstype":"zfs_member"},
- {"path":"/dev/sdm9", "parttype":"6a945a3b-1dd2-11b2-99a6-080020736631", "fstype":null},
- {"path":"/dev/sdn", "parttype":null, "fstype":"xfs"}
- ]
-}
diff --git a/test/disk_tests/usages/lvs b/test/disk_tests/usages/lvs
deleted file mode 100644
index 3720a80..0000000
--- a/test/disk_tests/usages/lvs
+++ /dev/null
@@ -1,6 +0,0 @@
-/dev/sdg(0);osd-block-01234;ceph.osd_id=1
-/dev/sdh(0);osd-journal-01234;ceph.osd_id=1
-/dev/sdi(0);osd-db-01234;ceph.osd_id=1,dasdf
-/dev/sdj(0);osd-data-01234;ceph.osd_id=0,asfd,ceph.encrypted=1
-/dev/sdk(0);osd-data-231231;ceph.osd_id=230,ceph.fsid=test
-/dev/sdl(0);osd-data-234132;ceph.osd_id=,bar
diff --git a/test/disk_tests/usages/mounts b/test/disk_tests/usages/mounts
deleted file mode 100644
index f8c1cd3..0000000
--- a/test/disk_tests/usages/mounts
+++ /dev/null
@@ -1,2 +0,0 @@
-/dev/sda /mountpoint1
-/dev/sdf1 /var/lib/ceph/osd/ceph-444
diff --git a/test/disk_tests/usages/partlist b/test/disk_tests/usages/partlist
deleted file mode 100644
index 43c1f68..0000000
--- a/test/disk_tests/usages/partlist
+++ /dev/null
@@ -1,6 +0,0 @@
-sdd1
-sdd2
-sde1
-sdf1
-sdm1
-sdm9
diff --git a/test/disk_tests/usages/pvs b/test/disk_tests/usages/pvs
deleted file mode 100644
index 86ec3d4..0000000
--- a/test/disk_tests/usages/pvs
+++ /dev/null
@@ -1,7 +0,0 @@
- /dev/sdb
- /dev/sdg
- /dev/sdh
- /dev/sdi
- /dev/sdj
- /dev/sdk
- /dev/sdl
diff --git a/test/disk_tests/usages/sda/device/vendor b/test/disk_tests/usages/sda/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sda/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sda/queue/rotational b/test/disk_tests/usages/sda/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sda/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sda/size b/test/disk_tests/usages/sda/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sda/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sda_udevadm b/test/disk_tests/usages/sda_udevadm
deleted file mode 100644
index ab04390..0000000
--- a/test/disk_tests/usages/sda_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sda
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdb/device/vendor b/test/disk_tests/usages/sdb/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdb/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdb/queue/rotational b/test/disk_tests/usages/sdb/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdb/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdb/size b/test/disk_tests/usages/sdb/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdb/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdb_udevadm b/test/disk_tests/usages/sdb_udevadm
deleted file mode 100644
index ada1ca8..0000000
--- a/test/disk_tests/usages/sdb_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdb
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdc/device/vendor b/test/disk_tests/usages/sdc/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdc/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdc/queue/rotational b/test/disk_tests/usages/sdc/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdc/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdc/size b/test/disk_tests/usages/sdc/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdc/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdc_udevadm b/test/disk_tests/usages/sdc_udevadm
deleted file mode 100644
index 42845f3..0000000
--- a/test/disk_tests/usages/sdc_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdc
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdd/device/vendor b/test/disk_tests/usages/sdd/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdd/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdd/queue/rotational b/test/disk_tests/usages/sdd/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdd/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdd/sdd1/size b/test/disk_tests/usages/sdd/sdd1/size
deleted file mode 100644
index 83b33d2..0000000
--- a/test/disk_tests/usages/sdd/sdd1/size
+++ /dev/null
@@ -1 +0,0 @@
-1000
diff --git a/test/disk_tests/usages/sdd/sdd2/size b/test/disk_tests/usages/sdd/sdd2/size
deleted file mode 100644
index 8bd1af1..0000000
--- a/test/disk_tests/usages/sdd/sdd2/size
+++ /dev/null
@@ -1 +0,0 @@
-2000
diff --git a/test/disk_tests/usages/sdd/size b/test/disk_tests/usages/sdd/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdd/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdd_udevadm b/test/disk_tests/usages/sdd_udevadm
deleted file mode 100644
index 65e880f..0000000
--- a/test/disk_tests/usages/sdd_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdd
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sde/device/vendor b/test/disk_tests/usages/sde/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sde/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sde/queue/rotational b/test/disk_tests/usages/sde/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sde/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sde/sde1/size b/test/disk_tests/usages/sde/sde1/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sde/sde1/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sde/size b/test/disk_tests/usages/sde/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sde/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sde_udevadm b/test/disk_tests/usages/sde_udevadm
deleted file mode 100644
index db77725..0000000
--- a/test/disk_tests/usages/sde_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sde
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdf/device/vendor b/test/disk_tests/usages/sdf/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdf/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdf/queue/rotational b/test/disk_tests/usages/sdf/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdf/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdf/sdf1/size b/test/disk_tests/usages/sdf/sdf1/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdf/sdf1/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdf/size b/test/disk_tests/usages/sdf/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdf/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdf_udevadm b/test/disk_tests/usages/sdf_udevadm
deleted file mode 100644
index ad49acf..0000000
--- a/test/disk_tests/usages/sdf_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdf
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdg/device/vendor b/test/disk_tests/usages/sdg/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdg/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdg/queue/rotational b/test/disk_tests/usages/sdg/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdg/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdg/size b/test/disk_tests/usages/sdg/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdg/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdg_udevadm b/test/disk_tests/usages/sdg_udevadm
deleted file mode 100644
index 6d40d35..0000000
--- a/test/disk_tests/usages/sdg_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdg
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdh/device/vendor b/test/disk_tests/usages/sdh/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdh/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdh/queue/rotational b/test/disk_tests/usages/sdh/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdh/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdh/size b/test/disk_tests/usages/sdh/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdh/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdh_udevadm b/test/disk_tests/usages/sdh_udevadm
deleted file mode 100644
index 3ff1a9e..0000000
--- a/test/disk_tests/usages/sdh_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdh
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdi/device/vendor b/test/disk_tests/usages/sdi/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdi/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdi/queue/rotational b/test/disk_tests/usages/sdi/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdi/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdi/size b/test/disk_tests/usages/sdi/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdi/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdi_udevadm b/test/disk_tests/usages/sdi_udevadm
deleted file mode 100644
index a9eae5e..0000000
--- a/test/disk_tests/usages/sdi_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdi
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdj/device/vendor b/test/disk_tests/usages/sdj/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdj/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdj/queue/rotational b/test/disk_tests/usages/sdj/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdj/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdj/size b/test/disk_tests/usages/sdj/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdj/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdj_udevadm b/test/disk_tests/usages/sdj_udevadm
deleted file mode 100644
index 39d0cf3..0000000
--- a/test/disk_tests/usages/sdj_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdj
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdk/device/vendor b/test/disk_tests/usages/sdk/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdk/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdk/queue/rotational b/test/disk_tests/usages/sdk/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdk/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdk/size b/test/disk_tests/usages/sdk/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdk/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdk_udevadm b/test/disk_tests/usages/sdk_udevadm
deleted file mode 100644
index 3baef2f..0000000
--- a/test/disk_tests/usages/sdk_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdk
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdl/device/vendor b/test/disk_tests/usages/sdl/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdl/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdl/queue/rotational b/test/disk_tests/usages/sdl/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdl/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdl/size b/test/disk_tests/usages/sdl/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdl/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdl_udevadm b/test/disk_tests/usages/sdl_udevadm
deleted file mode 100644
index ead0622..0000000
--- a/test/disk_tests/usages/sdl_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdl
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdm/device/vendor b/test/disk_tests/usages/sdm/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdm/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdm/queue/rotational b/test/disk_tests/usages/sdm/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdm/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdm/sdm1/size b/test/disk_tests/usages/sdm/sdm1/size
deleted file mode 100644
index 83b33d2..0000000
--- a/test/disk_tests/usages/sdm/sdm1/size
+++ /dev/null
@@ -1 +0,0 @@
-1000
diff --git a/test/disk_tests/usages/sdm/sdm9/size b/test/disk_tests/usages/sdm/sdm9/size
deleted file mode 100644
index 8bd1af1..0000000
--- a/test/disk_tests/usages/sdm/sdm9/size
+++ /dev/null
@@ -1 +0,0 @@
-2000
diff --git a/test/disk_tests/usages/sdm/size b/test/disk_tests/usages/sdm/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdm/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdm_udevadm b/test/disk_tests/usages/sdm_udevadm
deleted file mode 100644
index 9317b9f..0000000
--- a/test/disk_tests/usages/sdm_udevadm
+++ /dev/null
@@ -1,12 +0,0 @@
-E: DEVNAME=/dev/sdm
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_PART_TABLE_TYPE=gpt
-E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/sdn/device/vendor b/test/disk_tests/usages/sdn/device/vendor
deleted file mode 100644
index 531030d..0000000
--- a/test/disk_tests/usages/sdn/device/vendor
+++ /dev/null
@@ -1 +0,0 @@
-ATA
diff --git a/test/disk_tests/usages/sdn/queue/rotational b/test/disk_tests/usages/sdn/queue/rotational
deleted file mode 100644
index d00491f..0000000
--- a/test/disk_tests/usages/sdn/queue/rotational
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/test/disk_tests/usages/sdn/size b/test/disk_tests/usages/sdn/size
deleted file mode 100644
index 13de30f..0000000
--- a/test/disk_tests/usages/sdn/size
+++ /dev/null
@@ -1 +0,0 @@
-3000
diff --git a/test/disk_tests/usages/sdn_udevadm b/test/disk_tests/usages/sdn_udevadm
deleted file mode 100644
index 5ec4a92..0000000
--- a/test/disk_tests/usages/sdn_udevadm
+++ /dev/null
@@ -1,14 +0,0 @@
-E: DEVNAME=/dev/sdn
-E: DEVTYPE=disk
-E: ID_ATA_ROTATION_RATE_RPM=0
-E: ID_BUS=ata
-E: ID_MODEL=MODEL1
-E: ID_SERIAL=SERIAL1
-E: ID_SERIAL_SHORT=SERIAL1
-E: ID_TYPE=disk
-E: ID_FS_UUID=ab54fba8-48fe-4d37-bbe7-b403f94d3bed
-E: ID_FS_UUID_ENC=ab54fba8-48fe-4d37-bbe7-b403f94d3bed
-E: ID_FS_TYPE=xfs
-E: ID_FS_USAGE=filesystem
-E: ID_WWN=0x0000000000000000
-E: ID_WWN_WITH_EXTENSION=0x0000000000000000
diff --git a/test/disk_tests/usages/zpool b/test/disk_tests/usages/zpool
deleted file mode 100644
index 3431792..0000000
--- a/test/disk_tests/usages/zpool
+++ /dev/null
@@ -1,6 +0,0 @@
-testpool 2.00T 1.00T 2.60T - 5% 28% 1.00x ONLINE -
- /dev/sdc 3.62T 1.02T 2.60T - 5% 28%
-log - - - - - -
- /dev/sdd1 15.9G 2.79M 15.9G - 82% 0%
-cache - - - - - -
- /dev/sdd2 42.5G 36.2G 6.36G - 0% 85%
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pve-devel] [PATCH storage 2/2] smartctl: use json parsing
2021-04-01 13:40 [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests Oguz Bektas
@ 2021-04-01 13:40 ` Oguz Bektas
2021-04-01 14:24 ` [pve-devel] [PATCH v2 " Oguz Bektas
2021-05-10 12:15 ` [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests Dominik Csapak
2 siblings, 0 replies; 7+ messages in thread
From: Oguz Bektas @ 2021-04-01 13:40 UTC (permalink / raw)
To: pve-devel
adapt the smartctl endpoint to run smartctl with the --json or -j flag
to parse it more reasonably.
also add the $format parameter to assist in switching to the new json
parsed output for nvme devices in PVE 7.0 (until 7.0 removing the 'text'
field completely would be a breaking change, so we still default to the
text field but with the parsed "key : value" pairs instead of raw
smartctl output)
for the unit tests from now we need to collect the smartctl outputs with
the json flag. the current tests cover ssd_smart and nvme_smart cases.
Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
----
RFC -> PATCH:
* split patch for removing old tests
* incorporate stefan's and thomas' recommendations & nits (thanks!!)
* fix issue with array fields not being parsed
* add array element in nvme unit test (temperature_sensor)
PVE/API2/Disks.pm | 9 +-
PVE/Diskmanage.pm | 120 +++---
test/disk_tests/nvme_smart/disklist | 1 +
.../nvme_smart/disklist_expected.json | 16 +
test/disk_tests/nvme_smart/nvme0/model | 1 +
test/disk_tests/nvme_smart/nvme0_smart | 65 ++++
test/disk_tests/nvme_smart/nvme0n1/device | 1 +
.../nvme_smart/nvme0n1/queue/rotational | 1 +
test/disk_tests/nvme_smart/nvme0n1/size | 1 +
.../nvme_smart/nvme0n1_smart_expected.json | 6 +
test/disk_tests/nvme_smart/nvme0n1_udevadm | 18 +
test/disk_tests/ssd_smart/disklist | 1 +
.../ssd_smart/disklist_expected.json | 16 +
test/disk_tests/ssd_smart/sda/device/vendor | 1 +
.../disk_tests/ssd_smart/sda/queue/rotational | 1 +
test/disk_tests/ssd_smart/sda/size | 1 +
test/disk_tests/ssd_smart/sda_smart | 352 ++++++++++++++++++
.../ssd_smart/sda_smart_expected.json | 146 ++++++++
test/disk_tests/ssd_smart/sda_udevadm | 11 +
test/disklist_test.pm | 4 +-
20 files changed, 714 insertions(+), 58 deletions(-)
create mode 100644 test/disk_tests/nvme_smart/disklist
create mode 100644 test/disk_tests/nvme_smart/disklist_expected.json
create mode 100644 test/disk_tests/nvme_smart/nvme0/model
create mode 100644 test/disk_tests/nvme_smart/nvme0_smart
create mode 120000 test/disk_tests/nvme_smart/nvme0n1/device
create mode 100644 test/disk_tests/nvme_smart/nvme0n1/queue/rotational
create mode 100644 test/disk_tests/nvme_smart/nvme0n1/size
create mode 100644 test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
create mode 100644 test/disk_tests/nvme_smart/nvme0n1_udevadm
create mode 100644 test/disk_tests/ssd_smart/disklist
create mode 100644 test/disk_tests/ssd_smart/disklist_expected.json
create mode 100644 test/disk_tests/ssd_smart/sda/device/vendor
create mode 100644 test/disk_tests/ssd_smart/sda/queue/rotational
create mode 100644 test/disk_tests/ssd_smart/sda/size
create mode 100644 test/disk_tests/ssd_smart/sda_smart
create mode 100644 test/disk_tests/ssd_smart/sda_smart_expected.json
create mode 100644 test/disk_tests/ssd_smart/sda_udevadm
diff --git a/PVE/API2/Disks.pm b/PVE/API2/Disks.pm
index 33bca76..a453efc 100644
--- a/PVE/API2/Disks.pm
+++ b/PVE/API2/Disks.pm
@@ -195,6 +195,12 @@ __PACKAGE__->register_method ({
description => "If true returns only the health status",
optional => 1,
},
+ format => {
+ description => "Return json or text",
+ type => 'string',
+ enum => ['text', 'json'],
+ optional => 1,
+ },
},
},
returns => {
@@ -204,6 +210,7 @@ __PACKAGE__->register_method ({
type => { type => 'string', optional => 1 },
attributes => { type => 'array', optional => 1},
text => { type => 'string', optional => 1 },
+ json => { type => 'string', optional => 1 },
},
},
code => sub {
@@ -211,7 +218,7 @@ __PACKAGE__->register_method ({
my $disk = PVE::Diskmanage::verify_blockdev_path($param->{disk});
- my $result = PVE::Diskmanage::get_smart_data($disk, $param->{healthonly});
+ my $result = PVE::Diskmanage::get_smart_data($disk, $param->{healthonly}, $param->{format});
$result->{health} = 'UNKNOWN' if !defined $result->{health};
$result = { health => $result->{health} } if $param->{healthonly};
diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index 64bb813..3f433fb 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -81,11 +81,12 @@ sub disk_is_used {
}
sub get_smart_data {
- my ($disk, $healthonly) = @_;
+ my ($disk, $healthonly, $format) = @_;
assert_blockdev($disk);
my $smartdata = {};
my $type;
+ $format //= 'text';
my $returncode = 0;
@@ -95,70 +96,79 @@ sub get_smart_data {
or die "failed to get nvme controller device for $disk\n");
}
- my $cmd = [$SMARTCTL, '-H'];
- push @$cmd, '-A', '-f', 'brief' if !$healthonly;
+ my $cmd = [$SMARTCTL, '-j', '-H'];
+ push @$cmd, '-Afbrief' if !$healthonly;
push @$cmd, $disk;
+ my $smart_result = '';
eval {
- $returncode = run_command($cmd, noerr => 1, outfunc => sub{
- my ($line) = @_;
+ $returncode = run_command($cmd, noerr => 1, outfunc => sub { $smart_result .= shift });
+ };
+ my $err = $@;
-# ATA SMART attributes, e.g.:
-# ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
-# 1 Raw_Read_Error_Rate POSR-K 100 100 000 - 0
-#
-# SAS and NVME disks, e.g.:
-# Data Units Written: 5,584,952 [2.85 TB]
-# Accumulated start-stop cycles: 34
-
- if (defined($type) && $type eq 'ata' && $line =~ m/^([ \d]{2}\d)\s+(\S+)\s+(\S{6})\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(.*)$/) {
- my $entry = {};
-
- $entry->{name} = $2 if defined $2;
- $entry->{flags} = $3 if defined $3;
- # the +0 makes a number out of the strings
- $entry->{value} = $4+0 if defined $4;
- $entry->{worst} = $5+0 if defined $5;
- # some disks report the default threshold as --- instead of 000
- if (defined($6) && $6 eq '---') {
- $entry->{threshold} = 0;
- } else {
- $entry->{threshold} = $6+0 if defined $6;
- }
- $entry->{fail} = $7 if defined $7;
- $entry->{raw} = $8 if defined $8;
- $entry->{id} = $1 if defined $1;
- push @{$smartdata->{attributes}}, $entry;
- } elsif ($line =~ m/(?:Health Status|self\-assessment test result): (.*)$/ ) {
- $smartdata->{health} = $1;
- } elsif ($line =~ m/Vendor Specific SMART Attributes with Thresholds:/) {
- $type = 'ata';
- delete $smartdata->{text};
- } elsif ($line =~ m/=== START OF (READ )?SMART DATA SECTION ===/) {
- $type = 'text';
- } elsif (defined($type) && $type eq 'text') {
- $smartdata->{text} = '' if !defined $smartdata->{text};
- $smartdata->{text} .= "$line\n";
- # extract wearout from nvme/sas text, allow for decimal values
- if ($line =~ m/Percentage Used(?: endurance indicator)?:\s*(\d+(?:\.\d+)?)\%/i) {
- $smartdata->{wearout} = 100 - $1;
+ my $json_result = decode_json($smart_result);
+
+ my $smart_health = $json_result->{smart_status}->{passed};
+ if (JSON::is_bool($smart_health)) {
+ $smart_health = $smart_health ? "PASSED" : "FAILED";
+ } else {
+ $smart_health = 'UNKNOWN';
+ }
+
+ $smartdata->{health} = $smart_health;
+
+ $type = $json_result->{device}->{type};
+ if ($type eq 'nvme') {
+ $smartdata->{type} = $format; # text or json but FIXME: remove in PVE 7.0 and use json
+
+ my $nvme_info = $json_result->{nvme_smart_health_information_log};
+
+ if (!$healthonly) {
+ $smartdata->{wearout} = 100.0 - $nvme_info->{percentage_used};
+ }
+
+ my $add_key = sub {
+ my ($key, $value) = @_;
+ if ($format eq 'text') {
+ $smartdata->{text} .= "$key : $value\n";
+ }
+ };
+
+ foreach my $key (sort keys %{$nvme_info}) {
+ my $value = $nvme_info->{$key};
+ # some fields can also be arrays
+ # e.g. temperature_sensor
+ if (ref($value) eq 'ARRAY') {
+ while (my $index = each(@$value)) {
+ $add_key->("${key}_${index}", $value->[$index]);
}
- } elsif ($line =~ m/SMART Disabled/) {
- $smartdata->{health} = "SMART Disabled";
+ } else {
+ $add_key->($key, $value);
}
- });
- };
- my $err = $@;
+ }
+ delete $smartdata->{attributes}; # this is for ata disks only
+ } else {
+ $smartdata->{type} = 'ata';
+ foreach my $attribute (@{$json_result->{ata_smart_attributes}->{table}}) {
+ # we need to override or delete some fields to fit expected json schema of unit tests
+ my $flags_string = $attribute->{flags}->{string};
+ $flags_string =~ s/\s+$//;
+ $attribute->{flags} = $flags_string;
+ $attribute->{raw} = $attribute->{raw}->{string};
+ $attribute->{threshold} = delete $attribute->{thresh};
+ $attribute->{fail} = ${attribute}->{when_failed} eq "" ? "-" : ${attribute}->{when_failed};
+ delete ${attribute}->{when_failed};
+
+ push @{$smartdata->{attributes}}, $attribute;
+ }
+ my @sorted_attributes = sort { $a->{id} <=> $b->{id} } @{$smartdata->{attributes}};
+ @{$smartdata->{attributes}} = @sorted_attributes;
+ }
- # bit 0 and 1 mark an severe smartctl error
- # all others are for disk status, so ignore them
- # see smartctl(8)
- if ((defined($returncode) && ($returncode & 0b00000011)) || $err) {
+ if ($returncode & 0b00000011 || $err) {
die "Error getting S.M.A.R.T. data: Exit code: $returncode\n";
}
- $smartdata->{type} = $type;
-
return $smartdata;
}
diff --git a/test/disk_tests/nvme_smart/disklist b/test/disk_tests/nvme_smart/disklist
new file mode 100644
index 0000000..d00b90e
--- /dev/null
+++ b/test/disk_tests/nvme_smart/disklist
@@ -0,0 +1 @@
+nvme0n1
diff --git a/test/disk_tests/nvme_smart/disklist_expected.json b/test/disk_tests/nvme_smart/disklist_expected.json
new file mode 100644
index 0000000..4d1c92f
--- /dev/null
+++ b/test/disk_tests/nvme_smart/disklist_expected.json
@@ -0,0 +1,16 @@
+{
+ "nvme0n1" : {
+ "wearout" : 69,
+ "vendor" : "unknown",
+ "size" : 512000,
+ "health" : "PASSED",
+ "serial" : "unknown",
+ "model" : "NVME MODEL 1",
+ "rpm" : 0,
+ "osdid" : -1,
+ "devpath" : "/dev/nvme0n1",
+ "gpt" : 0,
+ "wwn" : "unknown",
+ "type" : "nvme"
+ }
+}
diff --git a/test/disk_tests/nvme_smart/nvme0/model b/test/disk_tests/nvme_smart/nvme0/model
new file mode 100644
index 0000000..9bd6eba
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0/model
@@ -0,0 +1 @@
+NVME MODEL 1
diff --git a/test/disk_tests/nvme_smart/nvme0_smart b/test/disk_tests/nvme_smart/nvme0_smart
new file mode 100644
index 0000000..3f3c799
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0_smart
@@ -0,0 +1,65 @@
+{
+ "json_format_version": [
+ 1,
+ 0
+ ],
+ "smartctl": {
+ "version": [
+ 7,
+ 2
+ ],
+ "svn_revision": "5155",
+ "platform_info": "x86_64-linux-5.11.7-1-pve",
+ "build_info": "(local build)",
+ "argv": [
+ "smartctl",
+ "-j",
+ "-H",
+ "-Afbrief",
+ "/dev/nvme0"
+ ],
+ "exit_status": 0
+ },
+ "device": {
+ "name": "/dev/nvme0",
+ "info_name": "/dev/nvme0",
+ "type": "nvme",
+ "protocol": "NVMe"
+ },
+ "smart_status": {
+ "passed": true,
+ "nvme": {
+ "value": 0
+ }
+ },
+ "nvme_smart_health_information_log": {
+ "critical_warning": 0,
+ "temperature": 35,
+ "available_spare": 100,
+ "available_spare_threshold": 10,
+ "percentage_used": 31,
+ "data_units_read": 4546105,
+ "data_units_written": 16623231,
+ "host_reads": 154011524,
+ "host_writes": 282144186,
+ "controller_busy_time": 355,
+ "power_cycles": 514,
+ "power_on_hours": 2491,
+ "unsafe_shutdowns": 38,
+ "media_errors": 0,
+ "num_err_log_entries": 0,
+ "warning_temp_time": 0,
+ "critical_comp_time": 0,
+ "temperature_sensors": [
+ 36,
+ 34
+ ]
+ },
+ "temperature": {
+ "current": 35
+ },
+ "power_cycle_count": 514,
+ "power_on_time": {
+ "hours": 2491
+ }
+}
diff --git a/test/disk_tests/nvme_smart/nvme0n1/device b/test/disk_tests/nvme_smart/nvme0n1/device
new file mode 120000
index 0000000..e890f3e
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1/device
@@ -0,0 +1 @@
+../nvme0
\ No newline at end of file
diff --git a/test/disk_tests/nvme_smart/nvme0n1/queue/rotational b/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
@@ -0,0 +1 @@
+0
diff --git a/test/disk_tests/nvme_smart/nvme0n1/size b/test/disk_tests/nvme_smart/nvme0n1/size
new file mode 100644
index 0000000..83b33d2
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1/size
@@ -0,0 +1 @@
+1000
diff --git a/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json b/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
new file mode 100644
index 0000000..e3f0ce0
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
@@ -0,0 +1,6 @@
+{
+ "text" : "available_spare : 100\navailable_spare_threshold : 10\ncontroller_busy_time : 355\ncritical_comp_time : 0\ncritical_warning : 0\ndata_units_read : 4546105\ndata_units_written : 16623231\nhost_reads : 154011524\nhost_writes : 282144186\nmedia_errors : 0\nnum_err_log_entries : 0\npercentage_used : 31\npower_cycles : 514\npower_on_hours : 2491\ntemperature : 35\ntemperature_sensors_0 : 36\ntemperature_sensors_1 : 34\nunsafe_shutdowns : 38\nwarning_temp_time : 0\n",
+ "health" : "PASSED",
+ "type" : "text",
+ "wearout": 69
+}
diff --git a/test/disk_tests/nvme_smart/nvme0n1_udevadm b/test/disk_tests/nvme_smart/nvme0n1_udevadm
new file mode 100644
index 0000000..36c78ce
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1_udevadm
@@ -0,0 +1,18 @@
+
+P: /devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
+N: nvme0n1
+S: disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
+E: DEVLINKS=/dev/disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
+E: DEVNAME=/dev/nvme0n1
+E: DEVPATH=/devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
+E: DEVTYPE=disk
+E: ID_FS_TYPE=LVM2_member
+E: ID_FS_USAGE=raid
+E: ID_FS_UUID=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
+E: ID_FS_UUID_ENC=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
+E: ID_FS_VERSION=LVM2 001
+E: MAJOR=259
+E: MINOR=0
+E: SUBSYSTEM=block
+E: TAGS=:systemd:
+E: USEC_INITIALIZED=3842
diff --git a/test/disk_tests/ssd_smart/disklist b/test/disk_tests/ssd_smart/disklist
new file mode 100644
index 0000000..9191c61
--- /dev/null
+++ b/test/disk_tests/ssd_smart/disklist
@@ -0,0 +1 @@
+sda
diff --git a/test/disk_tests/ssd_smart/disklist_expected.json b/test/disk_tests/ssd_smart/disklist_expected.json
new file mode 100644
index 0000000..3681cc8
--- /dev/null
+++ b/test/disk_tests/ssd_smart/disklist_expected.json
@@ -0,0 +1,16 @@
+{
+ "sda" : {
+ "serial" : "000000000000",
+ "vendor" : "ATA",
+ "rpm" : 0,
+ "gpt" : 1,
+ "health" : "PASSED",
+ "wearout" : "98",
+ "osdid" : -1,
+ "size" : 512000,
+ "type" : "ssd",
+ "devpath" : "/dev/sda",
+ "model" : "Samsung_SSD_860_EVO_1TB",
+ "wwn" : "0x0000000000000000"
+ }
+}
diff --git a/test/disk_tests/ssd_smart/sda/device/vendor b/test/disk_tests/ssd_smart/sda/device/vendor
new file mode 100644
index 0000000..531030d
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda/device/vendor
@@ -0,0 +1 @@
+ATA
diff --git a/test/disk_tests/ssd_smart/sda/queue/rotational b/test/disk_tests/ssd_smart/sda/queue/rotational
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda/queue/rotational
@@ -0,0 +1 @@
+0
diff --git a/test/disk_tests/ssd_smart/sda/size b/test/disk_tests/ssd_smart/sda/size
new file mode 100644
index 0000000..83b33d2
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda/size
@@ -0,0 +1 @@
+1000
diff --git a/test/disk_tests/ssd_smart/sda_smart b/test/disk_tests/ssd_smart/sda_smart
new file mode 100644
index 0000000..907e7da
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda_smart
@@ -0,0 +1,352 @@
+{
+ "json_format_version": [
+ 1,
+ 0
+ ],
+ "smartctl": {
+ "version": [
+ 7,
+ 2
+ ],
+ "svn_revision": "5155",
+ "platform_info": "x86_64-linux-5.11.7-1-pve",
+ "build_info": "(local build)",
+ "argv": [
+ "smartctl",
+ "-j",
+ "-H",
+ "-Afbrief",
+ "/dev/sda"
+ ],
+ "exit_status": 0
+ },
+ "device": {
+ "name": "/dev/sda",
+ "info_name": "/dev/sda [SAT]",
+ "type": "sat",
+ "protocol": "ATA"
+ },
+ "smart_status": {
+ "passed": true
+ },
+ "ata_smart_attributes": {
+ "revision": 1,
+ "table": [
+ {
+ "id": 5,
+ "name": "Reallocated_Sector_Ct",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 51,
+ "string": "PO--CK ",
+ "prefailure": true,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 9,
+ "name": "Power_On_Hours",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 2463,
+ "string": "2463"
+ }
+ },
+ {
+ "id": 12,
+ "name": "Power_Cycle_Count",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 499,
+ "string": "499"
+ }
+ },
+ {
+ "id": 177,
+ "name": "Wear_Leveling_Count",
+ "value": 98,
+ "worst": 98,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 19,
+ "string": "PO--C- ",
+ "prefailure": true,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 20,
+ "string": "20"
+ }
+ },
+ {
+ "id": 179,
+ "name": "Used_Rsvd_Blk_Cnt_Tot",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 19,
+ "string": "PO--C- ",
+ "prefailure": true,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 181,
+ "name": "Program_Fail_Cnt_Total",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 182,
+ "name": "Erase_Fail_Count_Total",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 183,
+ "name": "Runtime_Bad_Block",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 19,
+ "string": "PO--C- ",
+ "prefailure": true,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 187,
+ "name": "Uncorrectable_Error_Cnt",
+ "value": 100,
+ "worst": 100,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 190,
+ "name": "Airflow_Temperature_Cel",
+ "value": 73,
+ "worst": 45,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 27,
+ "string": "27"
+ }
+ },
+ {
+ "id": 195,
+ "name": "ECC_Error_Rate",
+ "value": 200,
+ "worst": 200,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 26,
+ "string": "-O-RC- ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": true,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 199,
+ "name": "CRC_Error_Count",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 62,
+ "string": "-OSRCK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": true,
+ "error_rate": true,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 1,
+ "string": "1"
+ }
+ },
+ {
+ "id": 235,
+ "name": "POR_Recovery_Count",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 18,
+ "string": "-O--C- ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 39,
+ "string": "39"
+ }
+ },
+ {
+ "id": 241,
+ "name": "Total_LBAs_Written",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 19999585737,
+ "string": "19999585737"
+ }
+ }
+ ]
+ },
+ "power_on_time": {
+ "hours": 2515
+ },
+ "power_cycle_count": 508,
+ "temperature": {
+ "current": 29
+ }
+}
diff --git a/test/disk_tests/ssd_smart/sda_smart_expected.json b/test/disk_tests/ssd_smart/sda_smart_expected.json
new file mode 100644
index 0000000..36da71e
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda_smart_expected.json
@@ -0,0 +1,146 @@
+{
+ "attributes" : [
+ {
+ "fail" : "-",
+ "flags" : "PO--CK",
+ "id" : 5,
+ "name" : "Reallocated_Sector_Ct",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 9,
+ "name" : "Power_On_Hours",
+ "raw" : "2463",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 12,
+ "name" : "Power_Cycle_Count",
+ "raw" : "499",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ },
+ {
+ "fail" : "-",
+ "flags" : "PO--C-",
+ "id" : 177,
+ "name" : "Wear_Leveling_Count",
+ "raw" : "20",
+ "threshold" : 0,
+ "value" : 98,
+ "worst" : 98
+ },
+ {
+ "fail" : "-",
+ "flags" : "PO--C-",
+ "id" : 179,
+ "name" : "Used_Rsvd_Blk_Cnt_Tot",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 181,
+ "name" : "Program_Fail_Cnt_Total",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 182,
+ "name" : "Erase_Fail_Count_Total",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "PO--C-",
+ "id" : 183,
+ "name" : "Runtime_Bad_Block",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 187,
+ "name" : "Uncorrectable_Error_Cnt",
+ "raw" : "0",
+ "threshold" : 0,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 190,
+ "name" : "Airflow_Temperature_Cel",
+ "raw" : "27",
+ "threshold" : 0,
+ "value" : 73,
+ "worst" : 45
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O-RC-",
+ "id" : 195,
+ "name" : "ECC_Error_Rate",
+ "raw" : "0",
+ "threshold" : 0,
+ "value" : 200,
+ "worst" : 200
+ },
+ {
+ "fail" : "-",
+ "flags" : "-OSRCK",
+ "id" : 199,
+ "name" : "CRC_Error_Count",
+ "raw" : "1",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--C-",
+ "id" : 235,
+ "name" : "POR_Recovery_Count",
+ "raw" : "39",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 241,
+ "name" : "Total_LBAs_Written",
+ "raw" : "19999585737",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ }
+ ],
+ "health" : "PASSED",
+ "type" : "ata"
+}
diff --git a/test/disk_tests/ssd_smart/sda_udevadm b/test/disk_tests/ssd_smart/sda_udevadm
new file mode 100644
index 0000000..f662221
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda_udevadm
@@ -0,0 +1,11 @@
+E: DEVNAME=/dev/sda
+E: DEVTYPE=disk
+E: ID_ATA_ROTATION_RATE_RPM=0
+E: ID_BUS=ata
+E: ID_MODEL=Samsung_SSD_860_EVO_1TB
+E: ID_PART_TABLE_TYPE=gpt
+E: ID_SERIAL=Samsung_SSD_860_EVO_1TB_000000000000000
+E: ID_SERIAL_SHORT=000000000000
+E: ID_TYPE=disk
+E: ID_WWN=0x0000000000000000
+
diff --git a/test/disklist_test.pm b/test/disklist_test.pm
index 7f0e0be..727fb44 100644
--- a/test/disklist_test.pm
+++ b/test/disklist_test.pm
@@ -34,10 +34,10 @@ sub mocked_run_command {
my $dev;
my $type;
if (@$cmd > 3) {
- $dev = $cmd->[5];
+ $dev = $cmd->[4];
$type = 'smart';
} else {
- $dev = $cmd->[2];
+ $dev = $cmd->[3];
$type = 'health';
}
$dev =~ s|/dev/||;
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pve-devel] [PATCH v2 storage 2/2] smartctl: use json parsing
2021-04-01 13:40 [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests Oguz Bektas
2021-04-01 13:40 ` [pve-devel] [PATCH storage 2/2] smartctl: use json parsing Oguz Bektas
@ 2021-04-01 14:24 ` Oguz Bektas
2021-05-10 12:21 ` Dominik Csapak
2021-05-10 12:15 ` [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests Dominik Csapak
2 siblings, 1 reply; 7+ messages in thread
From: Oguz Bektas @ 2021-04-01 14:24 UTC (permalink / raw)
To: pve-devel
adapt the smartctl endpoint to run smartctl with the --json or -j flag
to parse it more reasonably.
additionally add the $format parameter to assist in switching to the new
json parsed output for nvme devices in PVE 7.0 (until 7.0 removing the
'text' field completely would be a breaking change, so we still default
to the old json fields but with the parsed key:value pairs in the 'text'
field instead of raw smartctl output)
for the unit tests from now we need to collect the smartctl outputs with
the json flag. the current tests cover ssd_smart and nvme_smart cases.
Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
---
v1->v2:
* fixed bug with --format json not showing anything...
PVE/API2/Disks.pm | 9 +-
PVE/Diskmanage.pm | 119 +++---
test/disk_tests/nvme_smart/disklist | 1 +
.../nvme_smart/disklist_expected.json | 16 +
test/disk_tests/nvme_smart/nvme0/model | 1 +
test/disk_tests/nvme_smart/nvme0_smart | 65 ++++
test/disk_tests/nvme_smart/nvme0n1/device | 1 +
.../nvme_smart/nvme0n1/queue/rotational | 1 +
test/disk_tests/nvme_smart/nvme0n1/size | 1 +
.../nvme_smart/nvme0n1_smart_expected.json | 6 +
test/disk_tests/nvme_smart/nvme0n1_udevadm | 18 +
test/disk_tests/ssd_smart/disklist | 1 +
.../ssd_smart/disklist_expected.json | 16 +
test/disk_tests/ssd_smart/sda/device/vendor | 1 +
.../disk_tests/ssd_smart/sda/queue/rotational | 1 +
test/disk_tests/ssd_smart/sda/size | 1 +
test/disk_tests/ssd_smart/sda_smart | 352 ++++++++++++++++++
.../ssd_smart/sda_smart_expected.json | 146 ++++++++
test/disk_tests/ssd_smart/sda_udevadm | 11 +
test/disklist_test.pm | 4 +-
20 files changed, 714 insertions(+), 57 deletions(-)
create mode 100644 test/disk_tests/nvme_smart/disklist
create mode 100644 test/disk_tests/nvme_smart/disklist_expected.json
create mode 100644 test/disk_tests/nvme_smart/nvme0/model
create mode 100644 test/disk_tests/nvme_smart/nvme0_smart
create mode 120000 test/disk_tests/nvme_smart/nvme0n1/device
create mode 100644 test/disk_tests/nvme_smart/nvme0n1/queue/rotational
create mode 100644 test/disk_tests/nvme_smart/nvme0n1/size
create mode 100644 test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
create mode 100644 test/disk_tests/nvme_smart/nvme0n1_udevadm
create mode 100644 test/disk_tests/ssd_smart/disklist
create mode 100644 test/disk_tests/ssd_smart/disklist_expected.json
create mode 100644 test/disk_tests/ssd_smart/sda/device/vendor
create mode 100644 test/disk_tests/ssd_smart/sda/queue/rotational
create mode 100644 test/disk_tests/ssd_smart/sda/size
create mode 100644 test/disk_tests/ssd_smart/sda_smart
create mode 100644 test/disk_tests/ssd_smart/sda_smart_expected.json
create mode 100644 test/disk_tests/ssd_smart/sda_udevadm
diff --git a/PVE/API2/Disks.pm b/PVE/API2/Disks.pm
index 33bca76..a453efc 100644
--- a/PVE/API2/Disks.pm
+++ b/PVE/API2/Disks.pm
@@ -195,6 +195,12 @@ __PACKAGE__->register_method ({
description => "If true returns only the health status",
optional => 1,
},
+ format => {
+ description => "Return json or text",
+ type => 'string',
+ enum => ['text', 'json'],
+ optional => 1,
+ },
},
},
returns => {
@@ -204,6 +210,7 @@ __PACKAGE__->register_method ({
type => { type => 'string', optional => 1 },
attributes => { type => 'array', optional => 1},
text => { type => 'string', optional => 1 },
+ json => { type => 'string', optional => 1 },
},
},
code => sub {
@@ -211,7 +218,7 @@ __PACKAGE__->register_method ({
my $disk = PVE::Diskmanage::verify_blockdev_path($param->{disk});
- my $result = PVE::Diskmanage::get_smart_data($disk, $param->{healthonly});
+ my $result = PVE::Diskmanage::get_smart_data($disk, $param->{healthonly}, $param->{format});
$result->{health} = 'UNKNOWN' if !defined $result->{health};
$result = { health => $result->{health} } if $param->{healthonly};
diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index 64bb813..2fe70bc 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -81,11 +81,12 @@ sub disk_is_used {
}
sub get_smart_data {
- my ($disk, $healthonly) = @_;
+ my ($disk, $healthonly, $format) = @_;
assert_blockdev($disk);
my $smartdata = {};
my $type;
+ $format //= 'text';
my $returncode = 0;
@@ -95,70 +96,80 @@ sub get_smart_data {
or die "failed to get nvme controller device for $disk\n");
}
- my $cmd = [$SMARTCTL, '-H'];
- push @$cmd, '-A', '-f', 'brief' if !$healthonly;
+ my $cmd = [$SMARTCTL, '-j', '-H'];
+ push @$cmd, '-Afbrief' if !$healthonly;
push @$cmd, $disk;
+ my $smart_result = '';
eval {
- $returncode = run_command($cmd, noerr => 1, outfunc => sub{
- my ($line) = @_;
+ $returncode = run_command($cmd, noerr => 1, outfunc => sub { $smart_result .= shift });
+ };
+ my $err = $@;
+
+ my $json_result = decode_json($smart_result);
+
+ my $smart_health = $json_result->{smart_status}->{passed};
+ if (JSON::is_bool($smart_health)) {
+ $smart_health = $smart_health ? "PASSED" : "FAILED";
+ } else {
+ $smart_health = 'UNKNOWN';
+ }
+
+ $smartdata->{health} = $smart_health;
+
+ $type = $json_result->{device}->{type};
+ if ($type eq 'nvme') {
+ $smartdata->{type} = $format; # text or json but FIXME: remove in PVE 7.0 and use json
+
+ my $nvme_info = $json_result->{nvme_smart_health_information_log};
+
+ if (!$healthonly) {
+ $smartdata->{wearout} = 100.0 - $nvme_info->{percentage_used};
+ }
-# ATA SMART attributes, e.g.:
-# ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
-# 1 Raw_Read_Error_Rate POSR-K 100 100 000 - 0
-#
-# SAS and NVME disks, e.g.:
-# Data Units Written: 5,584,952 [2.85 TB]
-# Accumulated start-stop cycles: 34
-
- if (defined($type) && $type eq 'ata' && $line =~ m/^([ \d]{2}\d)\s+(\S+)\s+(\S{6})\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(.*)$/) {
- my $entry = {};
-
- $entry->{name} = $2 if defined $2;
- $entry->{flags} = $3 if defined $3;
- # the +0 makes a number out of the strings
- $entry->{value} = $4+0 if defined $4;
- $entry->{worst} = $5+0 if defined $5;
- # some disks report the default threshold as --- instead of 000
- if (defined($6) && $6 eq '---') {
- $entry->{threshold} = 0;
+ my $add_key = sub {
+ my ($key, $value) = @_;
+ $smartdata->{text} .= "$key : $value\n";
+ };
+
+ if ($format eq 'text') {
+ foreach my $key (sort keys %{$nvme_info}) {
+ my $value = $nvme_info->{$key};
+ # some fields can also be arrays
+ # e.g. temperature_sensor
+ if (ref($value) eq 'ARRAY') {
+ while (my $index = each(@$value)) {
+ $add_key->("${key}_${index}", $value->[$index]);
+ }
} else {
- $entry->{threshold} = $6+0 if defined $6;
- }
- $entry->{fail} = $7 if defined $7;
- $entry->{raw} = $8 if defined $8;
- $entry->{id} = $1 if defined $1;
- push @{$smartdata->{attributes}}, $entry;
- } elsif ($line =~ m/(?:Health Status|self\-assessment test result): (.*)$/ ) {
- $smartdata->{health} = $1;
- } elsif ($line =~ m/Vendor Specific SMART Attributes with Thresholds:/) {
- $type = 'ata';
- delete $smartdata->{text};
- } elsif ($line =~ m/=== START OF (READ )?SMART DATA SECTION ===/) {
- $type = 'text';
- } elsif (defined($type) && $type eq 'text') {
- $smartdata->{text} = '' if !defined $smartdata->{text};
- $smartdata->{text} .= "$line\n";
- # extract wearout from nvme/sas text, allow for decimal values
- if ($line =~ m/Percentage Used(?: endurance indicator)?:\s*(\d+(?:\.\d+)?)\%/i) {
- $smartdata->{wearout} = 100 - $1;
+ $add_key->($key, $value);
}
- } elsif ($line =~ m/SMART Disabled/) {
- $smartdata->{health} = "SMART Disabled";
}
- });
- };
- my $err = $@;
+ } else {
+ $smartdata->{properties} = $nvme_info;
+ }
+ } else {
+ $smartdata->{type} = 'ata';
+ foreach my $attribute (@{$json_result->{ata_smart_attributes}->{table}}) {
+ # we need to override or delete some fields to fit expected json schema of unit tests
+ my $flags_string = $attribute->{flags}->{string};
+ $flags_string =~ s/\s+$//;
+ $attribute->{flags} = $flags_string;
+ $attribute->{raw} = $attribute->{raw}->{string};
+ $attribute->{threshold} = delete $attribute->{thresh};
+ $attribute->{fail} = ${attribute}->{when_failed} eq "" ? "-" : ${attribute}->{when_failed};
+ delete ${attribute}->{when_failed};
+
+ push @{$smartdata->{attributes}}, $attribute;
+ }
+ my @sorted_attributes = sort { $a->{id} <=> $b->{id} } @{$smartdata->{attributes}};
+ @{$smartdata->{attributes}} = @sorted_attributes;
+ }
- # bit 0 and 1 mark an severe smartctl error
- # all others are for disk status, so ignore them
- # see smartctl(8)
- if ((defined($returncode) && ($returncode & 0b00000011)) || $err) {
+ if ($returncode & 0b00000011 || $err) {
die "Error getting S.M.A.R.T. data: Exit code: $returncode\n";
}
- $smartdata->{type} = $type;
-
return $smartdata;
}
diff --git a/test/disk_tests/nvme_smart/disklist b/test/disk_tests/nvme_smart/disklist
new file mode 100644
index 0000000..d00b90e
--- /dev/null
+++ b/test/disk_tests/nvme_smart/disklist
@@ -0,0 +1 @@
+nvme0n1
diff --git a/test/disk_tests/nvme_smart/disklist_expected.json b/test/disk_tests/nvme_smart/disklist_expected.json
new file mode 100644
index 0000000..4d1c92f
--- /dev/null
+++ b/test/disk_tests/nvme_smart/disklist_expected.json
@@ -0,0 +1,16 @@
+{
+ "nvme0n1" : {
+ "wearout" : 69,
+ "vendor" : "unknown",
+ "size" : 512000,
+ "health" : "PASSED",
+ "serial" : "unknown",
+ "model" : "NVME MODEL 1",
+ "rpm" : 0,
+ "osdid" : -1,
+ "devpath" : "/dev/nvme0n1",
+ "gpt" : 0,
+ "wwn" : "unknown",
+ "type" : "nvme"
+ }
+}
diff --git a/test/disk_tests/nvme_smart/nvme0/model b/test/disk_tests/nvme_smart/nvme0/model
new file mode 100644
index 0000000..9bd6eba
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0/model
@@ -0,0 +1 @@
+NVME MODEL 1
diff --git a/test/disk_tests/nvme_smart/nvme0_smart b/test/disk_tests/nvme_smart/nvme0_smart
new file mode 100644
index 0000000..3f3c799
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0_smart
@@ -0,0 +1,65 @@
+{
+ "json_format_version": [
+ 1,
+ 0
+ ],
+ "smartctl": {
+ "version": [
+ 7,
+ 2
+ ],
+ "svn_revision": "5155",
+ "platform_info": "x86_64-linux-5.11.7-1-pve",
+ "build_info": "(local build)",
+ "argv": [
+ "smartctl",
+ "-j",
+ "-H",
+ "-Afbrief",
+ "/dev/nvme0"
+ ],
+ "exit_status": 0
+ },
+ "device": {
+ "name": "/dev/nvme0",
+ "info_name": "/dev/nvme0",
+ "type": "nvme",
+ "protocol": "NVMe"
+ },
+ "smart_status": {
+ "passed": true,
+ "nvme": {
+ "value": 0
+ }
+ },
+ "nvme_smart_health_information_log": {
+ "critical_warning": 0,
+ "temperature": 35,
+ "available_spare": 100,
+ "available_spare_threshold": 10,
+ "percentage_used": 31,
+ "data_units_read": 4546105,
+ "data_units_written": 16623231,
+ "host_reads": 154011524,
+ "host_writes": 282144186,
+ "controller_busy_time": 355,
+ "power_cycles": 514,
+ "power_on_hours": 2491,
+ "unsafe_shutdowns": 38,
+ "media_errors": 0,
+ "num_err_log_entries": 0,
+ "warning_temp_time": 0,
+ "critical_comp_time": 0,
+ "temperature_sensors": [
+ 36,
+ 34
+ ]
+ },
+ "temperature": {
+ "current": 35
+ },
+ "power_cycle_count": 514,
+ "power_on_time": {
+ "hours": 2491
+ }
+}
diff --git a/test/disk_tests/nvme_smart/nvme0n1/device b/test/disk_tests/nvme_smart/nvme0n1/device
new file mode 120000
index 0000000..e890f3e
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1/device
@@ -0,0 +1 @@
+../nvme0
\ No newline at end of file
diff --git a/test/disk_tests/nvme_smart/nvme0n1/queue/rotational b/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
@@ -0,0 +1 @@
+0
diff --git a/test/disk_tests/nvme_smart/nvme0n1/size b/test/disk_tests/nvme_smart/nvme0n1/size
new file mode 100644
index 0000000..83b33d2
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1/size
@@ -0,0 +1 @@
+1000
diff --git a/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json b/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
new file mode 100644
index 0000000..e3f0ce0
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
@@ -0,0 +1,6 @@
+{
+ "text" : "available_spare : 100\navailable_spare_threshold : 10\ncontroller_busy_time : 355\ncritical_comp_time : 0\ncritical_warning : 0\ndata_units_read : 4546105\ndata_units_written : 16623231\nhost_reads : 154011524\nhost_writes : 282144186\nmedia_errors : 0\nnum_err_log_entries : 0\npercentage_used : 31\npower_cycles : 514\npower_on_hours : 2491\ntemperature : 35\ntemperature_sensors_0 : 36\ntemperature_sensors_1 : 34\nunsafe_shutdowns : 38\nwarning_temp_time : 0\n",
+ "health" : "PASSED",
+ "type" : "text",
+ "wearout": 69
+}
diff --git a/test/disk_tests/nvme_smart/nvme0n1_udevadm b/test/disk_tests/nvme_smart/nvme0n1_udevadm
new file mode 100644
index 0000000..36c78ce
--- /dev/null
+++ b/test/disk_tests/nvme_smart/nvme0n1_udevadm
@@ -0,0 +1,18 @@
+
+P: /devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
+N: nvme0n1
+S: disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
+E: DEVLINKS=/dev/disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
+E: DEVNAME=/dev/nvme0n1
+E: DEVPATH=/devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
+E: DEVTYPE=disk
+E: ID_FS_TYPE=LVM2_member
+E: ID_FS_USAGE=raid
+E: ID_FS_UUID=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
+E: ID_FS_UUID_ENC=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
+E: ID_FS_VERSION=LVM2 001
+E: MAJOR=259
+E: MINOR=0
+E: SUBSYSTEM=block
+E: TAGS=:systemd:
+E: USEC_INITIALIZED=3842
diff --git a/test/disk_tests/ssd_smart/disklist b/test/disk_tests/ssd_smart/disklist
new file mode 100644
index 0000000..9191c61
--- /dev/null
+++ b/test/disk_tests/ssd_smart/disklist
@@ -0,0 +1 @@
+sda
diff --git a/test/disk_tests/ssd_smart/disklist_expected.json b/test/disk_tests/ssd_smart/disklist_expected.json
new file mode 100644
index 0000000..3681cc8
--- /dev/null
+++ b/test/disk_tests/ssd_smart/disklist_expected.json
@@ -0,0 +1,16 @@
+{
+ "sda" : {
+ "serial" : "000000000000",
+ "vendor" : "ATA",
+ "rpm" : 0,
+ "gpt" : 1,
+ "health" : "PASSED",
+ "wearout" : "98",
+ "osdid" : -1,
+ "size" : 512000,
+ "type" : "ssd",
+ "devpath" : "/dev/sda",
+ "model" : "Samsung_SSD_860_EVO_1TB",
+ "wwn" : "0x0000000000000000"
+ }
+}
diff --git a/test/disk_tests/ssd_smart/sda/device/vendor b/test/disk_tests/ssd_smart/sda/device/vendor
new file mode 100644
index 0000000..531030d
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda/device/vendor
@@ -0,0 +1 @@
+ATA
diff --git a/test/disk_tests/ssd_smart/sda/queue/rotational b/test/disk_tests/ssd_smart/sda/queue/rotational
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda/queue/rotational
@@ -0,0 +1 @@
+0
diff --git a/test/disk_tests/ssd_smart/sda/size b/test/disk_tests/ssd_smart/sda/size
new file mode 100644
index 0000000..83b33d2
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda/size
@@ -0,0 +1 @@
+1000
diff --git a/test/disk_tests/ssd_smart/sda_smart b/test/disk_tests/ssd_smart/sda_smart
new file mode 100644
index 0000000..907e7da
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda_smart
@@ -0,0 +1,352 @@
+{
+ "json_format_version": [
+ 1,
+ 0
+ ],
+ "smartctl": {
+ "version": [
+ 7,
+ 2
+ ],
+ "svn_revision": "5155",
+ "platform_info": "x86_64-linux-5.11.7-1-pve",
+ "build_info": "(local build)",
+ "argv": [
+ "smartctl",
+ "-j",
+ "-H",
+ "-Afbrief",
+ "/dev/sda"
+ ],
+ "exit_status": 0
+ },
+ "device": {
+ "name": "/dev/sda",
+ "info_name": "/dev/sda [SAT]",
+ "type": "sat",
+ "protocol": "ATA"
+ },
+ "smart_status": {
+ "passed": true
+ },
+ "ata_smart_attributes": {
+ "revision": 1,
+ "table": [
+ {
+ "id": 5,
+ "name": "Reallocated_Sector_Ct",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 51,
+ "string": "PO--CK ",
+ "prefailure": true,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 9,
+ "name": "Power_On_Hours",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 2463,
+ "string": "2463"
+ }
+ },
+ {
+ "id": 12,
+ "name": "Power_Cycle_Count",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 499,
+ "string": "499"
+ }
+ },
+ {
+ "id": 177,
+ "name": "Wear_Leveling_Count",
+ "value": 98,
+ "worst": 98,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 19,
+ "string": "PO--C- ",
+ "prefailure": true,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 20,
+ "string": "20"
+ }
+ },
+ {
+ "id": 179,
+ "name": "Used_Rsvd_Blk_Cnt_Tot",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 19,
+ "string": "PO--C- ",
+ "prefailure": true,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 181,
+ "name": "Program_Fail_Cnt_Total",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 182,
+ "name": "Erase_Fail_Count_Total",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 183,
+ "name": "Runtime_Bad_Block",
+ "value": 100,
+ "worst": 100,
+ "thresh": 10,
+ "when_failed": "",
+ "flags": {
+ "value": 19,
+ "string": "PO--C- ",
+ "prefailure": true,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 187,
+ "name": "Uncorrectable_Error_Cnt",
+ "value": 100,
+ "worst": 100,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 190,
+ "name": "Airflow_Temperature_Cel",
+ "value": 73,
+ "worst": 45,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 27,
+ "string": "27"
+ }
+ },
+ {
+ "id": 195,
+ "name": "ECC_Error_Rate",
+ "value": 200,
+ "worst": 200,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 26,
+ "string": "-O-RC- ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": true,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 0,
+ "string": "0"
+ }
+ },
+ {
+ "id": 199,
+ "name": "CRC_Error_Count",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 62,
+ "string": "-OSRCK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": true,
+ "error_rate": true,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 1,
+ "string": "1"
+ }
+ },
+ {
+ "id": 235,
+ "name": "POR_Recovery_Count",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 18,
+ "string": "-O--C- ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": false
+ },
+ "raw": {
+ "value": 39,
+ "string": "39"
+ }
+ },
+ {
+ "id": 241,
+ "name": "Total_LBAs_Written",
+ "value": 99,
+ "worst": 99,
+ "thresh": 0,
+ "when_failed": "",
+ "flags": {
+ "value": 50,
+ "string": "-O--CK ",
+ "prefailure": false,
+ "updated_online": true,
+ "performance": false,
+ "error_rate": false,
+ "event_count": true,
+ "auto_keep": true
+ },
+ "raw": {
+ "value": 19999585737,
+ "string": "19999585737"
+ }
+ }
+ ]
+ },
+ "power_on_time": {
+ "hours": 2515
+ },
+ "power_cycle_count": 508,
+ "temperature": {
+ "current": 29
+ }
+}
diff --git a/test/disk_tests/ssd_smart/sda_smart_expected.json b/test/disk_tests/ssd_smart/sda_smart_expected.json
new file mode 100644
index 0000000..36da71e
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda_smart_expected.json
@@ -0,0 +1,146 @@
+{
+ "attributes" : [
+ {
+ "fail" : "-",
+ "flags" : "PO--CK",
+ "id" : 5,
+ "name" : "Reallocated_Sector_Ct",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 9,
+ "name" : "Power_On_Hours",
+ "raw" : "2463",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 12,
+ "name" : "Power_Cycle_Count",
+ "raw" : "499",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ },
+ {
+ "fail" : "-",
+ "flags" : "PO--C-",
+ "id" : 177,
+ "name" : "Wear_Leveling_Count",
+ "raw" : "20",
+ "threshold" : 0,
+ "value" : 98,
+ "worst" : 98
+ },
+ {
+ "fail" : "-",
+ "flags" : "PO--C-",
+ "id" : 179,
+ "name" : "Used_Rsvd_Blk_Cnt_Tot",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 181,
+ "name" : "Program_Fail_Cnt_Total",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 182,
+ "name" : "Erase_Fail_Count_Total",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "PO--C-",
+ "id" : 183,
+ "name" : "Runtime_Bad_Block",
+ "raw" : "0",
+ "threshold" : 10,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 187,
+ "name" : "Uncorrectable_Error_Cnt",
+ "raw" : "0",
+ "threshold" : 0,
+ "value" : 100,
+ "worst" : 100
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 190,
+ "name" : "Airflow_Temperature_Cel",
+ "raw" : "27",
+ "threshold" : 0,
+ "value" : 73,
+ "worst" : 45
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O-RC-",
+ "id" : 195,
+ "name" : "ECC_Error_Rate",
+ "raw" : "0",
+ "threshold" : 0,
+ "value" : 200,
+ "worst" : 200
+ },
+ {
+ "fail" : "-",
+ "flags" : "-OSRCK",
+ "id" : 199,
+ "name" : "CRC_Error_Count",
+ "raw" : "1",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--C-",
+ "id" : 235,
+ "name" : "POR_Recovery_Count",
+ "raw" : "39",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ },
+ {
+ "fail" : "-",
+ "flags" : "-O--CK",
+ "id" : 241,
+ "name" : "Total_LBAs_Written",
+ "raw" : "19999585737",
+ "threshold" : 0,
+ "value" : 99,
+ "worst" : 99
+ }
+ ],
+ "health" : "PASSED",
+ "type" : "ata"
+}
diff --git a/test/disk_tests/ssd_smart/sda_udevadm b/test/disk_tests/ssd_smart/sda_udevadm
new file mode 100644
index 0000000..f662221
--- /dev/null
+++ b/test/disk_tests/ssd_smart/sda_udevadm
@@ -0,0 +1,11 @@
+E: DEVNAME=/dev/sda
+E: DEVTYPE=disk
+E: ID_ATA_ROTATION_RATE_RPM=0
+E: ID_BUS=ata
+E: ID_MODEL=Samsung_SSD_860_EVO_1TB
+E: ID_PART_TABLE_TYPE=gpt
+E: ID_SERIAL=Samsung_SSD_860_EVO_1TB_000000000000000
+E: ID_SERIAL_SHORT=000000000000
+E: ID_TYPE=disk
+E: ID_WWN=0x0000000000000000
+
diff --git a/test/disklist_test.pm b/test/disklist_test.pm
index 7f0e0be..727fb44 100644
--- a/test/disklist_test.pm
+++ b/test/disklist_test.pm
@@ -34,10 +34,10 @@ sub mocked_run_command {
my $dev;
my $type;
if (@$cmd > 3) {
- $dev = $cmd->[5];
+ $dev = $cmd->[4];
$type = 'smart';
} else {
- $dev = $cmd->[2];
+ $dev = $cmd->[3];
$type = 'health';
}
$dev =~ s|/dev/||;
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests
2021-04-01 13:40 [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests Oguz Bektas
2021-04-01 13:40 ` [pve-devel] [PATCH storage 2/2] smartctl: use json parsing Oguz Bektas
2021-04-01 14:24 ` [pve-devel] [PATCH v2 " Oguz Bektas
@ 2021-05-10 12:15 ` Dominik Csapak
2021-05-10 12:27 ` Oguz Bektas
2 siblings, 1 reply; 7+ messages in thread
From: Dominik Csapak @ 2021-05-10 12:15 UTC (permalink / raw)
To: Proxmox VE development discussion, Oguz Bektas
hi,
sorry for the long wait on a review, but better
late than never ;)
so one high level comments:
why do you remove all disk tests ??
they did not only test the smart output, but also the
usage, ssd/hdd detection, vendor/model etc...
i understand that you do not have the original disks
for the smartctl -j output, but it should not be
*that* hard to fake it ;)
and even if it is, please change the tests so that
only the smart part is not tested anymore, e.g. with a flag
in the test itself....
so please find a way to keep the tests (as much as you can)
i'll comment more on the second patch
On 4/1/21 15:40, Oguz Bektas wrote:
> Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
> ---
> test/disk_tests/cciss/cciss!c0d0/device/model | 1 -
> .../disk_tests/cciss/cciss!c0d0/device/vendor | 1 -
> .../cciss/cciss!c0d0/queue/rotational | 1 -
> test/disk_tests/cciss/cciss!c0d0/size | 1 -
> test/disk_tests/cciss/cciss!c0d0_udevadm | 32 ---
> test/disk_tests/cciss/disklist | 1 -
> test/disk_tests/cciss/disklist_expected.json | 16 --
> test/disk_tests/hdd_smart/disklist | 2 -
> .../hdd_smart/disklist_expected.json | 30 --
> test/disk_tests/hdd_smart/sda/device/vendor | 1 -
> .../disk_tests/hdd_smart/sda/queue/rotational | 1 -
> test/disk_tests/hdd_smart/sda/size | 1 -
> test/disk_tests/hdd_smart/sda_health | 5 -
> test/disk_tests/hdd_smart/sda_smart | 40 ---
> .../hdd_smart/sda_smart_expected.json | 246 -----------------
> test/disk_tests/hdd_smart/sda_udevadm | 11 -
> test/disk_tests/hdd_smart/sdb/device/vendor | 1 -
> .../disk_tests/hdd_smart/sdb/queue/rotational | 1 -
> test/disk_tests/hdd_smart/sdb/size | 1 -
> test/disk_tests/hdd_smart/sdb_health | 5 -
> test/disk_tests/hdd_smart/sdb_smart | 36 ---
> .../hdd_smart/sdb_smart_expected.json | 216 ---------------
> test/disk_tests/hdd_smart/sdb_udevadm | 11 -
> test/disk_tests/nvme_smart/disklist | 1 -
> .../nvme_smart/disklist_expected.json | 16 --
> test/disk_tests/nvme_smart/nvme0/model | 1 -
> test/disk_tests/nvme_smart/nvme0_smart | 22 --
> test/disk_tests/nvme_smart/nvme0n1/device | 1 -
> .../nvme_smart/nvme0n1/queue/rotational | 1 -
> test/disk_tests/nvme_smart/nvme0n1/size | 1 -
> .../nvme_smart/nvme0n1_smart_expected.json | 6 -
> test/disk_tests/nvme_smart/nvme0n1_udevadm | 18 --
> test/disk_tests/sas/disklist | 1 -
> test/disk_tests/sas/disklist_expected.json | 17 --
> test/disk_tests/sas/sda/device/model | 1 -
> test/disk_tests/sas/sda/device/vendor | 1 -
> test/disk_tests/sas/sda/queue/rotational | 1 -
> test/disk_tests/sas/sda/size | 1 -
> test/disk_tests/sas/sda_smart | 20 --
> test/disk_tests/sas/sda_smart_expected.json | 6 -
> test/disk_tests/sas/sda_udevadm | 31 ---
> test/disk_tests/sas_ssd/disklist | 1 -
> .../disk_tests/sas_ssd/disklist_expected.json | 17 --
> test/disk_tests/sas_ssd/sda/device/model | 1 -
> test/disk_tests/sas_ssd/sda/device/vendor | 1 -
> test/disk_tests/sas_ssd/sda/queue/rotational | 1 -
> test/disk_tests/sas_ssd/sda/size | 1 -
> test/disk_tests/sas_ssd/sda_smart | 20 --
> .../sas_ssd/sda_smart_expected.json | 6 -
> test/disk_tests/sas_ssd/sda_udevadm | 31 ---
> test/disk_tests/ssd_smart/disklist | 5 -
> .../ssd_smart/disklist_expected.json | 72 -----
> test/disk_tests/ssd_smart/sda/device/vendor | 1 -
> .../disk_tests/ssd_smart/sda/queue/rotational | 1 -
> test/disk_tests/ssd_smart/sda/size | 1 -
> test/disk_tests/ssd_smart/sda_smart | 39 ---
> .../ssd_smart/sda_smart_expected.json | 236 ----------------
> test/disk_tests/ssd_smart/sda_udevadm | 11 -
> test/disk_tests/ssd_smart/sdb/device/vendor | 1 -
> .../disk_tests/ssd_smart/sdb/queue/rotational | 1 -
> test/disk_tests/ssd_smart/sdb/size | 1 -
> test/disk_tests/ssd_smart/sdb_smart | 41 ---
> .../ssd_smart/sdb_smart_expected.json | 256 ------------------
> test/disk_tests/ssd_smart/sdb_udevadm | 12 -
> test/disk_tests/ssd_smart/sdc/device/vendor | 1 -
> .../disk_tests/ssd_smart/sdc/queue/rotational | 1 -
> test/disk_tests/ssd_smart/sdc/size | 1 -
> test/disk_tests/ssd_smart/sdc_smart | 16 --
> .../ssd_smart/sdc_smart_expected.json | 16 --
> test/disk_tests/ssd_smart/sdc_udevadm | 11 -
> test/disk_tests/ssd_smart/sdd/device/vendor | 1 -
> .../disk_tests/ssd_smart/sdd/queue/rotational | 1 -
> test/disk_tests/ssd_smart/sdd/size | 1 -
> test/disk_tests/ssd_smart/sdd_smart | 40 ---
> .../ssd_smart/sdd_smart_expected.json | 256 ------------------
> test/disk_tests/ssd_smart/sdd_udevadm | 11 -
> test/disk_tests/ssd_smart/sde/device/vendor | 1 -
> .../disk_tests/ssd_smart/sde/queue/rotational | 1 -
> test/disk_tests/ssd_smart/sde/size | 1 -
> test/disk_tests/ssd_smart/sde_smart | 40 ---
> .../ssd_smart/sde_smart_expected.json | 246 -----------------
> test/disk_tests/ssd_smart/sde_udevadm | 11 -
> test/disk_tests/usages/disklist | 14 -
> test/disk_tests/usages/disklist_expected.json | 222 ---------------
> test/disk_tests/usages/lsblk | 8 -
> test/disk_tests/usages/lvs | 6 -
> test/disk_tests/usages/mounts | 2 -
> test/disk_tests/usages/partlist | 6 -
> test/disk_tests/usages/pvs | 7 -
> test/disk_tests/usages/sda/device/vendor | 1 -
> test/disk_tests/usages/sda/queue/rotational | 1 -
> test/disk_tests/usages/sda/size | 1 -
> test/disk_tests/usages/sda_udevadm | 12 -
> test/disk_tests/usages/sdb/device/vendor | 1 -
> test/disk_tests/usages/sdb/queue/rotational | 1 -
> test/disk_tests/usages/sdb/size | 1 -
> test/disk_tests/usages/sdb_udevadm | 12 -
> test/disk_tests/usages/sdc/device/vendor | 1 -
> test/disk_tests/usages/sdc/queue/rotational | 1 -
> test/disk_tests/usages/sdc/size | 1 -
> test/disk_tests/usages/sdc_udevadm | 12 -
> test/disk_tests/usages/sdd/device/vendor | 1 -
> test/disk_tests/usages/sdd/queue/rotational | 1 -
> test/disk_tests/usages/sdd/sdd1/size | 1 -
> test/disk_tests/usages/sdd/sdd2/size | 1 -
> test/disk_tests/usages/sdd/size | 1 -
> test/disk_tests/usages/sdd_udevadm | 12 -
> test/disk_tests/usages/sde/device/vendor | 1 -
> test/disk_tests/usages/sde/queue/rotational | 1 -
> test/disk_tests/usages/sde/sde1/size | 1 -
> test/disk_tests/usages/sde/size | 1 -
> test/disk_tests/usages/sde_udevadm | 12 -
> test/disk_tests/usages/sdf/device/vendor | 1 -
> test/disk_tests/usages/sdf/queue/rotational | 1 -
> test/disk_tests/usages/sdf/sdf1/size | 1 -
> test/disk_tests/usages/sdf/size | 1 -
> test/disk_tests/usages/sdf_udevadm | 12 -
> test/disk_tests/usages/sdg/device/vendor | 1 -
> test/disk_tests/usages/sdg/queue/rotational | 1 -
> test/disk_tests/usages/sdg/size | 1 -
> test/disk_tests/usages/sdg_udevadm | 12 -
> test/disk_tests/usages/sdh/device/vendor | 1 -
> test/disk_tests/usages/sdh/queue/rotational | 1 -
> test/disk_tests/usages/sdh/size | 1 -
> test/disk_tests/usages/sdh_udevadm | 12 -
> test/disk_tests/usages/sdi/device/vendor | 1 -
> test/disk_tests/usages/sdi/queue/rotational | 1 -
> test/disk_tests/usages/sdi/size | 1 -
> test/disk_tests/usages/sdi_udevadm | 12 -
> test/disk_tests/usages/sdj/device/vendor | 1 -
> test/disk_tests/usages/sdj/queue/rotational | 1 -
> test/disk_tests/usages/sdj/size | 1 -
> test/disk_tests/usages/sdj_udevadm | 12 -
> test/disk_tests/usages/sdk/device/vendor | 1 -
> test/disk_tests/usages/sdk/queue/rotational | 1 -
> test/disk_tests/usages/sdk/size | 1 -
> test/disk_tests/usages/sdk_udevadm | 12 -
> test/disk_tests/usages/sdl/device/vendor | 1 -
> test/disk_tests/usages/sdl/queue/rotational | 1 -
> test/disk_tests/usages/sdl/size | 1 -
> test/disk_tests/usages/sdl_udevadm | 12 -
> test/disk_tests/usages/sdm/device/vendor | 1 -
> test/disk_tests/usages/sdm/queue/rotational | 1 -
> test/disk_tests/usages/sdm/sdm1/size | 1 -
> test/disk_tests/usages/sdm/sdm9/size | 1 -
> test/disk_tests/usages/sdm/size | 1 -
> test/disk_tests/usages/sdm_udevadm | 12 -
> test/disk_tests/usages/sdn/device/vendor | 1 -
> test/disk_tests/usages/sdn/queue/rotational | 1 -
> test/disk_tests/usages/sdn/size | 1 -
> test/disk_tests/usages/sdn_udevadm | 14 -
> test/disk_tests/usages/zpool | 6 -
> 152 files changed, 2709 deletions(-)
> delete mode 100644 test/disk_tests/cciss/cciss!c0d0/device/model
> delete mode 100644 test/disk_tests/cciss/cciss!c0d0/device/vendor
> delete mode 100644 test/disk_tests/cciss/cciss!c0d0/queue/rotational
> delete mode 100644 test/disk_tests/cciss/cciss!c0d0/size
> delete mode 100644 test/disk_tests/cciss/cciss!c0d0_udevadm
> delete mode 100644 test/disk_tests/cciss/disklist
> delete mode 100644 test/disk_tests/cciss/disklist_expected.json
> delete mode 100644 test/disk_tests/hdd_smart/disklist
> delete mode 100644 test/disk_tests/hdd_smart/disklist_expected.json
> delete mode 100644 test/disk_tests/hdd_smart/sda/device/vendor
> delete mode 100644 test/disk_tests/hdd_smart/sda/queue/rotational
> delete mode 100644 test/disk_tests/hdd_smart/sda/size
> delete mode 100644 test/disk_tests/hdd_smart/sda_health
> delete mode 100644 test/disk_tests/hdd_smart/sda_smart
> delete mode 100644 test/disk_tests/hdd_smart/sda_smart_expected.json
> delete mode 100644 test/disk_tests/hdd_smart/sda_udevadm
> delete mode 100644 test/disk_tests/hdd_smart/sdb/device/vendor
> delete mode 100644 test/disk_tests/hdd_smart/sdb/queue/rotational
> delete mode 100644 test/disk_tests/hdd_smart/sdb/size
> delete mode 100644 test/disk_tests/hdd_smart/sdb_health
> delete mode 100644 test/disk_tests/hdd_smart/sdb_smart
> delete mode 100644 test/disk_tests/hdd_smart/sdb_smart_expected.json
> delete mode 100644 test/disk_tests/hdd_smart/sdb_udevadm
> delete mode 100644 test/disk_tests/nvme_smart/disklist
> delete mode 100644 test/disk_tests/nvme_smart/disklist_expected.json
> delete mode 100644 test/disk_tests/nvme_smart/nvme0/model
> delete mode 100644 test/disk_tests/nvme_smart/nvme0_smart
> delete mode 120000 test/disk_tests/nvme_smart/nvme0n1/device
> delete mode 100644 test/disk_tests/nvme_smart/nvme0n1/queue/rotational
> delete mode 100644 test/disk_tests/nvme_smart/nvme0n1/size
> delete mode 100644 test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
> delete mode 100644 test/disk_tests/nvme_smart/nvme0n1_udevadm
> delete mode 100644 test/disk_tests/sas/disklist
> delete mode 100644 test/disk_tests/sas/disklist_expected.json
> delete mode 100644 test/disk_tests/sas/sda/device/model
> delete mode 100644 test/disk_tests/sas/sda/device/vendor
> delete mode 100644 test/disk_tests/sas/sda/queue/rotational
> delete mode 100644 test/disk_tests/sas/sda/size
> delete mode 100644 test/disk_tests/sas/sda_smart
> delete mode 100644 test/disk_tests/sas/sda_smart_expected.json
> delete mode 100644 test/disk_tests/sas/sda_udevadm
> delete mode 100644 test/disk_tests/sas_ssd/disklist
> delete mode 100644 test/disk_tests/sas_ssd/disklist_expected.json
> delete mode 100644 test/disk_tests/sas_ssd/sda/device/model
> delete mode 100644 test/disk_tests/sas_ssd/sda/device/vendor
> delete mode 100644 test/disk_tests/sas_ssd/sda/queue/rotational
> delete mode 100644 test/disk_tests/sas_ssd/sda/size
> delete mode 100644 test/disk_tests/sas_ssd/sda_smart
> delete mode 100644 test/disk_tests/sas_ssd/sda_smart_expected.json
> delete mode 100644 test/disk_tests/sas_ssd/sda_udevadm
> delete mode 100644 test/disk_tests/ssd_smart/disklist
> delete mode 100644 test/disk_tests/ssd_smart/disklist_expected.json
> delete mode 100644 test/disk_tests/ssd_smart/sda/device/vendor
> delete mode 100644 test/disk_tests/ssd_smart/sda/queue/rotational
> delete mode 100644 test/disk_tests/ssd_smart/sda/size
> delete mode 100644 test/disk_tests/ssd_smart/sda_smart
> delete mode 100644 test/disk_tests/ssd_smart/sda_smart_expected.json
> delete mode 100644 test/disk_tests/ssd_smart/sda_udevadm
> delete mode 100644 test/disk_tests/ssd_smart/sdb/device/vendor
> delete mode 100644 test/disk_tests/ssd_smart/sdb/queue/rotational
> delete mode 100644 test/disk_tests/ssd_smart/sdb/size
> delete mode 100644 test/disk_tests/ssd_smart/sdb_smart
> delete mode 100644 test/disk_tests/ssd_smart/sdb_smart_expected.json
> delete mode 100644 test/disk_tests/ssd_smart/sdb_udevadm
> delete mode 100644 test/disk_tests/ssd_smart/sdc/device/vendor
> delete mode 100644 test/disk_tests/ssd_smart/sdc/queue/rotational
> delete mode 100644 test/disk_tests/ssd_smart/sdc/size
> delete mode 100644 test/disk_tests/ssd_smart/sdc_smart
> delete mode 100644 test/disk_tests/ssd_smart/sdc_smart_expected.json
> delete mode 100644 test/disk_tests/ssd_smart/sdc_udevadm
> delete mode 100644 test/disk_tests/ssd_smart/sdd/device/vendor
> delete mode 100644 test/disk_tests/ssd_smart/sdd/queue/rotational
> delete mode 100644 test/disk_tests/ssd_smart/sdd/size
> delete mode 100644 test/disk_tests/ssd_smart/sdd_smart
> delete mode 100644 test/disk_tests/ssd_smart/sdd_smart_expected.json
> delete mode 100644 test/disk_tests/ssd_smart/sdd_udevadm
> delete mode 100644 test/disk_tests/ssd_smart/sde/device/vendor
> delete mode 100644 test/disk_tests/ssd_smart/sde/queue/rotational
> delete mode 100644 test/disk_tests/ssd_smart/sde/size
> delete mode 100644 test/disk_tests/ssd_smart/sde_smart
> delete mode 100644 test/disk_tests/ssd_smart/sde_smart_expected.json
> delete mode 100644 test/disk_tests/ssd_smart/sde_udevadm
> delete mode 100644 test/disk_tests/usages/disklist
> delete mode 100644 test/disk_tests/usages/disklist_expected.json
> delete mode 100644 test/disk_tests/usages/lsblk
> delete mode 100644 test/disk_tests/usages/lvs
> delete mode 100644 test/disk_tests/usages/mounts
> delete mode 100644 test/disk_tests/usages/partlist
> delete mode 100644 test/disk_tests/usages/pvs
> delete mode 100644 test/disk_tests/usages/sda/device/vendor
> delete mode 100644 test/disk_tests/usages/sda/queue/rotational
> delete mode 100644 test/disk_tests/usages/sda/size
> delete mode 100644 test/disk_tests/usages/sda_udevadm
> delete mode 100644 test/disk_tests/usages/sdb/device/vendor
> delete mode 100644 test/disk_tests/usages/sdb/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdb/size
> delete mode 100644 test/disk_tests/usages/sdb_udevadm
> delete mode 100644 test/disk_tests/usages/sdc/device/vendor
> delete mode 100644 test/disk_tests/usages/sdc/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdc/size
> delete mode 100644 test/disk_tests/usages/sdc_udevadm
> delete mode 100644 test/disk_tests/usages/sdd/device/vendor
> delete mode 100644 test/disk_tests/usages/sdd/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdd/sdd1/size
> delete mode 100644 test/disk_tests/usages/sdd/sdd2/size
> delete mode 100644 test/disk_tests/usages/sdd/size
> delete mode 100644 test/disk_tests/usages/sdd_udevadm
> delete mode 100644 test/disk_tests/usages/sde/device/vendor
> delete mode 100644 test/disk_tests/usages/sde/queue/rotational
> delete mode 100644 test/disk_tests/usages/sde/sde1/size
> delete mode 100644 test/disk_tests/usages/sde/size
> delete mode 100644 test/disk_tests/usages/sde_udevadm
> delete mode 100644 test/disk_tests/usages/sdf/device/vendor
> delete mode 100644 test/disk_tests/usages/sdf/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdf/sdf1/size
> delete mode 100644 test/disk_tests/usages/sdf/size
> delete mode 100644 test/disk_tests/usages/sdf_udevadm
> delete mode 100644 test/disk_tests/usages/sdg/device/vendor
> delete mode 100644 test/disk_tests/usages/sdg/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdg/size
> delete mode 100644 test/disk_tests/usages/sdg_udevadm
> delete mode 100644 test/disk_tests/usages/sdh/device/vendor
> delete mode 100644 test/disk_tests/usages/sdh/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdh/size
> delete mode 100644 test/disk_tests/usages/sdh_udevadm
> delete mode 100644 test/disk_tests/usages/sdi/device/vendor
> delete mode 100644 test/disk_tests/usages/sdi/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdi/size
> delete mode 100644 test/disk_tests/usages/sdi_udevadm
> delete mode 100644 test/disk_tests/usages/sdj/device/vendor
> delete mode 100644 test/disk_tests/usages/sdj/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdj/size
> delete mode 100644 test/disk_tests/usages/sdj_udevadm
> delete mode 100644 test/disk_tests/usages/sdk/device/vendor
> delete mode 100644 test/disk_tests/usages/sdk/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdk/size
> delete mode 100644 test/disk_tests/usages/sdk_udevadm
> delete mode 100644 test/disk_tests/usages/sdl/device/vendor
> delete mode 100644 test/disk_tests/usages/sdl/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdl/size
> delete mode 100644 test/disk_tests/usages/sdl_udevadm
> delete mode 100644 test/disk_tests/usages/sdm/device/vendor
> delete mode 100644 test/disk_tests/usages/sdm/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdm/sdm1/size
> delete mode 100644 test/disk_tests/usages/sdm/sdm9/size
> delete mode 100644 test/disk_tests/usages/sdm/size
> delete mode 100644 test/disk_tests/usages/sdm_udevadm
> delete mode 100644 test/disk_tests/usages/sdn/device/vendor
> delete mode 100644 test/disk_tests/usages/sdn/queue/rotational
> delete mode 100644 test/disk_tests/usages/sdn/size
> delete mode 100644 test/disk_tests/usages/sdn_udevadm
> delete mode 100644 test/disk_tests/usages/zpool
>
> diff --git a/test/disk_tests/cciss/cciss!c0d0/device/model b/test/disk_tests/cciss/cciss!c0d0/device/model
> deleted file mode 100644
> index 676b97d..0000000
> --- a/test/disk_tests/cciss/cciss!c0d0/device/model
> +++ /dev/null
> @@ -1 +0,0 @@
> -LOGICAL_VOLUME
> diff --git a/test/disk_tests/cciss/cciss!c0d0/device/vendor b/test/disk_tests/cciss/cciss!c0d0/device/vendor
> deleted file mode 100644
> index e8b2ad6..0000000
> --- a/test/disk_tests/cciss/cciss!c0d0/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -HP
> diff --git a/test/disk_tests/cciss/cciss!c0d0/queue/rotational b/test/disk_tests/cciss/cciss!c0d0/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/cciss/cciss!c0d0/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/cciss/cciss!c0d0/size b/test/disk_tests/cciss/cciss!c0d0/size
> deleted file mode 100644
> index f599e28..0000000
> --- a/test/disk_tests/cciss/cciss!c0d0/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -10
> diff --git a/test/disk_tests/cciss/cciss!c0d0_udevadm b/test/disk_tests/cciss/cciss!c0d0_udevadm
> deleted file mode 100644
> index 21e8899..0000000
> --- a/test/disk_tests/cciss/cciss!c0d0_udevadm
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -P: /devices/pci0000:40/0000:40:13.0/0000:45:00.0/cciss0/c0d0/block/cciss!c0d0
> -N: cciss/c0d0
> -S: disk/by-id/cciss-SERIAL111
> -S: disk/by-id/wwn-0x00000000000000000000000000000000
> -S: disk/by-path/pci-0000:45:00.0-cciss-disk0
> -E: DEVLINKS=/dev/disk/by-id/cciss-000000000000000000000000000000000 /dev/disk/by-id/wwn-0x000000000000000000000000000000000/dev/disk/by-path/pci-0000:45:00.0-cciss-disk0
> -E: DEVNAME=/dev/cciss/c0d0
> -E: DEVPATH=/devices/pci0000:40/0000:40:13.0/0000:45:00.0/cciss0/c0d0/block/cciss!c0d0
> -E: DEVTYPE=disk
> -E: ID_BUS=cciss
> -E: ID_MODEL=LOGICAL_VOLUME
> -E: ID_MODEL_ENC=LOGICAL\x20VOLUME\x20\x20
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=cfe72deb-65d1-487c-bdfa-8af66dc1a969
> -E: ID_PATH=pci-0000:45:00.0-cciss-disk0
> -E: ID_PATH_TAG=pci-0000_45_00_0-cciss-disk0
> -E: ID_REVISION=7.24
> -E: ID_SCSI=1
> -E: ID_SCSI_SERIAL=SERIAL1
> -E: ID_SERIAL=SERIAL111
> -E: ID_SERIAL_SHORT=SER111
> -E: ID_TYPE=disk
> -E: ID_VENDOR=HP
> -E: ID_VENDOR_ENC=HP\x20\x20\x20\x20\x20\x20
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_VENDOR_EXTENSION=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x00000000000000000000000000000000
> -E: MAJOR=104
> -E: MINOR=0
> -E: SUBSYSTEM=block
> -E: TAGS=:systemd:
> -E: USEC_INITIALIZED=2247
> diff --git a/test/disk_tests/cciss/disklist b/test/disk_tests/cciss/disklist
> deleted file mode 100644
> index aa174aa..0000000
> --- a/test/disk_tests/cciss/disklist
> +++ /dev/null
> @@ -1 +0,0 @@
> -cciss!c0d0
> diff --git a/test/disk_tests/cciss/disklist_expected.json b/test/disk_tests/cciss/disklist_expected.json
> deleted file mode 100644
> index eff58db..0000000
> --- a/test/disk_tests/cciss/disklist_expected.json
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -{
> - "cciss/c0d0" : {
> - "wearout" : "N/A",
> - "vendor" : "HP",
> - "rpm" : -1,
> - "type" : "unknown",
> - "serial" : "SER111",
> - "osdid" : -1,
> - "health" : "UNKNOWN",
> - "model" : "LOGICAL_VOLUME",
> - "size" : 5120,
> - "wwn" : "0x0000000000000000",
> - "gpt" : 1,
> - "devpath" : "/dev/cciss/c0d0"
> - }
> -}
> diff --git a/test/disk_tests/hdd_smart/disklist b/test/disk_tests/hdd_smart/disklist
> deleted file mode 100644
> index 9f6776c..0000000
> --- a/test/disk_tests/hdd_smart/disklist
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -sda
> -sdb
> diff --git a/test/disk_tests/hdd_smart/disklist_expected.json b/test/disk_tests/hdd_smart/disklist_expected.json
> deleted file mode 100644
> index 02a341e..0000000
> --- a/test/disk_tests/hdd_smart/disklist_expected.json
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -{
> - "sdb" : {
> - "devpath" : "/dev/sdb",
> - "size" : 1024000,
> - "gpt" : 1,
> - "osdid" : -1,
> - "rpm" : 7200,
> - "model" : "ST4000NM0033-9ZM170",
> - "vendor" : "ATA",
> - "health" : "PASSED",
> - "type" : "hdd",
> - "wwn" : "0x0000000000000000",
> - "wearout" : "N/A",
> - "serial" : "00000000"
> - },
> - "sda" : {
> - "osdid" : -1,
> - "size" : 1024000,
> - "gpt" : 1,
> - "devpath" : "/dev/sda",
> - "model" : "ST4000DM000-1F2168",
> - "rpm" : 5900,
> - "type" : "hdd",
> - "health" : "PASSED",
> - "vendor" : "ATA",
> - "serial" : "00000000",
> - "wearout" : "N/A",
> - "wwn" : "0x0000000000000000"
> - }
> -}
> diff --git a/test/disk_tests/hdd_smart/sda/device/vendor b/test/disk_tests/hdd_smart/sda/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/hdd_smart/sda/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/hdd_smart/sda/queue/rotational b/test/disk_tests/hdd_smart/sda/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/hdd_smart/sda/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/hdd_smart/sda/size b/test/disk_tests/hdd_smart/sda/size
> deleted file mode 100644
> index 8bd1af1..0000000
> --- a/test/disk_tests/hdd_smart/sda/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -2000
> diff --git a/test/disk_tests/hdd_smart/sda_health b/test/disk_tests/hdd_smart/sda_health
> deleted file mode 100644
> index faf4ce3..0000000
> --- a/test/disk_tests/hdd_smart/sda_health
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
> -Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> diff --git a/test/disk_tests/hdd_smart/sda_smart b/test/disk_tests/hdd_smart/sda_smart
> deleted file mode 100644
> index a3f8f0a..0000000
> --- a/test/disk_tests/hdd_smart/sda_smart
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
> -Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> -
> -SMART Attributes Data Structure revision number: 10
> -Vendor Specific SMART Attributes with Thresholds:
> -ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
> - 1 Raw_Read_Error_Rate POSR-- 117 099 006 - 158983656
> - 3 Spin_Up_Time PO---- 092 091 000 - 0
> - 4 Start_Stop_Count -O--CK 100 100 020 - 189
> - 5 Reallocated_Sector_Ct PO--CK 100 100 010 - 0
> - 7 Seek_Error_Rate POSR-- 075 060 030 - 30779387
> - 9 Power_On_Hours -O--CK 099 099 000 - 1250
> - 10 Spin_Retry_Count PO--C- 100 100 097 - 0
> - 12 Power_Cycle_Count -O--CK 100 100 020 - 190
> -183 Runtime_Bad_Block -O--CK 100 100 000 - 0
> -184 End-to-End_Error -O--CK 100 100 099 - 0
> -187 Reported_Uncorrect -O--CK 100 100 000 - 0
> -188 Command_Timeout -O--CK 100 100 000 - 0 0 0
> -189 High_Fly_Writes -O-RCK 100 100 000 - 0
> -190 Airflow_Temperature_Cel -O---K 069 061 045 - 31 (Min/Max 20/33)
> -191 G-Sense_Error_Rate -O--CK 100 100 000 - 0
> -192 Power-Off_Retract_Count -O--CK 100 100 000 - 43
> -193 Load_Cycle_Count -O--CK 100 100 000 - 201
> -194 Temperature_Celsius -O---K 031 040 000 - 31 (0 17 0 0 0)
> -197 Current_Pending_Sector -O--C- 100 100 000 - 0
> -198 Offline_Uncorrectable ----C- 100 100 000 - 0
> -199 UDMA_CRC_Error_Count -OSRCK 200 200 000 - 0
> -240 Head_Flying_Hours ------ 100 253 000 - 1259h+06m+33.546s
> -241 Total_LBAs_Written ------ 100 253 000 - 24013587236
> -242 Total_LBAs_Read ------ 100 253 000 - 66916845706732
> - ||||||_ K auto-keep
> - |||||__ C event count
> - ||||___ R error rate
> - |||____ S speed/performance
> - ||_____ O updated online
> - |______ P prefailure warning
> -
> diff --git a/test/disk_tests/hdd_smart/sda_smart_expected.json b/test/disk_tests/hdd_smart/sda_smart_expected.json
> deleted file mode 100644
> index 01bb860..0000000
> --- a/test/disk_tests/hdd_smart/sda_smart_expected.json
> +++ /dev/null
> @@ -1,246 +0,0 @@
> -{
> - "attributes" : [
> - {
> - "threshold" : 6,
> - "fail" : "-",
> - "flags" : "POSR--",
> - "value" : 117,
> - "id" : " 1",
> - "raw" : "158983656",
> - "name" : "Raw_Read_Error_Rate",
> - "worst" : 99
> - },
> - {
> - "flags" : "PO----",
> - "value" : 92,
> - "raw" : "0",
> - "name" : "Spin_Up_Time",
> - "worst" : 91,
> - "id" : " 3",
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "value" : 100,
> - "flags" : "-O--CK",
> - "id" : " 4",
> - "name" : "Start_Stop_Count",
> - "worst" : 100,
> - "raw" : "189",
> - "threshold" : 20,
> - "fail" : "-"
> - },
> - {
> - "value" : 100,
> - "flags" : "PO--CK",
> - "id" : " 5",
> - "name" : "Reallocated_Sector_Ct",
> - "worst" : 100,
> - "raw" : "0",
> - "threshold" : 10,
> - "fail" : "-"
> - },
> - {
> - "flags" : "POSR--",
> - "value" : 75,
> - "raw" : "30779387",
> - "worst" : 60,
> - "name" : "Seek_Error_Rate",
> - "id" : " 7",
> - "fail" : "-",
> - "threshold" : 30
> - },
> - {
> - "raw" : "1250",
> - "worst" : 99,
> - "name" : "Power_On_Hours",
> - "id" : " 9",
> - "flags" : "-O--CK",
> - "value" : 99,
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "value" : 100,
> - "flags" : "PO--C-",
> - "id" : " 10",
> - "name" : "Spin_Retry_Count",
> - "worst" : 100,
> - "raw" : "0",
> - "threshold" : 97,
> - "fail" : "-"
> - },
> - {
> - "flags" : "-O--CK",
> - "value" : 100,
> - "id" : " 12",
> - "raw" : "190",
> - "worst" : 100,
> - "name" : "Power_Cycle_Count",
> - "threshold" : 20,
> - "fail" : "-"
> - },
> - {
> - "threshold" : 0,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "value" : 100,
> - "id" : "183",
> - "raw" : "0",
> - "worst" : 100,
> - "name" : "Runtime_Bad_Block"
> - },
> - {
> - "fail" : "-",
> - "threshold" : 99,
> - "flags" : "-O--CK",
> - "value" : 100,
> - "raw" : "0",
> - "worst" : 100,
> - "name" : "End-to-End_Error",
> - "id" : "184"
> - },
> - {
> - "worst" : 100,
> - "name" : "Reported_Uncorrect",
> - "raw" : "0",
> - "id" : "187",
> - "value" : 100,
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "flags" : "-O--CK",
> - "value" : 100,
> - "raw" : "0 0 0",
> - "worst" : 100,
> - "name" : "Command_Timeout",
> - "id" : "188",
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "threshold" : 0,
> - "fail" : "-",
> - "flags" : "-O-RCK",
> - "value" : 100,
> - "id" : "189",
> - "raw" : "0",
> - "name" : "High_Fly_Writes",
> - "worst" : 100
> - },
> - {
> - "worst" : 61,
> - "name" : "Airflow_Temperature_Cel",
> - "raw" : "31 (Min/Max 20/33)",
> - "id" : "190",
> - "value" : 69,
> - "flags" : "-O---K",
> - "fail" : "-",
> - "threshold" : 45
> - },
> - {
> - "fail" : "-",
> - "threshold" : 0,
> - "worst" : 100,
> - "name" : "G-Sense_Error_Rate",
> - "raw" : "0",
> - "id" : "191",
> - "value" : 100,
> - "flags" : "-O--CK"
> - },
> - {
> - "id" : "192",
> - "raw" : "43",
> - "name" : "Power-Off_Retract_Count",
> - "worst" : 100,
> - "flags" : "-O--CK",
> - "value" : 100,
> - "threshold" : 0,
> - "fail" : "-"
> - },
> - {
> - "flags" : "-O--CK",
> - "value" : 100,
> - "raw" : "201",
> - "worst" : 100,
> - "name" : "Load_Cycle_Count",
> - "id" : "193",
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "fail" : "-",
> - "threshold" : 0,
> - "value" : 31,
> - "flags" : "-O---K",
> - "name" : "Temperature_Celsius",
> - "worst" : 40,
> - "raw" : "31 (0 17 0 0 0)",
> - "id" : "194"
> - },
> - {
> - "value" : 100,
> - "flags" : "-O--C-",
> - "id" : "197",
> - "worst" : 100,
> - "name" : "Current_Pending_Sector",
> - "raw" : "0",
> - "threshold" : 0,
> - "fail" : "-"
> - },
> - {
> - "worst" : 100,
> - "name" : "Offline_Uncorrectable",
> - "raw" : "0",
> - "id" : "198",
> - "value" : 100,
> - "flags" : "----C-",
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "threshold" : 0,
> - "fail" : "-",
> - "value" : 200,
> - "flags" : "-OSRCK",
> - "id" : "199",
> - "worst" : 200,
> - "name" : "UDMA_CRC_Error_Count",
> - "raw" : "0"
> - },
> - {
> - "raw" : "1259h+06m+33.546s",
> - "name" : "Head_Flying_Hours",
> - "worst" : 253,
> - "id" : "240",
> - "flags" : "------",
> - "value" : 100,
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "fail" : "-",
> - "threshold" : 0,
> - "name" : "Total_LBAs_Written",
> - "worst" : 253,
> - "raw" : "24013587236",
> - "id" : "241",
> - "value" : 100,
> - "flags" : "------"
> - },
> - {
> - "flags" : "------",
> - "value" : 100,
> - "id" : "242",
> - "raw" : "66916845706732",
> - "worst" : 253,
> - "name" : "Total_LBAs_Read",
> - "threshold" : 0,
> - "fail" : "-"
> - }
> - ],
> - "health" : "PASSED",
> - "type" : "ata"
> -}
> diff --git a/test/disk_tests/hdd_smart/sda_udevadm b/test/disk_tests/hdd_smart/sda_udevadm
> deleted file mode 100644
> index d9b5497..0000000
> --- a/test/disk_tests/hdd_smart/sda_udevadm
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -E: DEVNAME=/dev/sda
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=5900
> -E: ID_BUS=ata
> -E: ID_MODEL=ST4000DM000-1F2168
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=4f2e07a6-5437-2b4e-b6e8-9cba98639324
> -E: ID_SERIAL_SHORT=00000000
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/hdd_smart/sdb/device/vendor b/test/disk_tests/hdd_smart/sdb/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/hdd_smart/sdb/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/hdd_smart/sdb/queue/rotational b/test/disk_tests/hdd_smart/sdb/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/hdd_smart/sdb/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/hdd_smart/sdb/size b/test/disk_tests/hdd_smart/sdb/size
> deleted file mode 100644
> index 8bd1af1..0000000
> --- a/test/disk_tests/hdd_smart/sdb/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -2000
> diff --git a/test/disk_tests/hdd_smart/sdb_health b/test/disk_tests/hdd_smart/sdb_health
> deleted file mode 100644
> index faf4ce3..0000000
> --- a/test/disk_tests/hdd_smart/sdb_health
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
> -Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> diff --git a/test/disk_tests/hdd_smart/sdb_smart b/test/disk_tests/hdd_smart/sdb_smart
> deleted file mode 100644
> index ce52bea..0000000
> --- a/test/disk_tests/hdd_smart/sdb_smart
> +++ /dev/null
> @@ -1,36 +0,0 @@
> -smartctl 6.4 2014-10-07 r4002 [x86_64-linux-4.4.10-1-pve] (local build)
> -Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> -
> -SMART Attributes Data Structure revision number: 10
> -Vendor Specific SMART Attributes with Thresholds:
> -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH FAIL RAW_VALUE
> - 1 Raw_Read_Error_Rate POSR-- 083 063 044 - 215697022
> - 3 Spin_Up_Time PO---- 092 091 000 - 0
> - 4 Start_Stop_Count -O--CK 100 100 020 - 265
> - 5 Reallocated_Sector_Ct PO--CK 100 100 010 - 0
> - 7 Seek_Error_Rate POSR-- 091 060 030 - 1572375006
> - 9 Power_On_Hours -O--CK 089 089 000 - 9885
> - 10 Spin_Retry_Count PO--C- 100 100 097 - 0
> - 12 Power_Cycle_Count -O--CK 100 100 020 - 265
> -184 End-to-End_Error -O--CK 100 100 099 - 0
> -187 Reported_Uncorrect -O--CK 100 100 000 - 0
> -188 Command_Timeout -O--CK 100 100 000 - 0
> -189 High_Fly_Writes -O--CK 100 100 000 - 0
> -190 Airflow_Temperature_Cel -O-RCK 045 036 045 NOW 55 (147 229 55 24 0)
> -191 G-Sense_Error_Rate -O---K 100 100 000 - 0
> -192 Power-Off_Retract_Count -O--CK 100 100 000 - 57
> -193 Load_Cycle_Count -O--CK 100 100 000 - 265
> -194 Temperature_Celsius -O--CK 055 064 000 - 55 (0 16 0 0 0)
> -195 Hardware_ECC_Recovered -O---K 023 013 000 - 215697022
> -197 Current_Pending_Sector -O--C- 100 100 000 - 0
> -198 Offline_Uncorrectable ----C- 100 100 000 - 0
> -199 UDMA_CRC_Error_Count -OSRCK 200 200 000 - 0
> - ||||||_ K auto-keep
> - |||||__ C event count
> - ||||___ R error rate
> - |||____ S speed/performance
> - ||_____ O updated online
> - |______ P prefailure warning
> diff --git a/test/disk_tests/hdd_smart/sdb_smart_expected.json b/test/disk_tests/hdd_smart/sdb_smart_expected.json
> deleted file mode 100644
> index 41e55fb..0000000
> --- a/test/disk_tests/hdd_smart/sdb_smart_expected.json
> +++ /dev/null
> @@ -1,216 +0,0 @@
> -{
> - "attributes" : [
> - {
> - "threshold" : 44,
> - "fail" : "-",
> - "id" : " 1",
> - "name" : "Raw_Read_Error_Rate",
> - "worst" : 63,
> - "raw" : "215697022",
> - "value" : 83,
> - "flags" : "POSR--"
> - },
> - {
> - "flags" : "PO----",
> - "value" : 92,
> - "id" : " 3",
> - "raw" : "0",
> - "worst" : 91,
> - "name" : "Spin_Up_Time",
> - "threshold" : 0,
> - "fail" : "-"
> - },
> - {
> - "fail" : "-",
> - "threshold" : 20,
> - "value" : 100,
> - "flags" : "-O--CK",
> - "worst" : 100,
> - "name" : "Start_Stop_Count",
> - "raw" : "265",
> - "id" : " 4"
> - },
> - {
> - "flags" : "PO--CK",
> - "value" : 100,
> - "id" : " 5",
> - "raw" : "0",
> - "name" : "Reallocated_Sector_Ct",
> - "worst" : 100,
> - "threshold" : 10,
> - "fail" : "-"
> - },
> - {
> - "id" : " 7",
> - "raw" : "1572375006",
> - "name" : "Seek_Error_Rate",
> - "worst" : 60,
> - "flags" : "POSR--",
> - "value" : 91,
> - "threshold" : 30,
> - "fail" : "-"
> - },
> - {
> - "raw" : "9885",
> - "name" : "Power_On_Hours",
> - "worst" : 89,
> - "id" : " 9",
> - "flags" : "-O--CK",
> - "value" : 89,
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "fail" : "-",
> - "threshold" : 97,
> - "value" : 100,
> - "flags" : "PO--C-",
> - "worst" : 100,
> - "name" : "Spin_Retry_Count",
> - "raw" : "0",
> - "id" : " 10"
> - },
> - {
> - "threshold" : 20,
> - "fail" : "-",
> - "id" : " 12",
> - "raw" : "265",
> - "name" : "Power_Cycle_Count",
> - "worst" : 100,
> - "flags" : "-O--CK",
> - "value" : 100
> - },
> - {
> - "name" : "End-to-End_Error",
> - "worst" : 100,
> - "raw" : "0",
> - "id" : "184",
> - "value" : 100,
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "threshold" : 99
> - },
> - {
> - "threshold" : 0,
> - "fail" : "-",
> - "id" : "187",
> - "raw" : "0",
> - "name" : "Reported_Uncorrect",
> - "worst" : 100,
> - "flags" : "-O--CK",
> - "value" : 100
> - },
> - {
> - "threshold" : 0,
> - "fail" : "-",
> - "id" : "188",
> - "raw" : "0",
> - "name" : "Command_Timeout",
> - "worst" : 100,
> - "flags" : "-O--CK",
> - "value" : 100
> - },
> - {
> - "fail" : "-",
> - "threshold" : 0,
> - "raw" : "0",
> - "worst" : 100,
> - "name" : "High_Fly_Writes",
> - "id" : "189",
> - "flags" : "-O--CK",
> - "value" : 100
> - },
> - {
> - "flags" : "-O-RCK",
> - "value" : 45,
> - "raw" : "55 (147 229 55 24 0)",
> - "worst" : 36,
> - "name" : "Airflow_Temperature_Cel",
> - "id" : "190",
> - "fail" : "NOW",
> - "threshold" : 45
> - },
> - {
> - "fail" : "-",
> - "threshold" : 0,
> - "raw" : "0",
> - "worst" : 100,
> - "name" : "G-Sense_Error_Rate",
> - "id" : "191",
> - "flags" : "-O---K",
> - "value" : 100
> - },
> - {
> - "threshold" : 0,
> - "fail" : "-",
> - "id" : "192",
> - "raw" : "57",
> - "worst" : 100,
> - "name" : "Power-Off_Retract_Count",
> - "flags" : "-O--CK",
> - "value" : 100
> - },
> - {
> - "fail" : "-",
> - "threshold" : 0,
> - "value" : 100,
> - "flags" : "-O--CK",
> - "name" : "Load_Cycle_Count",
> - "worst" : 100,
> - "raw" : "265",
> - "id" : "193"
> - },
> - {
> - "threshold" : 0,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "value" : 55,
> - "id" : "194",
> - "raw" : "55 (0 16 0 0 0)",
> - "name" : "Temperature_Celsius",
> - "worst" : 64
> - },
> - {
> - "threshold" : 0,
> - "fail" : "-",
> - "id" : "195",
> - "name" : "Hardware_ECC_Recovered",
> - "worst" : 13,
> - "raw" : "215697022",
> - "value" : 23,
> - "flags" : "-O---K"
> - },
> - {
> - "worst" : 100,
> - "name" : "Current_Pending_Sector",
> - "raw" : "0",
> - "id" : "197",
> - "value" : 100,
> - "flags" : "-O--C-",
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "worst" : 100,
> - "name" : "Offline_Uncorrectable",
> - "raw" : "0",
> - "id" : "198",
> - "value" : 100,
> - "flags" : "----C-",
> - "fail" : "-",
> - "threshold" : 0
> - },
> - {
> - "fail" : "-",
> - "threshold" : 0,
> - "value" : 200,
> - "flags" : "-OSRCK",
> - "worst" : 200,
> - "name" : "UDMA_CRC_Error_Count",
> - "raw" : "0",
> - "id" : "199"
> - }
> - ],
> - "type" : "ata",
> - "health" : "PASSED"
> -}
> diff --git a/test/disk_tests/hdd_smart/sdb_udevadm b/test/disk_tests/hdd_smart/sdb_udevadm
> deleted file mode 100644
> index 3bc3a57..0000000
> --- a/test/disk_tests/hdd_smart/sdb_udevadm
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -E: DEVNAME=/dev/sdb
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=7200
> -E: ID_BUS=ata
> -E: ID_MODEL=ST4000NM0033-9ZM170
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=4f2e07a6-5437-2b4e-b6e8-9cba98639324
> -E: ID_SERIAL_SHORT=00000000
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/nvme_smart/disklist b/test/disk_tests/nvme_smart/disklist
> deleted file mode 100644
> index d00b90e..0000000
> --- a/test/disk_tests/nvme_smart/disklist
> +++ /dev/null
> @@ -1 +0,0 @@
> -nvme0n1
> diff --git a/test/disk_tests/nvme_smart/disklist_expected.json b/test/disk_tests/nvme_smart/disklist_expected.json
> deleted file mode 100644
> index 4d1c92f..0000000
> --- a/test/disk_tests/nvme_smart/disklist_expected.json
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -{
> - "nvme0n1" : {
> - "wearout" : 69,
> - "vendor" : "unknown",
> - "size" : 512000,
> - "health" : "PASSED",
> - "serial" : "unknown",
> - "model" : "NVME MODEL 1",
> - "rpm" : 0,
> - "osdid" : -1,
> - "devpath" : "/dev/nvme0n1",
> - "gpt" : 0,
> - "wwn" : "unknown",
> - "type" : "nvme"
> - }
> -}
> diff --git a/test/disk_tests/nvme_smart/nvme0/model b/test/disk_tests/nvme_smart/nvme0/model
> deleted file mode 100644
> index 9bd6eba..0000000
> --- a/test/disk_tests/nvme_smart/nvme0/model
> +++ /dev/null
> @@ -1 +0,0 @@
> -NVME MODEL 1
> diff --git a/test/disk_tests/nvme_smart/nvme0_smart b/test/disk_tests/nvme_smart/nvme0_smart
> deleted file mode 100644
> index f371d5b..0000000
> --- a/test/disk_tests/nvme_smart/nvme0_smart
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.19-1-pve] (local build)
> -Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> -
> -SMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)
> -Critical Warning: 0x00
> -Temperature: 32 Celsius
> -Available Spare: 100%
> -Available Spare Threshold: 10%
> -Percentage Used: 31%
> -Data Units Read: 1,299,288 [665 GB]
> -Data Units Written: 5,592,478 [2.86 TB]
> -Host Read Commands: 30,360,807
> -Host Write Commands: 470,356,196
> -Controller Busy Time: 12
> -Power Cycles: 98
> -Power On Hours: 687
> -Unsafe Shutdowns: 21
> -Media and Data Integrity Errors: 0
> -Error Information Log Entries: 0
> diff --git a/test/disk_tests/nvme_smart/nvme0n1/device b/test/disk_tests/nvme_smart/nvme0n1/device
> deleted file mode 120000
> index e890f3e..0000000
> --- a/test/disk_tests/nvme_smart/nvme0n1/device
> +++ /dev/null
> @@ -1 +0,0 @@
> -../nvme0
> \ No newline at end of file
> diff --git a/test/disk_tests/nvme_smart/nvme0n1/queue/rotational b/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
> deleted file mode 100644
> index 573541a..0000000
> --- a/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -0
> diff --git a/test/disk_tests/nvme_smart/nvme0n1/size b/test/disk_tests/nvme_smart/nvme0n1/size
> deleted file mode 100644
> index 83b33d2..0000000
> --- a/test/disk_tests/nvme_smart/nvme0n1/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -1000
> diff --git a/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json b/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
> deleted file mode 100644
> index af8eade..0000000
> --- a/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -{
> - "text" : "\nSMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)\nCritical Warning: 0x00\nTemperature: 32 Celsius\nAvailable Spare: 100%\nAvailable Spare Threshold: 10%\nPercentage Used: 31%\nData Units Read: 1,299,288 [665 GB]\nData Units Written: 5,592,478 [2.86 TB]\nHost Read Commands: 30,360,807\nHost Write Commands: 470,356,196\nController Busy Time: 12\nPower Cycles: 98\nPower On Hours: 687\nUnsafe Shutdowns: 21\nMedia and Data Integrity Errors: 0\nError Information Log Entries: 0\n",
> - "health" : "PASSED",
> - "type" : "text",
> - "wearout": 69
> -}
> diff --git a/test/disk_tests/nvme_smart/nvme0n1_udevadm b/test/disk_tests/nvme_smart/nvme0n1_udevadm
> deleted file mode 100644
> index 36c78ce..0000000
> --- a/test/disk_tests/nvme_smart/nvme0n1_udevadm
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -
> -P: /devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
> -N: nvme0n1
> -S: disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
> -E: DEVLINKS=/dev/disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
> -E: DEVNAME=/dev/nvme0n1
> -E: DEVPATH=/devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
> -E: DEVTYPE=disk
> -E: ID_FS_TYPE=LVM2_member
> -E: ID_FS_USAGE=raid
> -E: ID_FS_UUID=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
> -E: ID_FS_UUID_ENC=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
> -E: ID_FS_VERSION=LVM2 001
> -E: MAJOR=259
> -E: MINOR=0
> -E: SUBSYSTEM=block
> -E: TAGS=:systemd:
> -E: USEC_INITIALIZED=3842
> diff --git a/test/disk_tests/sas/disklist b/test/disk_tests/sas/disklist
> deleted file mode 100644
> index 9191c61..0000000
> --- a/test/disk_tests/sas/disklist
> +++ /dev/null
> @@ -1 +0,0 @@
> -sda
> diff --git a/test/disk_tests/sas/disklist_expected.json b/test/disk_tests/sas/disklist_expected.json
> deleted file mode 100644
> index 39b14a5..0000000
> --- a/test/disk_tests/sas/disklist_expected.json
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -{
> - "sda" : {
> - "gpt" : 1,
> - "devpath" : "/dev/sda",
> - "type" : "unknown",
> - "model" : "MODEL1",
> - "health" : "UNKNOWN",
> - "osdid" : -1,
> - "wwn" : "0x0000000000000000",
> - "vendor" : "VENDOR1",
> - "rpm" : -1,
> - "size" : 5120000,
> - "serial" : "SER2",
> - "wearout" : "N/A",
> - "by_id_link" : "/dev/disk/by-id/scsi-00000000000000000"
> - }
> -}
> diff --git a/test/disk_tests/sas/sda/device/model b/test/disk_tests/sas/sda/device/model
> deleted file mode 100644
> index 6b69674..0000000
> --- a/test/disk_tests/sas/sda/device/model
> +++ /dev/null
> @@ -1 +0,0 @@
> -MODEL1
> diff --git a/test/disk_tests/sas/sda/device/vendor b/test/disk_tests/sas/sda/device/vendor
> deleted file mode 100644
> index a7894eb..0000000
> --- a/test/disk_tests/sas/sda/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -VENDOR1
> diff --git a/test/disk_tests/sas/sda/queue/rotational b/test/disk_tests/sas/sda/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/sas/sda/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/sas/sda/size b/test/disk_tests/sas/sda/size
> deleted file mode 100644
> index 5caff40..0000000
> --- a/test/disk_tests/sas/sda/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -10000
> diff --git a/test/disk_tests/sas/sda_smart b/test/disk_tests/sas/sda_smart
> deleted file mode 100644
> index 856af39..0000000
> --- a/test/disk_tests/sas/sda_smart
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -=== START OF READ SMART DATA SECTION ===
> -SMART Health Status: OK
> -
> -Percentage used endurance indicator: 0%
> -Current Drive Temperature: 20 C
> -Drive Trip Temperature: 70 C
> -
> -Manufactured in week 47 of year 2012
> -Specified cycle count over device lifetime: 0
> -Accumulated start-stop cycles: 0
> -Specified load-unload count over device lifetime: 0
> -Accumulated load-unload cycles: 0
> -Elements in grown defect list: 0
> -
> -Vendor (Seagate) cache information
> - Blocks sent to initiator = 1286675833552896
> -
> -Vendor (Seagate/Hitachi) factory information
> - number of hours powered up = 7127.12
> - number of minutes until next internal SMART test = 0
> diff --git a/test/disk_tests/sas/sda_smart_expected.json b/test/disk_tests/sas/sda_smart_expected.json
> deleted file mode 100644
> index 2964372..0000000
> --- a/test/disk_tests/sas/sda_smart_expected.json
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -{
> - "health" : "OK",
> - "text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature: 20 C\nDrive Trip Temperature: 70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime: 0\nAccumulated start-stop cycles: 0\nSpecified load-unload count over device lifetime: 0\nAccumulated load-unload cycles: 0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n number of hours powered up = 7127.12\n number of minutes until next internal SMART test = 0\n",
> - "type" : "text",
> - "wearout": 100
> -}
> diff --git a/test/disk_tests/sas/sda_udevadm b/test/disk_tests/sas/sda_udevadm
> deleted file mode 100644
> index ac0744d..0000000
> --- a/test/disk_tests/sas/sda_udevadm
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -P: /devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
> -N: sda
> -S: disk/by-id/scsi-00000000000000000
> -S: disk/by-id/wwn-0x0000000000000000
> -S: disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
> -E: DEVLINKS=/dev/disk/by-id/scsi-00000000000000000 /dev/disk/by-id/wwn-0x0000000000000000 /dev/disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
> -E: DEVNAME=/dev/sda
> -E: DEVPATH=/devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
> -E: DEVTYPE=disk
> -E: ID_BUS=scsi
> -E: ID_MODEL=MODEL1
> -E: ID_MODEL_ENC=MODEL1\x20\x20\x20\x20\x20\x20
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=605740f0-44a1-4dc5-9fea-bde166df963e
> -E: ID_PATH=pci-0000:02:00.0-sas-0x0000000000000000-lun-0
> -E: ID_PATH_TAG=pci-0000_02_00_0-sas-0x0000000000000000-lun-0
> -E: ID_REVISION=ES64
> -E: ID_SCSI=1
> -E: ID_SCSI_SERIAL=SERIAL
> -E: ID_SERIAL=SERIAL2
> -E: ID_SERIAL_SHORT=SER2
> -E: ID_TYPE=disk
> -E: ID_VENDOR=VENDOR1
> -E: ID_VENDOR_ENC=VENDOR1\x20
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> -E: MAJOR=8
> -E: MINOR=0
> -E: SUBSYSTEM=block
> -E: TAGS=:systemd:
> -E: USEC_INITIALIZED=667541
> diff --git a/test/disk_tests/sas_ssd/disklist b/test/disk_tests/sas_ssd/disklist
> deleted file mode 100644
> index 9191c61..0000000
> --- a/test/disk_tests/sas_ssd/disklist
> +++ /dev/null
> @@ -1 +0,0 @@
> -sda
> diff --git a/test/disk_tests/sas_ssd/disklist_expected.json b/test/disk_tests/sas_ssd/disklist_expected.json
> deleted file mode 100644
> index dd9b748..0000000
> --- a/test/disk_tests/sas_ssd/disklist_expected.json
> +++ /dev/null
> @@ -1,17 +0,0 @@
> -{
> - "sda" : {
> - "gpt" : 1,
> - "devpath" : "/dev/sda",
> - "type" : "ssd",
> - "model" : "MODEL1",
> - "health" : "OK",
> - "osdid" : -1,
> - "wwn" : "0x0000000000000000",
> - "vendor" : "VENDOR1",
> - "rpm" : 0,
> - "size" : 5120000,
> - "serial" : "SER2",
> - "wearout" : 100,
> - "by_id_link" : "/dev/disk/by-id/scsi-00000000000000000"
> - }
> -}
> diff --git a/test/disk_tests/sas_ssd/sda/device/model b/test/disk_tests/sas_ssd/sda/device/model
> deleted file mode 100644
> index 6b69674..0000000
> --- a/test/disk_tests/sas_ssd/sda/device/model
> +++ /dev/null
> @@ -1 +0,0 @@
> -MODEL1
> diff --git a/test/disk_tests/sas_ssd/sda/device/vendor b/test/disk_tests/sas_ssd/sda/device/vendor
> deleted file mode 100644
> index a7894eb..0000000
> --- a/test/disk_tests/sas_ssd/sda/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -VENDOR1
> diff --git a/test/disk_tests/sas_ssd/sda/queue/rotational b/test/disk_tests/sas_ssd/sda/queue/rotational
> deleted file mode 100644
> index 573541a..0000000
> --- a/test/disk_tests/sas_ssd/sda/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -0
> diff --git a/test/disk_tests/sas_ssd/sda/size b/test/disk_tests/sas_ssd/sda/size
> deleted file mode 100644
> index 5caff40..0000000
> --- a/test/disk_tests/sas_ssd/sda/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -10000
> diff --git a/test/disk_tests/sas_ssd/sda_smart b/test/disk_tests/sas_ssd/sda_smart
> deleted file mode 100644
> index 856af39..0000000
> --- a/test/disk_tests/sas_ssd/sda_smart
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -=== START OF READ SMART DATA SECTION ===
> -SMART Health Status: OK
> -
> -Percentage used endurance indicator: 0%
> -Current Drive Temperature: 20 C
> -Drive Trip Temperature: 70 C
> -
> -Manufactured in week 47 of year 2012
> -Specified cycle count over device lifetime: 0
> -Accumulated start-stop cycles: 0
> -Specified load-unload count over device lifetime: 0
> -Accumulated load-unload cycles: 0
> -Elements in grown defect list: 0
> -
> -Vendor (Seagate) cache information
> - Blocks sent to initiator = 1286675833552896
> -
> -Vendor (Seagate/Hitachi) factory information
> - number of hours powered up = 7127.12
> - number of minutes until next internal SMART test = 0
> diff --git a/test/disk_tests/sas_ssd/sda_smart_expected.json b/test/disk_tests/sas_ssd/sda_smart_expected.json
> deleted file mode 100644
> index 2964372..0000000
> --- a/test/disk_tests/sas_ssd/sda_smart_expected.json
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -{
> - "health" : "OK",
> - "text" : "\nPercentage used endurance indicator: 0%\nCurrent Drive Temperature: 20 C\nDrive Trip Temperature: 70 C\n\nManufactured in week 47 of year 2012\nSpecified cycle count over device lifetime: 0\nAccumulated start-stop cycles: 0\nSpecified load-unload count over device lifetime: 0\nAccumulated load-unload cycles: 0\nElements in grown defect list: 0\n\nVendor (Seagate) cache information\n Blocks sent to initiator = 1286675833552896\n\nVendor (Seagate/Hitachi) factory information\n number of hours powered up = 7127.12\n number of minutes until next internal SMART test = 0\n",
> - "type" : "text",
> - "wearout": 100
> -}
> diff --git a/test/disk_tests/sas_ssd/sda_udevadm b/test/disk_tests/sas_ssd/sda_udevadm
> deleted file mode 100644
> index ac0744d..0000000
> --- a/test/disk_tests/sas_ssd/sda_udevadm
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -P: /devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
> -N: sda
> -S: disk/by-id/scsi-00000000000000000
> -S: disk/by-id/wwn-0x0000000000000000
> -S: disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
> -E: DEVLINKS=/dev/disk/by-id/scsi-00000000000000000 /dev/disk/by-id/wwn-0x0000000000000000 /dev/disk/by-path/pci-0000:02:00.0-sas-0x0000000000000000-lun-0
> -E: DEVNAME=/dev/sda
> -E: DEVPATH=/devices/pci0000:00/0000:00:03.0/0000:02:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sda
> -E: DEVTYPE=disk
> -E: ID_BUS=scsi
> -E: ID_MODEL=MODEL1
> -E: ID_MODEL_ENC=MODEL1\x20\x20\x20\x20\x20\x20
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=605740f0-44a1-4dc5-9fea-bde166df963e
> -E: ID_PATH=pci-0000:02:00.0-sas-0x0000000000000000-lun-0
> -E: ID_PATH_TAG=pci-0000_02_00_0-sas-0x0000000000000000-lun-0
> -E: ID_REVISION=ES64
> -E: ID_SCSI=1
> -E: ID_SCSI_SERIAL=SERIAL
> -E: ID_SERIAL=SERIAL2
> -E: ID_SERIAL_SHORT=SER2
> -E: ID_TYPE=disk
> -E: ID_VENDOR=VENDOR1
> -E: ID_VENDOR_ENC=VENDOR1\x20
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> -E: MAJOR=8
> -E: MINOR=0
> -E: SUBSYSTEM=block
> -E: TAGS=:systemd:
> -E: USEC_INITIALIZED=667541
> diff --git a/test/disk_tests/ssd_smart/disklist b/test/disk_tests/ssd_smart/disklist
> deleted file mode 100644
> index 18048d5..0000000
> --- a/test/disk_tests/ssd_smart/disklist
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -sda
> -sdb
> -sdc
> -sdd
> -sde
> diff --git a/test/disk_tests/ssd_smart/disklist_expected.json b/test/disk_tests/ssd_smart/disklist_expected.json
> deleted file mode 100644
> index d84b9dc..0000000
> --- a/test/disk_tests/ssd_smart/disklist_expected.json
> +++ /dev/null
> @@ -1,72 +0,0 @@
> -{
> - "sda" : {
> - "serial" : "000000000000",
> - "vendor" : "ATA",
> - "rpm" : 0,
> - "gpt" : 1,
> - "health" : "PASSED",
> - "wearout" : "100",
> - "osdid" : -1,
> - "size" : 512000,
> - "type" : "ssd",
> - "devpath" : "/dev/sda",
> - "model" : "Crucial_CT500MX200SSD1",
> - "wwn" : "0x0000000000000000"
> - },
> - "sdb" : {
> - "model" : "INTEL_SSDSC2BB080G6",
> - "devpath" : "/dev/sdb",
> - "osdid" : -1,
> - "type" : "ssd",
> - "size" : 512000,
> - "wwn" : "0x0000000000000000",
> - "gpt" : 1,
> - "rpm" : 0,
> - "vendor" : "ATA",
> - "serial" : "000000000000000000",
> - "wearout" : "97",
> - "health" : "PASSED"
> - },
> - "sdc" : {
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdc",
> - "model" : "Samsung SSD 850 PRO 512GB",
> - "osdid" : -1,
> - "type" : "ssd",
> - "size" : 512000,
> - "wearout" : "99",
> - "health" : "PASSED",
> - "gpt" : 1,
> - "rpm" : 0,
> - "vendor" : "ATA",
> - "serial" : "000000000000"
> - },
> - "sdd" : {
> - "rpm" : 0,
> - "gpt" : 1,
> - "serial" : "000000000000",
> - "vendor" : "ATA",
> - "wearout" : "100",
> - "health" : "PASSED",
> - "devpath" : "/dev/sdd",
> - "model" : "SanDisk SD8SB8U1T001122",
> - "size" : 512000,
> - "osdid" : -1,
> - "type" : "ssd",
> - "wwn" : "0x0000000000000000"
> - },
> - "sde" : {
> - "type" : "ssd",
> - "osdid" : -1,
> - "size" : 512000,
> - "model" : "KINGSTON SHFS37A120G",
> - "devpath" : "/dev/sde",
> - "wwn" : "0x0000000000000000",
> - "vendor" : "ATA",
> - "serial" : "000000000000",
> - "gpt" : 1,
> - "rpm" : 0,
> - "health" : "PASSED",
> - "wearout" : "91"
> - }
> -}
> diff --git a/test/disk_tests/ssd_smart/sda/device/vendor b/test/disk_tests/ssd_smart/sda/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/ssd_smart/sda/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/ssd_smart/sda/queue/rotational b/test/disk_tests/ssd_smart/sda/queue/rotational
> deleted file mode 100644
> index 573541a..0000000
> --- a/test/disk_tests/ssd_smart/sda/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -0
> diff --git a/test/disk_tests/ssd_smart/sda/size b/test/disk_tests/ssd_smart/sda/size
> deleted file mode 100644
> index 83b33d2..0000000
> --- a/test/disk_tests/ssd_smart/sda/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -1000
> diff --git a/test/disk_tests/ssd_smart/sda_smart b/test/disk_tests/ssd_smart/sda_smart
> deleted file mode 100644
> index 2857588..0000000
> --- a/test/disk_tests/ssd_smart/sda_smart
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
> -Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> -
> -SMART Attributes Data Structure revision number: 16
> -Vendor Specific SMART Attributes with Thresholds:
> -ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
> - 1 Raw_Read_Error_Rate POSR-K 100 100 000 - 0
> - 5 Reallocate_NAND_Blk_Cnt -O--CK 100 100 010 - 0
> - 9 Power_On_Hours -O--CK 100 100 000 - 1309
> - 12 Power_Cycle_Count -O--CK 100 100 000 - 200
> -171 Program_Fail_Count -O--CK 100 100 000 - 0
> -172 Erase_Fail_Count -O--CK 100 100 000 - 0
> -173 Ave_Block-Erase_Count -O--CK 100 100 000 - 12
> -174 Unexpect_Power_Loss_Ct -O--CK 100 100 000 - 53
> -180 Unused_Reserve_NAND_Blk PO--CK 000 000 000 - 5565
> -183 SATA_Interfac_Downshift -O--CK 100 100 000 - 0
> -184 Error_Correction_Count -O--CK 100 100 000 - 0
> -187 Reported_Uncorrect -O--CK 100 100 000 - 0
> -194 Temperature_Celsius -O---K 068 054 000 - 32 (Min/Max 22/46)
> -196 Reallocated_Event_Count -O--CK 100 100 000 - 0
> -197 Current_Pending_Sector -O--CK 100 100 000 - 0
> -198 Offline_Uncorrectable ----CK 100 100 000 - 0
> -199 UDMA_CRC_Error_Count -O--CK 100 100 000 - 0
> -202 Percent_Lifetime_Used ----CK 100 100 001 - 0
> -206 Write_Error_Rate -OSR-- 100 100 000 - 0
> -210 Success_RAIN_Recov_Cnt -O--CK 100 100 000 - 0
> -246 Total_Host_Sector_Write -O--CK 100 100 000 - 6751830403
> -247 Host_Program_Page_Count -O--CK 100 100 000 - 211228065
> -248 Bckgnd_Program_Page_Cnt -O--CK 100 100 000 - 253276904
> - ||||||_ K auto-keep
> - |||||__ C event count
> - ||||___ R error rate
> - |||____ S speed/performance
> - ||_____ O updated online
> - |______ P prefailure warning
> -
> diff --git a/test/disk_tests/ssd_smart/sda_smart_expected.json b/test/disk_tests/ssd_smart/sda_smart_expected.json
> deleted file mode 100644
> index a71fab2..0000000
> --- a/test/disk_tests/ssd_smart/sda_smart_expected.json
> +++ /dev/null
> @@ -1,236 +0,0 @@
> -{
> - "type" : "ata",
> - "health" : "PASSED",
> - "attributes" : [
> - {
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Raw_Read_Error_Rate",
> - "id" : " 1",
> - "flags" : "POSR-K",
> - "raw" : "0",
> - "fail" : "-",
> - "value" : 100
> - },
> - {
> - "worst" : 100,
> - "threshold" : 10,
> - "name" : "Reallocate_NAND_Blk_Cnt",
> - "id" : " 5",
> - "flags" : "-O--CK",
> - "raw" : "0",
> - "fail" : "-",
> - "value" : 100
> - },
> - {
> - "name" : "Power_On_Hours",
> - "threshold" : 0,
> - "worst" : 100,
> - "value" : 100,
> - "fail" : "-",
> - "raw" : "1309",
> - "flags" : "-O--CK",
> - "id" : " 9"
> - },
> - {
> - "threshold" : 0,
> - "name" : "Power_Cycle_Count",
> - "worst" : 100,
> - "raw" : "200",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "id" : " 12",
> - "value" : 100
> - },
> - {
> - "value" : 100,
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "id" : "171",
> - "threshold" : 0,
> - "name" : "Program_Fail_Count",
> - "worst" : 100
> - },
> - {
> - "value" : 100,
> - "id" : "172",
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Erase_Fail_Count"
> - },
> - {
> - "threshold" : 0,
> - "name" : "Ave_Block-Erase_Count",
> - "worst" : 100,
> - "raw" : "12",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "id" : "173",
> - "value" : 100
> - },
> - {
> - "name" : "Unexpect_Power_Loss_Ct",
> - "threshold" : 0,
> - "worst" : 100,
> - "value" : 100,
> - "fail" : "-",
> - "raw" : "53",
> - "flags" : "-O--CK",
> - "id" : "174"
> - },
> - {
> - "raw" : "5565",
> - "flags" : "PO--CK",
> - "fail" : "-",
> - "id" : "180",
> - "value" : 0,
> - "threshold" : 0,
> - "name" : "Unused_Reserve_NAND_Blk",
> - "worst" : 0
> - },
> - {
> - "name" : "SATA_Interfac_Downshift",
> - "threshold" : 0,
> - "worst" : 100,
> - "fail" : "-",
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "id" : "183",
> - "value" : 100
> - },
> - {
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Error_Correction_Count",
> - "id" : "184",
> - "flags" : "-O--CK",
> - "raw" : "0",
> - "fail" : "-",
> - "value" : 100
> - },
> - {
> - "name" : "Reported_Uncorrect",
> - "threshold" : 0,
> - "worst" : 100,
> - "value" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "raw" : "0",
> - "id" : "187"
> - },
> - {
> - "worst" : 54,
> - "name" : "Temperature_Celsius",
> - "threshold" : 0,
> - "id" : "194",
> - "fail" : "-",
> - "flags" : "-O---K",
> - "raw" : "32 (Min/Max 22/46)",
> - "value" : 68
> - },
> - {
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "id" : "196",
> - "value" : 100,
> - "threshold" : 0,
> - "name" : "Reallocated_Event_Count",
> - "worst" : 100
> - },
> - {
> - "id" : "197",
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "raw" : "0",
> - "value" : 100,
> - "worst" : 100,
> - "name" : "Current_Pending_Sector",
> - "threshold" : 0
> - },
> - {
> - "threshold" : 0,
> - "name" : "Offline_Uncorrectable",
> - "worst" : 100,
> - "flags" : "----CK",
> - "raw" : "0",
> - "fail" : "-",
> - "id" : "198",
> - "value" : 100
> - },
> - {
> - "worst" : 100,
> - "name" : "UDMA_CRC_Error_Count",
> - "threshold" : 0,
> - "id" : "199",
> - "fail" : "-",
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "value" : 100
> - },
> - {
> - "value" : 100,
> - "id" : "202",
> - "flags" : "----CK",
> - "raw" : "0",
> - "fail" : "-",
> - "worst" : 100,
> - "threshold" : 1,
> - "name" : "Percent_Lifetime_Used"
> - },
> - {
> - "name" : "Write_Error_Rate",
> - "threshold" : 0,
> - "worst" : 100,
> - "value" : 100,
> - "fail" : "-",
> - "raw" : "0",
> - "flags" : "-OSR--",
> - "id" : "206"
> - },
> - {
> - "name" : "Success_RAIN_Recov_Cnt",
> - "threshold" : 0,
> - "worst" : 100,
> - "fail" : "-",
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "id" : "210",
> - "value" : 100
> - },
> - {
> - "value" : 100,
> - "id" : "246",
> - "fail" : "-",
> - "raw" : "6751830403",
> - "flags" : "-O--CK",
> - "worst" : 100,
> - "name" : "Total_Host_Sector_Write",
> - "threshold" : 0
> - },
> - {
> - "name" : "Host_Program_Page_Count",
> - "threshold" : 0,
> - "worst" : 100,
> - "fail" : "-",
> - "raw" : "211228065",
> - "flags" : "-O--CK",
> - "id" : "247",
> - "value" : 100
> - },
> - {
> - "value" : 100,
> - "fail" : "-",
> - "raw" : "253276904",
> - "flags" : "-O--CK",
> - "id" : "248",
> - "name" : "Bckgnd_Program_Page_Cnt",
> - "threshold" : 0,
> - "worst" : 100
> - }
> - ]
> -}
> diff --git a/test/disk_tests/ssd_smart/sda_udevadm b/test/disk_tests/ssd_smart/sda_udevadm
> deleted file mode 100644
> index 3290a13..0000000
> --- a/test/disk_tests/ssd_smart/sda_udevadm
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -E: DEVNAME=/dev/sda
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=Crucial_CT500MX200SSD1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_SERIAL=Crucial_CT500MX200SSD1_000000000000
> -E: ID_SERIAL_SHORT=000000000000
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -
> diff --git a/test/disk_tests/ssd_smart/sdb/device/vendor b/test/disk_tests/ssd_smart/sdb/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/ssd_smart/sdb/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/ssd_smart/sdb/queue/rotational b/test/disk_tests/ssd_smart/sdb/queue/rotational
> deleted file mode 100644
> index 573541a..0000000
> --- a/test/disk_tests/ssd_smart/sdb/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -0
> diff --git a/test/disk_tests/ssd_smart/sdb/size b/test/disk_tests/ssd_smart/sdb/size
> deleted file mode 100644
> index 83b33d2..0000000
> --- a/test/disk_tests/ssd_smart/sdb/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -1000
> diff --git a/test/disk_tests/ssd_smart/sdb_smart b/test/disk_tests/ssd_smart/sdb_smart
> deleted file mode 100644
> index 79eea84..0000000
> --- a/test/disk_tests/ssd_smart/sdb_smart
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.4.21-1-pve] (local build)
> -Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> -
> -SMART Attributes Data Structure revision number: 1
> -Vendor Specific SMART Attributes with Thresholds:
> -ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
> - 5 Reallocated_Sector_Ct -O--CK 100 100 000 - 0
> - 9 Power_On_Hours -O--CK 100 100 000 - 1259
> - 12 Power_Cycle_Count -O--CK 100 100 000 - 191
> -170 Available_Reservd_Space PO--CK 100 100 010 - 0
> -171 Program_Fail_Count -O--CK 100 100 000 - 0
> -172 Erase_Fail_Count -O--CK 100 100 000 - 0
> -174 Unsafe_Shutdown_Count -O--CK 100 100 000 - 164
> -175 Power_Loss_Cap_Test PO--CK 100 100 010 - 5670 (1 343)
> -183 SATA_Downshift_Count -O--CK 100 100 000 - 0
> -184 End-to-End_Error PO--CK 100 100 090 - 0
> -187 Reported_Uncorrect -O--CK 100 100 000 - 0
> -190 Temperature_Case -O---K 072 071 000 - 28 (Min/Max 21/30)
> -192 Unsafe_Shutdown_Count -O--CK 100 100 000 - 164
> -194 Temperature_Internal -O---K 100 100 000 - 28
> -197 Current_Pending_Sector -O--C- 100 100 000 - 0
> -199 CRC_Error_Count -OSRCK 100 100 000 - 0
> -225 Host_Writes_32MiB -O--CK 100 100 000 - 296600
> -226 Workld_Media_Wear_Indic -O--CK 100 100 000 - 3747
> -227 Workld_Host_Reads_Perc -O--CK 100 100 000 - 0
> -228 Workload_Minutes -O--CK 100 100 000 - 75111
> -232 Available_Reservd_Space PO--CK 100 100 010 - 0
> -233 Media_Wearout_Indicator -O--CK 097 097 000 - 0
> -234 Thermal_Throttle -O--CK 100 100 000 - 0/0
> -241 Host_Writes_32MiB -O--CK 100 100 000 - 296600
> -242 Host_Reads_32MiB -O--CK 100 100 000 - 1207
> - ||||||_ K auto-keep
> - |||||__ C event count
> - ||||___ R error rate
> - |||____ S speed/performance
> - ||_____ O updated online
> - |______ P prefailure warning
> -
> diff --git a/test/disk_tests/ssd_smart/sdb_smart_expected.json b/test/disk_tests/ssd_smart/sdb_smart_expected.json
> deleted file mode 100644
> index 6f55c3e..0000000
> --- a/test/disk_tests/ssd_smart/sdb_smart_expected.json
> +++ /dev/null
> @@ -1,256 +0,0 @@
> -{
> - "health" : "PASSED",
> - "type" : "ata",
> - "attributes" : [
> - {
> - "name" : "Reallocated_Sector_Ct",
> - "threshold" : 0,
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "raw" : "0",
> - "id" : " 5",
> - "value" : 100
> - },
> - {
> - "worst" : 100,
> - "name" : "Power_On_Hours",
> - "threshold" : 0,
> - "id" : " 9",
> - "fail" : "-",
> - "raw" : "1259",
> - "flags" : "-O--CK",
> - "value" : 100
> - },
> - {
> - "value" : 100,
> - "id" : " 12",
> - "raw" : "191",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Power_Cycle_Count"
> - },
> - {
> - "id" : "170",
> - "raw" : "0",
> - "flags" : "PO--CK",
> - "fail" : "-",
> - "value" : 100,
> - "worst" : 100,
> - "threshold" : 10,
> - "name" : "Available_Reservd_Space"
> - },
> - {
> - "threshold" : 0,
> - "name" : "Program_Fail_Count",
> - "worst" : 100,
> - "value" : 100,
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "id" : "171"
> - },
> - {
> - "worst" : 100,
> - "name" : "Erase_Fail_Count",
> - "threshold" : 0,
> - "id" : "172",
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "raw" : "0",
> - "value" : 100
> - },
> - {
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Unsafe_Shutdown_Count",
> - "value" : 100,
> - "id" : "174",
> - "raw" : "164",
> - "flags" : "-O--CK",
> - "fail" : "-"
> - },
> - {
> - "value" : 100,
> - "fail" : "-",
> - "flags" : "PO--CK",
> - "raw" : "5670 (1 343)",
> - "id" : "175",
> - "name" : "Power_Loss_Cap_Test",
> - "threshold" : 10,
> - "worst" : 100
> - },
> - {
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "SATA_Downshift_Count",
> - "value" : 100,
> - "id" : "183",
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "fail" : "-"
> - },
> - {
> - "worst" : 100,
> - "name" : "End-to-End_Error",
> - "threshold" : 90,
> - "value" : 100,
> - "id" : "184",
> - "fail" : "-",
> - "raw" : "0",
> - "flags" : "PO--CK"
> - },
> - {
> - "worst" : 100,
> - "name" : "Reported_Uncorrect",
> - "threshold" : 0,
> - "value" : 100,
> - "id" : "187",
> - "fail" : "-",
> - "raw" : "0",
> - "flags" : "-O--CK"
> - },
> - {
> - "worst" : 71,
> - "name" : "Temperature_Case",
> - "threshold" : 0,
> - "id" : "190",
> - "fail" : "-",
> - "raw" : "28 (Min/Max 21/30)",
> - "flags" : "-O---K",
> - "value" : 72
> - },
> - {
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Unsafe_Shutdown_Count",
> - "value" : 100,
> - "id" : "192",
> - "raw" : "164",
> - "flags" : "-O--CK",
> - "fail" : "-"
> - },
> - {
> - "id" : "194",
> - "fail" : "-",
> - "raw" : "28",
> - "flags" : "-O---K",
> - "value" : 100,
> - "worst" : 100,
> - "name" : "Temperature_Internal",
> - "threshold" : 0
> - },
> - {
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Current_Pending_Sector",
> - "value" : 100,
> - "id" : "197",
> - "raw" : "0",
> - "flags" : "-O--C-",
> - "fail" : "-"
> - },
> - {
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "CRC_Error_Count",
> - "value" : 100,
> - "id" : "199",
> - "flags" : "-OSRCK",
> - "raw" : "0",
> - "fail" : "-"
> - },
> - {
> - "worst" : 100,
> - "name" : "Host_Writes_32MiB",
> - "threshold" : 0,
> - "id" : "225",
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "raw" : "296600",
> - "value" : 100
> - },
> - {
> - "value" : 100,
> - "id" : "226",
> - "raw" : "3747",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Workld_Media_Wear_Indic"
> - },
> - {
> - "worst" : 100,
> - "threshold" : 0,
> - "name" : "Workld_Host_Reads_Perc",
> - "id" : "227",
> - "raw" : "0",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "value" : 100
> - },
> - {
> - "threshold" : 0,
> - "name" : "Workload_Minutes",
> - "worst" : 100,
> - "raw" : "75111",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "id" : "228",
> - "value" : 100
> - },
> - {
> - "fail" : "-",
> - "raw" : "0",
> - "flags" : "PO--CK",
> - "id" : "232",
> - "value" : 100,
> - "name" : "Available_Reservd_Space",
> - "threshold" : 10,
> - "worst" : 100
> - },
> - {
> - "value" : 97,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "raw" : "0",
> - "id" : "233",
> - "name" : "Media_Wearout_Indicator",
> - "threshold" : 0,
> - "worst" : 97
> - },
> - {
> - "value" : 100,
> - "fail" : "-",
> - "raw" : "0/0",
> - "flags" : "-O--CK",
> - "id" : "234",
> - "name" : "Thermal_Throttle",
> - "threshold" : 0,
> - "worst" : 100
> - },
> - {
> - "worst" : 100,
> - "name" : "Host_Writes_32MiB",
> - "threshold" : 0,
> - "id" : "241",
> - "fail" : "-",
> - "raw" : "296600",
> - "flags" : "-O--CK",
> - "value" : 100
> - },
> - {
> - "value" : 100,
> - "id" : "242",
> - "fail" : "-",
> - "raw" : "1207",
> - "flags" : "-O--CK",
> - "worst" : 100,
> - "name" : "Host_Reads_32MiB",
> - "threshold" : 0
> - }
> - ]
> -}
> diff --git a/test/disk_tests/ssd_smart/sdb_udevadm b/test/disk_tests/ssd_smart/sdb_udevadm
> deleted file mode 100644
> index bb723c8..0000000
> --- a/test/disk_tests/ssd_smart/sdb_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdb
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=INTEL_SSDSC2BB080G6
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=21c18951-8568-488c-a2a8-24441eb4b165
> -E: ID_SERIAL=INTEL_SSDSC2BB080G6_000000000000000000
> -E: ID_SERIAL_SHORT=000000000000000000
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/ssd_smart/sdc/device/vendor b/test/disk_tests/ssd_smart/sdc/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/ssd_smart/sdc/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/ssd_smart/sdc/queue/rotational b/test/disk_tests/ssd_smart/sdc/queue/rotational
> deleted file mode 100644
> index 573541a..0000000
> --- a/test/disk_tests/ssd_smart/sdc/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -0
> diff --git a/test/disk_tests/ssd_smart/sdc/size b/test/disk_tests/ssd_smart/sdc/size
> deleted file mode 100644
> index 83b33d2..0000000
> --- a/test/disk_tests/ssd_smart/sdc/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -1000
> diff --git a/test/disk_tests/ssd_smart/sdc_smart b/test/disk_tests/ssd_smart/sdc_smart
> deleted file mode 100644
> index 927f6d2..0000000
> --- a/test/disk_tests/ssd_smart/sdc_smart
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -smartctl 6.4 2014-10-07 r4002 [x86_64-linux-4.4.8-1-pve] (local build)
> -Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> -
> -SMART Attributes Data Structure revision number: 1
> -Vendor Specific SMART Attributes with Thresholds:
> -ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
> -177 Wear_Leveling_Count PO--CK 099 099 000 - 34
> - ||||||_ K auto-keep
> - |||||__ C event count
> - ||||___ R error rate
> - |||____ S speed/performance
> - ||_____ O updated onlinie
> - |______ P prefailure warning
> diff --git a/test/disk_tests/ssd_smart/sdc_smart_expected.json b/test/disk_tests/ssd_smart/sdc_smart_expected.json
> deleted file mode 100644
> index f0cffcf..0000000
> --- a/test/disk_tests/ssd_smart/sdc_smart_expected.json
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -{
> - "type" : "ata",
> - "health" : "PASSED",
> - "attributes" : [
> - {
> - "value" : 99,
> - "fail" : "-",
> - "raw" : "34",
> - "flags" : "PO--CK",
> - "id" : "177",
> - "name" : "Wear_Leveling_Count",
> - "threshold" : 0,
> - "worst" : 99
> - }
> - ]
> -}
> diff --git a/test/disk_tests/ssd_smart/sdc_udevadm b/test/disk_tests/ssd_smart/sdc_udevadm
> deleted file mode 100644
> index 5adb3ef..0000000
> --- a/test/disk_tests/ssd_smart/sdc_udevadm
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -E: DEVNAME=/dev/sdc
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=Samsung SSD 850 PRO 512GB
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_SERIAL=SAMSUNG_00000000
> -E: ID_SERIAL_SHORT=000000000000
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -
> diff --git a/test/disk_tests/ssd_smart/sdd/device/vendor b/test/disk_tests/ssd_smart/sdd/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/ssd_smart/sdd/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/ssd_smart/sdd/queue/rotational b/test/disk_tests/ssd_smart/sdd/queue/rotational
> deleted file mode 100644
> index 573541a..0000000
> --- a/test/disk_tests/ssd_smart/sdd/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -0
> diff --git a/test/disk_tests/ssd_smart/sdd/size b/test/disk_tests/ssd_smart/sdd/size
> deleted file mode 100644
> index 83b33d2..0000000
> --- a/test/disk_tests/ssd_smart/sdd/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -1000
> diff --git a/test/disk_tests/ssd_smart/sdd_smart b/test/disk_tests/ssd_smart/sdd_smart
> deleted file mode 100644
> index 2ad16af..0000000
> --- a/test/disk_tests/ssd_smart/sdd_smart
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -smartctl 6.4 2014-10-07 r4002 [x86_64-linux-4.4.19-1-pve] (local build)
> -Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> -
> -SMART Attributes Data Structure revision number: 4
> -Vendor Specific SMART Attributes with Thresholds:
> -ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
> - 5 Reallocated_Sector_Ct -O--CK 100 100 --- - 0
> - 9 Power_On_Hours -O--CK 100 100 --- - 799
> - 12 Power_Cycle_Count -O--CK 100 100 --- - 92
> -165 Unknown_Attribute -O--CK 100 100 --- - 9699447
> -166 Unknown_Attribute -O--CK 100 100 --- - 1
> -167 Unknown_Attribute -O--CK 100 100 --- - 46
> -168 Unknown_Attribute -O--CK 100 100 --- - 5
> -169 Unknown_Attribute -O--CK 100 100 --- - 1079
> -170 Unknown_Attribute -O--CK 100 100 --- - 0
> -171 Unknown_Attribute -O--CK 100 100 --- - 0
> -172 Unknown_Attribute -O--CK 100 100 --- - 0
> -173 Unknown_Attribute -O--CK 100 100 --- - 1
> -174 Unknown_Attribute -O--CK 100 100 --- - 22
> -184 End-to-End_Error -O--CK 100 100 --- - 0
> -187 Reported_Uncorrect -O--CK 100 100 --- - 0
> -188 Command_Timeout -O--CK 100 100 --- - 0
> -194 Temperature_Celsius -O---K 073 064 --- - 27 (Min/Max 23/64)
> -199 UDMA_CRC_Error_Count -O--CK 100 100 --- - 0
> -230 Unknown_SSD_Attribute -O--CK 100 100 --- - 146029805602
> -232 Available_Reservd_Space PO--CK 100 100 004 - 100
> -233 Media_Wearout_Indicator -O--CK 100 100 --- - 1574
> -234 Unknown_Attribute -O--CK 100 100 --- - 2303
> -241 Total_LBAs_Written ----CK 253 253 --- - 2111
> -242 Total_LBAs_Read ----CK 253 253 --- - 1542
> -244 Unknown_Attribute -O--CK 000 100 --- - 0
> - ||||||_ K auto-keep
> - |||||__ C event count
> - ||||___ R error rate
> - |||____ S speed/performance
> - ||_____ O updated online
> - |______ P prefailure warning
> diff --git a/test/disk_tests/ssd_smart/sdd_smart_expected.json b/test/disk_tests/ssd_smart/sdd_smart_expected.json
> deleted file mode 100644
> index a85e7d7..0000000
> --- a/test/disk_tests/ssd_smart/sdd_smart_expected.json
> +++ /dev/null
> @@ -1,256 +0,0 @@
> -{
> - "attributes" : [
> - {
> - "id" : " 5",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "worst" : 100,
> - "raw" : "0",
> - "threshold" : 0,
> - "value" : 100,
> - "name" : "Reallocated_Sector_Ct"
> - },
> - {
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : " 9",
> - "name" : "Power_On_Hours",
> - "threshold" : 0,
> - "value" : 100,
> - "raw" : "799"
> - },
> - {
> - "name" : "Power_Cycle_Count",
> - "raw" : "92",
> - "threshold" : 0,
> - "value" : 100,
> - "fail" : "-",
> - "worst" : 100,
> - "id" : " 12",
> - "flags" : "-O--CK"
> - },
> - {
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : "165",
> - "name" : "Unknown_Attribute",
> - "threshold" : 0,
> - "value" : 100,
> - "raw" : "9699447"
> - },
> - {
> - "value" : 100,
> - "threshold" : 0,
> - "raw" : "1",
> - "name" : "Unknown_Attribute",
> - "flags" : "-O--CK",
> - "id" : "166",
> - "worst" : 100,
> - "fail" : "-"
> - },
> - {
> - "id" : "167",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "worst" : 100,
> - "raw" : "46",
> - "value" : 100,
> - "threshold" : 0,
> - "name" : "Unknown_Attribute"
> - },
> - {
> - "name" : "Unknown_Attribute",
> - "raw" : "5",
> - "value" : 100,
> - "threshold" : 0,
> - "fail" : "-",
> - "worst" : 100,
> - "id" : "168",
> - "flags" : "-O--CK"
> - },
> - {
> - "flags" : "-O--CK",
> - "id" : "169",
> - "worst" : 100,
> - "fail" : "-",
> - "value" : 100,
> - "threshold" : 0,
> - "raw" : "1079",
> - "name" : "Unknown_Attribute"
> - },
> - {
> - "raw" : "0",
> - "threshold" : 0,
> - "value" : 100,
> - "name" : "Unknown_Attribute",
> - "id" : "170",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "worst" : 100
> - },
> - {
> - "fail" : "-",
> - "worst" : 100,
> - "id" : "171",
> - "flags" : "-O--CK",
> - "name" : "Unknown_Attribute",
> - "raw" : "0",
> - "value" : 100,
> - "threshold" : 0
> - },
> - {
> - "name" : "Unknown_Attribute",
> - "raw" : "0",
> - "value" : 100,
> - "threshold" : 0,
> - "fail" : "-",
> - "worst" : 100,
> - "id" : "172",
> - "flags" : "-O--CK"
> - },
> - {
> - "name" : "Unknown_Attribute",
> - "threshold" : 0,
> - "value" : 100,
> - "raw" : "1",
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : "173"
> - },
> - {
> - "name" : "Unknown_Attribute",
> - "value" : 100,
> - "threshold" : 0,
> - "raw" : "22",
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : "174"
> - },
> - {
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : "184",
> - "name" : "End-to-End_Error",
> - "value" : 100,
> - "threshold" : 0,
> - "raw" : "0"
> - },
> - {
> - "name" : "Reported_Uncorrect",
> - "value" : 100,
> - "threshold" : 0,
> - "raw" : "0",
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : "187"
> - },
> - {
> - "name" : "Command_Timeout",
> - "raw" : "0",
> - "value" : 100,
> - "threshold" : 0,
> - "fail" : "-",
> - "worst" : 100,
> - "id" : "188",
> - "flags" : "-O--CK"
> - },
> - {
> - "threshold" : 0,
> - "value" : 73,
> - "raw" : "27 (Min/Max 23/64)",
> - "name" : "Temperature_Celsius",
> - "flags" : "-O---K",
> - "id" : "194",
> - "worst" : 64,
> - "fail" : "-"
> - },
> - {
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : "199",
> - "name" : "UDMA_CRC_Error_Count",
> - "value" : 100,
> - "threshold" : 0,
> - "raw" : "0"
> - },
> - {
> - "name" : "Unknown_SSD_Attribute",
> - "threshold" : 0,
> - "value" : 100,
> - "raw" : "146029805602",
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : "230"
> - },
> - {
> - "raw" : "100",
> - "value" : 100,
> - "threshold" : 4,
> - "name" : "Available_Reservd_Space",
> - "id" : "232",
> - "flags" : "PO--CK",
> - "fail" : "-",
> - "worst" : 100
> - },
> - {
> - "threshold" : 0,
> - "value" : 100,
> - "raw" : "1574",
> - "name" : "Media_Wearout_Indicator",
> - "flags" : "-O--CK",
> - "id" : "233",
> - "worst" : 100,
> - "fail" : "-"
> - },
> - {
> - "id" : "234",
> - "flags" : "-O--CK",
> - "fail" : "-",
> - "worst" : 100,
> - "raw" : "2303",
> - "value" : 100,
> - "threshold" : 0,
> - "name" : "Unknown_Attribute"
> - },
> - {
> - "fail" : "-",
> - "worst" : 253,
> - "id" : "241",
> - "flags" : "----CK",
> - "name" : "Total_LBAs_Written",
> - "raw" : "2111",
> - "value" : 253,
> - "threshold" : 0
> - },
> - {
> - "worst" : 253,
> - "fail" : "-",
> - "flags" : "----CK",
> - "id" : "242",
> - "name" : "Total_LBAs_Read",
> - "threshold" : 0,
> - "value" : 253,
> - "raw" : "1542"
> - },
> - {
> - "name" : "Unknown_Attribute",
> - "value" : 0,
> - "threshold" : 0,
> - "raw" : "0",
> - "worst" : 100,
> - "fail" : "-",
> - "flags" : "-O--CK",
> - "id" : "244"
> - }
> - ],
> - "type" : "ata",
> - "health" : "PASSED"
> -}
> diff --git a/test/disk_tests/ssd_smart/sdd_udevadm b/test/disk_tests/ssd_smart/sdd_udevadm
> deleted file mode 100644
> index d46a7d4..0000000
> --- a/test/disk_tests/ssd_smart/sdd_udevadm
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -E: DEVNAME=/dev/sdd
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=SanDisk SD8SB8U1T001122
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_SERIAL=SANDISK_00000000000
> -E: ID_SERIAL_SHORT=000000000000
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -
> diff --git a/test/disk_tests/ssd_smart/sde/device/vendor b/test/disk_tests/ssd_smart/sde/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/ssd_smart/sde/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/ssd_smart/sde/queue/rotational b/test/disk_tests/ssd_smart/sde/queue/rotational
> deleted file mode 100644
> index 573541a..0000000
> --- a/test/disk_tests/ssd_smart/sde/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -0
> diff --git a/test/disk_tests/ssd_smart/sde/size b/test/disk_tests/ssd_smart/sde/size
> deleted file mode 100644
> index 83b33d2..0000000
> --- a/test/disk_tests/ssd_smart/sde/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -1000
> diff --git a/test/disk_tests/ssd_smart/sde_smart b/test/disk_tests/ssd_smart/sde_smart
> deleted file mode 100644
> index f6f01d6..0000000
> --- a/test/disk_tests/ssd_smart/sde_smart
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.65-1-pve] (local build)
> -Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
> -
> -=== START OF READ SMART DATA SECTION ===
> -SMART overall-health self-assessment test result: PASSED
> -
> -SMART Attributes Data Structure revision number: 10
> -Vendor Specific SMART Attributes with Thresholds:
> -ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
> - 1 Raw_Read_Error_Rate -O--CK 120 120 050 - 0/0
> - 5 Retired_Block_Count PO--CK 100 100 003 - 0
> - 9 Power_On_Hours_and_Msec -O--CK 091 091 000 - 7963h+07m+54.620s
> - 12 Power_Cycle_Count -O--CK 099 099 000 - 1153
> -171 Program_Fail_Count -O-R-- 100 100 000 - 0
> -172 Erase_Fail_Count -O--CK 100 100 000 - 0
> -174 Unexpect_Power_Loss_Ct ----CK 000 000 000 - 113
> -177 Wear_Range_Delta ------ 000 000 000 - 1
> -181 Program_Fail_Count -O-R-- 100 100 000 - 0
> -182 Erase_Fail_Count -O--CK 100 100 000 - 0
> -187 Reported_Uncorrect -O--C- 100 100 000 - 0
> -189 Airflow_Temperature_Cel ------ 027 049 000 - 27 (Min/Max 2/49)
> -194 Temperature_Celsius -O---K 027 049 000 - 27 (Min/Max 2/49)
> -195 ECC_Uncorr_Error_Count --SRC- 120 120 000 - 0/0
> -196 Reallocated_Event_Count PO--CK 100 100 003 - 0
> -201 Unc_Soft_Read_Err_Rate --SRC- 120 120 000 - 0/0
> -204 Soft_ECC_Correct_Rate --SRC- 120 120 000 - 0/0
> -230 Life_Curve_Status PO--C- 100 100 000 - 100
> -231 SSD_Life_Left ------ 091 091 011 - 4294967296
> -233 SandForce_Internal -O--CK 000 000 000 - 6317
> -234 SandForce_Internal -O--CK 000 000 000 - 4252
> -241 Lifetime_Writes_GiB -O--CK 000 000 000 - 4252
> -242 Lifetime_Reads_GiB -O--CK 000 000 000 - 34599
> -244 Unknown_Attribute ------ 099 099 010 - 4063273
> - ||||||_ K auto-keep
> - |||||__ C event count
> - ||||___ R error rate
> - |||____ S speed/performance
> - ||_____ O updated online
> - |______ P prefailure warning
> -
> diff --git a/test/disk_tests/ssd_smart/sde_smart_expected.json b/test/disk_tests/ssd_smart/sde_smart_expected.json
> deleted file mode 100644
> index 1d45c1d..0000000
> --- a/test/disk_tests/ssd_smart/sde_smart_expected.json
> +++ /dev/null
> @@ -1,246 +0,0 @@
> -{
> - "health": "PASSED",
> - "type": "ata",
> - "attributes": [
> - {
> - "fail": "-",
> - "id": " 1",
> - "raw": "0/0",
> - "flags": "-O--CK",
> - "name": "Raw_Read_Error_Rate",
> - "threshold": 50,
> - "value": 120,
> - "worst": 120
> - },
> - {
> - "id": " 5",
> - "fail": "-",
> - "value": 100,
> - "worst": 100,
> - "threshold": 3,
> - "name": "Retired_Block_Count",
> - "flags": "PO--CK",
> - "raw": "0"
> - },
> - {
> - "fail": "-",
> - "id": " 9",
> - "raw": "7963h+07m+54.620s",
> - "flags": "-O--CK",
> - "worst": 91,
> - "value": 91,
> - "name": "Power_On_Hours_and_Msec",
> - "threshold": 0
> - },
> - {
> - "id": " 12",
> - "fail": "-",
> - "threshold": 0,
> - "name": "Power_Cycle_Count",
> - "worst": 99,
> - "value": 99,
> - "flags": "-O--CK",
> - "raw": "1153"
> - },
> - {
> - "flags": "-O-R--",
> - "raw": "0",
> - "worst": 100,
> - "value": 100,
> - "threshold": 0,
> - "name": "Program_Fail_Count",
> - "fail": "-",
> - "id": "171"
> - },
> - {
> - "fail": "-",
> - "id": "172",
> - "flags": "-O--CK",
> - "raw": "0",
> - "name": "Erase_Fail_Count",
> - "threshold": 0,
> - "worst": 100,
> - "value": 100
> - },
> - {
> - "fail": "-",
> - "id": "174",
> - "raw": "113",
> - "flags": "----CK",
> - "value": 0,
> - "worst": 0,
> - "threshold": 0,
> - "name": "Unexpect_Power_Loss_Ct"
> - },
> - {
> - "id": "177",
> - "fail": "-",
> - "value": 0,
> - "worst": 0,
> - "name": "Wear_Range_Delta",
> - "threshold": 0,
> - "flags": "------",
> - "raw": "1"
> - },
> - {
> - "flags": "-O-R--",
> - "raw": "0",
> - "threshold": 0,
> - "name": "Program_Fail_Count",
> - "worst": 100,
> - "value": 100,
> - "fail": "-",
> - "id": "181"
> - },
> - {
> - "threshold": 0,
> - "name": "Erase_Fail_Count",
> - "value": 100,
> - "worst": 100,
> - "flags": "-O--CK",
> - "raw": "0",
> - "id": "182",
> - "fail": "-"
> - },
> - {
> - "flags": "-O--C-",
> - "raw": "0",
> - "value": 100,
> - "worst": 100,
> - "threshold": 0,
> - "name": "Reported_Uncorrect",
> - "fail": "-",
> - "id": "187"
> - },
> - {
> - "value": 27,
> - "worst": 49,
> - "name": "Airflow_Temperature_Cel",
> - "threshold": 0,
> - "flags": "------",
> - "raw": "27 (Min/Max 2/49)",
> - "id": "189",
> - "fail": "-"
> - },
> - {
> - "threshold": 0,
> - "name": "Temperature_Celsius",
> - "worst": 49,
> - "value": 27,
> - "flags": "-O---K",
> - "raw": "27 (Min/Max 2/49)",
> - "id": "194",
> - "fail": "-"
> - },
> - {
> - "id": "195",
> - "fail": "-",
> - "worst": 120,
> - "value": 120,
> - "threshold": 0,
> - "name": "ECC_Uncorr_Error_Count",
> - "raw": "0/0",
> - "flags": "--SRC-"
> - },
> - {
> - "fail": "-",
> - "id": "196",
> - "raw": "0",
> - "flags": "PO--CK",
> - "threshold": 3,
> - "name": "Reallocated_Event_Count",
> - "value": 100,
> - "worst": 100
> - },
> - {
> - "value": 120,
> - "worst": 120,
> - "threshold": 0,
> - "name": "Unc_Soft_Read_Err_Rate",
> - "flags": "--SRC-",
> - "raw": "0/0",
> - "id": "201",
> - "fail": "-"
> - },
> - {
> - "raw": "0/0",
> - "flags": "--SRC-",
> - "value": 120,
> - "worst": 120,
> - "threshold": 0,
> - "name": "Soft_ECC_Correct_Rate",
> - "fail": "-",
> - "id": "204"
> - },
> - {
> - "value": 100,
> - "worst": 100,
> - "threshold": 0,
> - "name": "Life_Curve_Status",
> - "raw": "100",
> - "flags": "PO--C-",
> - "id": "230",
> - "fail": "-"
> - },
> - {
> - "id": "231",
> - "fail": "-",
> - "worst": 91,
> - "value": 91,
> - "name": "SSD_Life_Left",
> - "threshold": 11,
> - "flags": "------",
> - "raw": "4294967296"
> - },
> - {
> - "raw": "6317",
> - "flags": "-O--CK",
> - "name": "SandForce_Internal",
> - "threshold": 0,
> - "value": 0,
> - "worst": 0,
> - "fail": "-",
> - "id": "233"
> - },
> - {
> - "value": 0,
> - "worst": 0,
> - "name": "SandForce_Internal",
> - "threshold": 0,
> - "flags": "-O--CK",
> - "raw": "4252",
> - "id": "234",
> - "fail": "-"
> - },
> - {
> - "worst": 0,
> - "value": 0,
> - "name": "Lifetime_Writes_GiB",
> - "threshold": 0,
> - "flags": "-O--CK",
> - "raw": "4252",
> - "id": "241",
> - "fail": "-"
> - },
> - {
> - "flags": "-O--CK",
> - "raw": "34599",
> - "value": 0,
> - "worst": 0,
> - "threshold": 0,
> - "name": "Lifetime_Reads_GiB",
> - "fail": "-",
> - "id": "242"
> - },
> - {
> - "threshold": 10,
> - "name": "Unknown_Attribute",
> - "worst": 99,
> - "value": 99,
> - "flags": "------",
> - "raw": "4063273",
> - "id": "244",
> - "fail": "-"
> - }
> - ]
> -}
> diff --git a/test/disk_tests/ssd_smart/sde_udevadm b/test/disk_tests/ssd_smart/sde_udevadm
> deleted file mode 100644
> index 440c33a..0000000
> --- a/test/disk_tests/ssd_smart/sde_udevadm
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -E: DEVNAME=/dev/sde
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=KINGSTON SHFS37A120G
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_SERIAL=KINGSTON_00000000000
> -E: ID_SERIAL_SHORT=000000000000
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -
> diff --git a/test/disk_tests/usages/disklist b/test/disk_tests/usages/disklist
> deleted file mode 100644
> index 648bea5..0000000
> --- a/test/disk_tests/usages/disklist
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -sda
> -sdb
> -sdc
> -sdd
> -sde
> -sdf
> -sdg
> -sdh
> -sdi
> -sdj
> -sdk
> -sdl
> -sdm
> -sdn
> diff --git a/test/disk_tests/usages/disklist_expected.json b/test/disk_tests/usages/disklist_expected.json
> deleted file mode 100644
> index 93dc251..0000000
> --- a/test/disk_tests/usages/disklist_expected.json
> +++ /dev/null
> @@ -1,222 +0,0 @@
> -{
> - "sdf" : {
> - "gpt" : 1,
> - "rpm" : 0,
> - "size" : 1536000,
> - "type" : "hdd",
> - "osdencrypted": 0,
> - "osdid" : "444",
> - "bluestore" : "0",
> - "health" : "UNKNOWN",
> - "model" : "MODEL1",
> - "used" : "mounted",
> - "wearout" : "N/A",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdf",
> - "vendor" : "ATA",
> - "serial" : "SERIAL1"
> - },
> - "sde" : {
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sde",
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "health" : "UNKNOWN",
> - "rpm" : 0,
> - "size" : 1536000,
> - "gpt" : 1,
> - "osdid" : -1,
> - "type" : "hdd",
> - "model" : "MODEL1",
> - "used" : "Device Mapper",
> - "wearout" : "N/A"
> - },
> - "sdb" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdb",
> - "model" : "MODEL1",
> - "used" : "LVM",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "type" : "hdd",
> - "osdid" : -1
> - },
> - "sda" : {
> - "model" : "MODEL1",
> - "used" : "mounted",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "type" : "hdd",
> - "osdid" : -1,
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sda"
> - },
> - "sdc" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "devpath" : "/dev/sdc",
> - "wwn" : "0x0000000000000000",
> - "used" : "ZFS",
> - "wearout" : "N/A",
> - "model" : "MODEL1",
> - "health" : "UNKNOWN",
> - "type" : "hdd",
> - "osdid" : -1,
> - "gpt" : 1,
> - "rpm" : 0,
> - "size" : 1536000
> - },
> - "sdd" : {
> - "model" : "MODEL1",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "size" : 1536000,
> - "rpm" : 0,
> - "gpt" : 1,
> - "type" : "hdd",
> - "osdid" : -1,
> - "serial" : "SERIAL1",
> - "used": "ZFS",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdd"
> - },
> - "sdg" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdg",
> - "model" : "MODEL1",
> - "used" : "LVM",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "type" : "hdd",
> - "bluestore": 1,
> - "osdencrypted": 0,
> - "osdid" : 1
> - },
> - "sdh" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdh",
> - "model" : "MODEL1",
> - "used" : "LVM",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "journals": 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "type" : "hdd",
> - "osdid" : -1
> - },
> - "sdi" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdi",
> - "model" : "MODEL1",
> - "used" : "LVM",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "type" : "hdd",
> - "db": 1,
> - "osdid" : -1
> - },
> - "sdj" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdj",
> - "model" : "MODEL1",
> - "used" : "LVM",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "bluestore": 0,
> - "type" : "hdd",
> - "osdencrypted": 1,
> - "osdid" : 0
> - },
> - "sdk" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdk",
> - "model" : "MODEL1",
> - "used" : "LVM",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "bluestore": 0,
> - "type" : "hdd",
> - "osdencrypted": 0,
> - "osdid" : 230
> - },
> - "sdl" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdl",
> - "model" : "MODEL1",
> - "used" : "LVM",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "type" : "hdd",
> - "osdid" : -1
> - },
> - "sdm" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdm",
> - "model" : "MODEL1",
> - "used" : "ZFS",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 1,
> - "size" : 1536000,
> - "rpm" : 0,
> - "type" : "hdd",
> - "osdid" : -1
> - },
> - "sdn" : {
> - "serial" : "SERIAL1",
> - "vendor" : "ATA",
> - "wwn" : "0x0000000000000000",
> - "devpath" : "/dev/sdn",
> - "model" : "MODEL1",
> - "used" : "xfs",
> - "wearout" : "N/A",
> - "health" : "UNKNOWN",
> - "gpt" : 0,
> - "size" : 1536000,
> - "rpm" : 0,
> - "type" : "hdd",
> - "osdid" : -1
> - }
> -}
> diff --git a/test/disk_tests/usages/lsblk b/test/disk_tests/usages/lsblk
> deleted file mode 100644
> index 6a725ab..0000000
> --- a/test/disk_tests/usages/lsblk
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -{
> - "blockdevices": [
> - {"path":"/dev/sdm", "parttype":null, "fstype":null},
> - {"path":"/dev/sdm1", "parttype":"6a898cc3-1dd2-11b2-99a6-080020736631", "fstype":"zfs_member"},
> - {"path":"/dev/sdm9", "parttype":"6a945a3b-1dd2-11b2-99a6-080020736631", "fstype":null},
> - {"path":"/dev/sdn", "parttype":null, "fstype":"xfs"}
> - ]
> -}
> diff --git a/test/disk_tests/usages/lvs b/test/disk_tests/usages/lvs
> deleted file mode 100644
> index 3720a80..0000000
> --- a/test/disk_tests/usages/lvs
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -/dev/sdg(0);osd-block-01234;ceph.osd_id=1
> -/dev/sdh(0);osd-journal-01234;ceph.osd_id=1
> -/dev/sdi(0);osd-db-01234;ceph.osd_id=1,dasdf
> -/dev/sdj(0);osd-data-01234;ceph.osd_id=0,asfd,ceph.encrypted=1
> -/dev/sdk(0);osd-data-231231;ceph.osd_id=230,ceph.fsid=test
> -/dev/sdl(0);osd-data-234132;ceph.osd_id=,bar
> diff --git a/test/disk_tests/usages/mounts b/test/disk_tests/usages/mounts
> deleted file mode 100644
> index f8c1cd3..0000000
> --- a/test/disk_tests/usages/mounts
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -/dev/sda /mountpoint1
> -/dev/sdf1 /var/lib/ceph/osd/ceph-444
> diff --git a/test/disk_tests/usages/partlist b/test/disk_tests/usages/partlist
> deleted file mode 100644
> index 43c1f68..0000000
> --- a/test/disk_tests/usages/partlist
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -sdd1
> -sdd2
> -sde1
> -sdf1
> -sdm1
> -sdm9
> diff --git a/test/disk_tests/usages/pvs b/test/disk_tests/usages/pvs
> deleted file mode 100644
> index 86ec3d4..0000000
> --- a/test/disk_tests/usages/pvs
> +++ /dev/null
> @@ -1,7 +0,0 @@
> - /dev/sdb
> - /dev/sdg
> - /dev/sdh
> - /dev/sdi
> - /dev/sdj
> - /dev/sdk
> - /dev/sdl
> diff --git a/test/disk_tests/usages/sda/device/vendor b/test/disk_tests/usages/sda/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sda/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sda/queue/rotational b/test/disk_tests/usages/sda/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sda/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sda/size b/test/disk_tests/usages/sda/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sda/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sda_udevadm b/test/disk_tests/usages/sda_udevadm
> deleted file mode 100644
> index ab04390..0000000
> --- a/test/disk_tests/usages/sda_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sda
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdb/device/vendor b/test/disk_tests/usages/sdb/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdb/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdb/queue/rotational b/test/disk_tests/usages/sdb/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdb/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdb/size b/test/disk_tests/usages/sdb/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdb/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdb_udevadm b/test/disk_tests/usages/sdb_udevadm
> deleted file mode 100644
> index ada1ca8..0000000
> --- a/test/disk_tests/usages/sdb_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdb
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdc/device/vendor b/test/disk_tests/usages/sdc/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdc/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdc/queue/rotational b/test/disk_tests/usages/sdc/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdc/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdc/size b/test/disk_tests/usages/sdc/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdc/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdc_udevadm b/test/disk_tests/usages/sdc_udevadm
> deleted file mode 100644
> index 42845f3..0000000
> --- a/test/disk_tests/usages/sdc_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdc
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdd/device/vendor b/test/disk_tests/usages/sdd/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdd/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdd/queue/rotational b/test/disk_tests/usages/sdd/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdd/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdd/sdd1/size b/test/disk_tests/usages/sdd/sdd1/size
> deleted file mode 100644
> index 83b33d2..0000000
> --- a/test/disk_tests/usages/sdd/sdd1/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -1000
> diff --git a/test/disk_tests/usages/sdd/sdd2/size b/test/disk_tests/usages/sdd/sdd2/size
> deleted file mode 100644
> index 8bd1af1..0000000
> --- a/test/disk_tests/usages/sdd/sdd2/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -2000
> diff --git a/test/disk_tests/usages/sdd/size b/test/disk_tests/usages/sdd/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdd/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdd_udevadm b/test/disk_tests/usages/sdd_udevadm
> deleted file mode 100644
> index 65e880f..0000000
> --- a/test/disk_tests/usages/sdd_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdd
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sde/device/vendor b/test/disk_tests/usages/sde/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sde/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sde/queue/rotational b/test/disk_tests/usages/sde/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sde/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sde/sde1/size b/test/disk_tests/usages/sde/sde1/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sde/sde1/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sde/size b/test/disk_tests/usages/sde/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sde/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sde_udevadm b/test/disk_tests/usages/sde_udevadm
> deleted file mode 100644
> index db77725..0000000
> --- a/test/disk_tests/usages/sde_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sde
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdf/device/vendor b/test/disk_tests/usages/sdf/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdf/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdf/queue/rotational b/test/disk_tests/usages/sdf/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdf/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdf/sdf1/size b/test/disk_tests/usages/sdf/sdf1/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdf/sdf1/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdf/size b/test/disk_tests/usages/sdf/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdf/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdf_udevadm b/test/disk_tests/usages/sdf_udevadm
> deleted file mode 100644
> index ad49acf..0000000
> --- a/test/disk_tests/usages/sdf_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdf
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdg/device/vendor b/test/disk_tests/usages/sdg/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdg/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdg/queue/rotational b/test/disk_tests/usages/sdg/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdg/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdg/size b/test/disk_tests/usages/sdg/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdg/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdg_udevadm b/test/disk_tests/usages/sdg_udevadm
> deleted file mode 100644
> index 6d40d35..0000000
> --- a/test/disk_tests/usages/sdg_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdg
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdh/device/vendor b/test/disk_tests/usages/sdh/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdh/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdh/queue/rotational b/test/disk_tests/usages/sdh/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdh/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdh/size b/test/disk_tests/usages/sdh/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdh/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdh_udevadm b/test/disk_tests/usages/sdh_udevadm
> deleted file mode 100644
> index 3ff1a9e..0000000
> --- a/test/disk_tests/usages/sdh_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdh
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdi/device/vendor b/test/disk_tests/usages/sdi/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdi/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdi/queue/rotational b/test/disk_tests/usages/sdi/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdi/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdi/size b/test/disk_tests/usages/sdi/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdi/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdi_udevadm b/test/disk_tests/usages/sdi_udevadm
> deleted file mode 100644
> index a9eae5e..0000000
> --- a/test/disk_tests/usages/sdi_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdi
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdj/device/vendor b/test/disk_tests/usages/sdj/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdj/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdj/queue/rotational b/test/disk_tests/usages/sdj/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdj/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdj/size b/test/disk_tests/usages/sdj/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdj/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdj_udevadm b/test/disk_tests/usages/sdj_udevadm
> deleted file mode 100644
> index 39d0cf3..0000000
> --- a/test/disk_tests/usages/sdj_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdj
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdk/device/vendor b/test/disk_tests/usages/sdk/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdk/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdk/queue/rotational b/test/disk_tests/usages/sdk/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdk/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdk/size b/test/disk_tests/usages/sdk/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdk/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdk_udevadm b/test/disk_tests/usages/sdk_udevadm
> deleted file mode 100644
> index 3baef2f..0000000
> --- a/test/disk_tests/usages/sdk_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdk
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdl/device/vendor b/test/disk_tests/usages/sdl/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdl/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdl/queue/rotational b/test/disk_tests/usages/sdl/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdl/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdl/size b/test/disk_tests/usages/sdl/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdl/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdl_udevadm b/test/disk_tests/usages/sdl_udevadm
> deleted file mode 100644
> index ead0622..0000000
> --- a/test/disk_tests/usages/sdl_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdl
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdm/device/vendor b/test/disk_tests/usages/sdm/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdm/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdm/queue/rotational b/test/disk_tests/usages/sdm/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdm/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdm/sdm1/size b/test/disk_tests/usages/sdm/sdm1/size
> deleted file mode 100644
> index 83b33d2..0000000
> --- a/test/disk_tests/usages/sdm/sdm1/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -1000
> diff --git a/test/disk_tests/usages/sdm/sdm9/size b/test/disk_tests/usages/sdm/sdm9/size
> deleted file mode 100644
> index 8bd1af1..0000000
> --- a/test/disk_tests/usages/sdm/sdm9/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -2000
> diff --git a/test/disk_tests/usages/sdm/size b/test/disk_tests/usages/sdm/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdm/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdm_udevadm b/test/disk_tests/usages/sdm_udevadm
> deleted file mode 100644
> index 9317b9f..0000000
> --- a/test/disk_tests/usages/sdm_udevadm
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -E: DEVNAME=/dev/sdm
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_PART_TABLE_TYPE=gpt
> -E: ID_PART_TABLE_UUID=8417b93f-eff9-4e8f-8d84-dc2e77fc07a2
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/sdn/device/vendor b/test/disk_tests/usages/sdn/device/vendor
> deleted file mode 100644
> index 531030d..0000000
> --- a/test/disk_tests/usages/sdn/device/vendor
> +++ /dev/null
> @@ -1 +0,0 @@
> -ATA
> diff --git a/test/disk_tests/usages/sdn/queue/rotational b/test/disk_tests/usages/sdn/queue/rotational
> deleted file mode 100644
> index d00491f..0000000
> --- a/test/disk_tests/usages/sdn/queue/rotational
> +++ /dev/null
> @@ -1 +0,0 @@
> -1
> diff --git a/test/disk_tests/usages/sdn/size b/test/disk_tests/usages/sdn/size
> deleted file mode 100644
> index 13de30f..0000000
> --- a/test/disk_tests/usages/sdn/size
> +++ /dev/null
> @@ -1 +0,0 @@
> -3000
> diff --git a/test/disk_tests/usages/sdn_udevadm b/test/disk_tests/usages/sdn_udevadm
> deleted file mode 100644
> index 5ec4a92..0000000
> --- a/test/disk_tests/usages/sdn_udevadm
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -E: DEVNAME=/dev/sdn
> -E: DEVTYPE=disk
> -E: ID_ATA_ROTATION_RATE_RPM=0
> -E: ID_BUS=ata
> -E: ID_MODEL=MODEL1
> -E: ID_SERIAL=SERIAL1
> -E: ID_SERIAL_SHORT=SERIAL1
> -E: ID_TYPE=disk
> -E: ID_FS_UUID=ab54fba8-48fe-4d37-bbe7-b403f94d3bed
> -E: ID_FS_UUID_ENC=ab54fba8-48fe-4d37-bbe7-b403f94d3bed
> -E: ID_FS_TYPE=xfs
> -E: ID_FS_USAGE=filesystem
> -E: ID_WWN=0x0000000000000000
> -E: ID_WWN_WITH_EXTENSION=0x0000000000000000
> diff --git a/test/disk_tests/usages/zpool b/test/disk_tests/usages/zpool
> deleted file mode 100644
> index 3431792..0000000
> --- a/test/disk_tests/usages/zpool
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -testpool 2.00T 1.00T 2.60T - 5% 28% 1.00x ONLINE -
> - /dev/sdc 3.62T 1.02T 2.60T - 5% 28%
> -log - - - - - -
> - /dev/sdd1 15.9G 2.79M 15.9G - 82% 0%
> -cache - - - - - -
> - /dev/sdd2 42.5G 36.2G 6.36G - 0% 85%
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH v2 storage 2/2] smartctl: use json parsing
2021-04-01 14:24 ` [pve-devel] [PATCH v2 " Oguz Bektas
@ 2021-05-10 12:21 ` Dominik Csapak
2021-05-10 12:35 ` Oguz Bektas
0 siblings, 1 reply; 7+ messages in thread
From: Dominik Csapak @ 2021-05-10 12:21 UTC (permalink / raw)
To: Proxmox VE development discussion, Oguz Bektas
some comments inline
On 4/1/21 16:24, Oguz Bektas wrote:
> adapt the smartctl endpoint to run smartctl with the --json or -j flag
> to parse it more reasonably.
>
> additionally add the $format parameter to assist in switching to the new
> json parsed output for nvme devices in PVE 7.0 (until 7.0 removing the
> 'text' field completely would be a breaking change, so we still default
> to the old json fields but with the parsed key:value pairs in the 'text'
> field instead of raw smartctl output)
>
> for the unit tests from now we need to collect the smartctl outputs with
> the json flag. the current tests cover ssd_smart and nvme_smart cases.
>
> Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
> ---
> v1->v2:
> * fixed bug with --format json not showing anything...
>
>
> PVE/API2/Disks.pm | 9 +-
> PVE/Diskmanage.pm | 119 +++---
> test/disk_tests/nvme_smart/disklist | 1 +
> .../nvme_smart/disklist_expected.json | 16 +
> test/disk_tests/nvme_smart/nvme0/model | 1 +
> test/disk_tests/nvme_smart/nvme0_smart | 65 ++++
> test/disk_tests/nvme_smart/nvme0n1/device | 1 +
> .../nvme_smart/nvme0n1/queue/rotational | 1 +
> test/disk_tests/nvme_smart/nvme0n1/size | 1 +
> .../nvme_smart/nvme0n1_smart_expected.json | 6 +
> test/disk_tests/nvme_smart/nvme0n1_udevadm | 18 +
> test/disk_tests/ssd_smart/disklist | 1 +
> .../ssd_smart/disklist_expected.json | 16 +
> test/disk_tests/ssd_smart/sda/device/vendor | 1 +
> .../disk_tests/ssd_smart/sda/queue/rotational | 1 +
> test/disk_tests/ssd_smart/sda/size | 1 +
> test/disk_tests/ssd_smart/sda_smart | 352 ++++++++++++++++++
> .../ssd_smart/sda_smart_expected.json | 146 ++++++++
> test/disk_tests/ssd_smart/sda_udevadm | 11 +
> test/disklist_test.pm | 4 +-
> 20 files changed, 714 insertions(+), 57 deletions(-)
> create mode 100644 test/disk_tests/nvme_smart/disklist
> create mode 100644 test/disk_tests/nvme_smart/disklist_expected.json
> create mode 100644 test/disk_tests/nvme_smart/nvme0/model
> create mode 100644 test/disk_tests/nvme_smart/nvme0_smart
> create mode 120000 test/disk_tests/nvme_smart/nvme0n1/device
> create mode 100644 test/disk_tests/nvme_smart/nvme0n1/queue/rotational
> create mode 100644 test/disk_tests/nvme_smart/nvme0n1/size
> create mode 100644 test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
> create mode 100644 test/disk_tests/nvme_smart/nvme0n1_udevadm
> create mode 100644 test/disk_tests/ssd_smart/disklist
> create mode 100644 test/disk_tests/ssd_smart/disklist_expected.json
> create mode 100644 test/disk_tests/ssd_smart/sda/device/vendor
> create mode 100644 test/disk_tests/ssd_smart/sda/queue/rotational
> create mode 100644 test/disk_tests/ssd_smart/sda/size
> create mode 100644 test/disk_tests/ssd_smart/sda_smart
> create mode 100644 test/disk_tests/ssd_smart/sda_smart_expected.json
> create mode 100644 test/disk_tests/ssd_smart/sda_udevadm
>
> diff --git a/PVE/API2/Disks.pm b/PVE/API2/Disks.pm
> index 33bca76..a453efc 100644
> --- a/PVE/API2/Disks.pm
> +++ b/PVE/API2/Disks.pm
> @@ -195,6 +195,12 @@ __PACKAGE__->register_method ({
> description => "If true returns only the health status",
> optional => 1,
> },
> + format => {
> + description => "Return json or text",
> + type => 'string',
> + enum => ['text', 'json'],
> + optional => 1,
> + },
> },
> },
> returns => {
> @@ -204,6 +210,7 @@ __PACKAGE__->register_method ({
> type => { type => 'string', optional => 1 },
> attributes => { type => 'array', optional => 1},
> text => { type => 'string', optional => 1 },
> + json => { type => 'string', optional => 1 },
> },
> },
> code => sub {
> @@ -211,7 +218,7 @@ __PACKAGE__->register_method ({
>
> my $disk = PVE::Diskmanage::verify_blockdev_path($param->{disk});
>
> - my $result = PVE::Diskmanage::get_smart_data($disk, $param->{healthonly});
> + my $result = PVE::Diskmanage::get_smart_data($disk, $param->{healthonly}, $param->{format});
>
> $result->{health} = 'UNKNOWN' if !defined $result->{health};
> $result = { health => $result->{health} } if $param->{healthonly};
> diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
> index 64bb813..2fe70bc 100644
> --- a/PVE/Diskmanage.pm
> +++ b/PVE/Diskmanage.pm
> @@ -81,11 +81,12 @@ sub disk_is_used {
> }
>
> sub get_smart_data {
> - my ($disk, $healthonly) = @_;
> + my ($disk, $healthonly, $format) = @_;
>
> assert_blockdev($disk);
> my $smartdata = {};
> my $type;
> + $format //= 'text';
>
> my $returncode = 0;
>
> @@ -95,70 +96,80 @@ sub get_smart_data {
> or die "failed to get nvme controller device for $disk\n");
> }
>
> - my $cmd = [$SMARTCTL, '-H'];
> - push @$cmd, '-A', '-f', 'brief' if !$healthonly;
> + my $cmd = [$SMARTCTL, '-j', '-H'];
> + push @$cmd, '-Afbrief' if !$healthonly;
any particular reason to change this line? i think
it makes it harder to read what flags we give
(-Afbrief vs -A -f brief)
> push @$cmd, $disk;
>
> + my $smart_result = '';
> eval {
> - $returncode = run_command($cmd, noerr => 1, outfunc => sub{
> - my ($line) = @_;
> + $returncode = run_command($cmd, noerr => 1, outfunc => sub { $smart_result .= shift });
> + };
> + my $err = $@;
> +
> + my $json_result = decode_json($smart_result);
> +
> + my $smart_health = $json_result->{smart_status}->{passed};
> + if (JSON::is_bool($smart_health)) {
> + $smart_health = $smart_health ? "PASSED" : "FAILED";
> + } else {
> + $smart_health = 'UNKNOWN';
> + }
> +
> + $smartdata->{health} = $smart_health;
> +
> + $type = $json_result->{device}->{type};
> + if ($type eq 'nvme') {
> + $smartdata->{type} = $format; # text or json but FIXME: remove in PVE 7.0 and use json
> +
> + my $nvme_info = $json_result->{nvme_smart_health_information_log};
> +
> + if (!$healthonly) {
> + $smartdata->{wearout} = 100.0 - $nvme_info->{percentage_used};
> + }
>
> -# ATA SMART attributes, e.g.:
> -# ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
> -# 1 Raw_Read_Error_Rate POSR-K 100 100 000 - 0
> -#
> -# SAS and NVME disks, e.g.:
> -# Data Units Written: 5,584,952 [2.85 TB]
> -# Accumulated start-stop cycles: 34
> -
> - if (defined($type) && $type eq 'ata' && $line =~ m/^([ \d]{2}\d)\s+(\S+)\s+(\S{6})\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(.*)$/) {
> - my $entry = {};
> -
> - $entry->{name} = $2 if defined $2;
> - $entry->{flags} = $3 if defined $3;
> - # the +0 makes a number out of the strings
> - $entry->{value} = $4+0 if defined $4;
> - $entry->{worst} = $5+0 if defined $5;
> - # some disks report the default threshold as --- instead of 000
> - if (defined($6) && $6 eq '---') {
> - $entry->{threshold} = 0;
> + my $add_key = sub {
> + my ($key, $value) = @_;
> + $smartdata->{text} .= "$key : $value\n";
> + };
> +
> + if ($format eq 'text') {
> + foreach my $key (sort keys %{$nvme_info}) {
> + my $value = $nvme_info->{$key};
> + # some fields can also be arrays
> + # e.g. temperature_sensor
> + if (ref($value) eq 'ARRAY') {
> + while (my $index = each(@$value)) {
> + $add_key->("${key}_${index}", $value->[$index]);
> + }
while this is ok, we probably could also do a
'pretty-print' json output here in case $value is not a scalar
that way we would also catch (potential) objects, not only arrays
(though i do not know if that can happen)
> } else {
> - $entry->{threshold} = $6+0 if defined $6;
> - }
> - $entry->{fail} = $7 if defined $7;
> - $entry->{raw} = $8 if defined $8;
> - $entry->{id} = $1 if defined $1;
> - push @{$smartdata->{attributes}}, $entry;
> - } elsif ($line =~ m/(?:Health Status|self\-assessment test result): (.*)$/ ) {
> - $smartdata->{health} = $1;
> - } elsif ($line =~ m/Vendor Specific SMART Attributes with Thresholds:/) {
> - $type = 'ata';
> - delete $smartdata->{text};
> - } elsif ($line =~ m/=== START OF (READ )?SMART DATA SECTION ===/) {
> - $type = 'text';
> - } elsif (defined($type) && $type eq 'text') {
> - $smartdata->{text} = '' if !defined $smartdata->{text};
> - $smartdata->{text} .= "$line\n";
> - # extract wearout from nvme/sas text, allow for decimal values
> - if ($line =~ m/Percentage Used(?: endurance indicator)?:\s*(\d+(?:\.\d+)?)\%/i) {
> - $smartdata->{wearout} = 100 - $1;
> + $add_key->($key, $value);
> }
> - } elsif ($line =~ m/SMART Disabled/) {
> - $smartdata->{health} = "SMART Disabled";
> }
> - });
> - };
> - my $err = $@;
> + } else {
> + $smartdata->{properties} = $nvme_info;
> + }
> + } else {
> + $smartdata->{type} = 'ata';
> + foreach my $attribute (@{$json_result->{ata_smart_attributes}->{table}}) {
> + # we need to override or delete some fields to fit expected json schema of unit tests
> + my $flags_string = $attribute->{flags}->{string};
> + $flags_string =~ s/\s+$//;
> + $attribute->{flags} = $flags_string;
> + $attribute->{raw} = $attribute->{raw}->{string};
> + $attribute->{threshold} = delete $attribute->{thresh};
> + $attribute->{fail} = ${attribute}->{when_failed} eq "" ? "-" : ${attribute}->{when_failed};
> + delete ${attribute}->{when_failed};
> +
> + push @{$smartdata->{attributes}}, $attribute;
> + }
> + my @sorted_attributes = sort { $a->{id} <=> $b->{id} } @{$smartdata->{attributes}};
> + @{$smartdata->{attributes}} = @sorted_attributes;
> + }
>
> - # bit 0 and 1 mark an severe smartctl error
> - # all others are for disk status, so ignore them
> - # see smartctl(8)
> - if ((defined($returncode) && ($returncode & 0b00000011)) || $err) {
> + if ($returncode & 0b00000011 || $err) {
again, any reason to change this? especially the comment about the
return code ?
> die "Error getting S.M.A.R.T. data: Exit code: $returncode\n";
> }
>
> - $smartdata->{type} = $type;
> -
> return $smartdata;
> }
>
> diff --git a/test/disk_tests/nvme_smart/disklist b/test/disk_tests/nvme_smart/disklist
> new file mode 100644
> index 0000000..d00b90e
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/disklist
> @@ -0,0 +1 @@
> +nvme0n1
> diff --git a/test/disk_tests/nvme_smart/disklist_expected.json b/test/disk_tests/nvme_smart/disklist_expected.json
> new file mode 100644
> index 0000000..4d1c92f
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/disklist_expected.json
> @@ -0,0 +1,16 @@
> +{
> + "nvme0n1" : {
> + "wearout" : 69,
> + "vendor" : "unknown",
> + "size" : 512000,
> + "health" : "PASSED",
> + "serial" : "unknown",
> + "model" : "NVME MODEL 1",
> + "rpm" : 0,
> + "osdid" : -1,
> + "devpath" : "/dev/nvme0n1",
> + "gpt" : 0,
> + "wwn" : "unknown",
> + "type" : "nvme"
> + }
> +}
> diff --git a/test/disk_tests/nvme_smart/nvme0/model b/test/disk_tests/nvme_smart/nvme0/model
> new file mode 100644
> index 0000000..9bd6eba
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/nvme0/model
> @@ -0,0 +1 @@
> +NVME MODEL 1
> diff --git a/test/disk_tests/nvme_smart/nvme0_smart b/test/disk_tests/nvme_smart/nvme0_smart
> new file mode 100644
> index 0000000..3f3c799
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/nvme0_smart
> @@ -0,0 +1,65 @@
> +{
> + "json_format_version": [
> + 1,
> + 0
> + ],
> + "smartctl": {
> + "version": [
> + 7,
> + 2
> + ],
> + "svn_revision": "5155",
> + "platform_info": "x86_64-linux-5.11.7-1-pve",
> + "build_info": "(local build)",
> + "argv": [
> + "smartctl",
> + "-j",
> + "-H",
> + "-Afbrief",
> + "/dev/nvme0"
> + ],
> + "exit_status": 0
> + },
> + "device": {
> + "name": "/dev/nvme0",
> + "info_name": "/dev/nvme0",
> + "type": "nvme",
> + "protocol": "NVMe"
> + },
> + "smart_status": {
> + "passed": true,
> + "nvme": {
> + "value": 0
> + }
> + },
> + "nvme_smart_health_information_log": {
> + "critical_warning": 0,
> + "temperature": 35,
> + "available_spare": 100,
> + "available_spare_threshold": 10,
> + "percentage_used": 31,
> + "data_units_read": 4546105,
> + "data_units_written": 16623231,
> + "host_reads": 154011524,
> + "host_writes": 282144186,
> + "controller_busy_time": 355,
> + "power_cycles": 514,
> + "power_on_hours": 2491,
> + "unsafe_shutdowns": 38,
> + "media_errors": 0,
> + "num_err_log_entries": 0,
> + "warning_temp_time": 0,
> + "critical_comp_time": 0,
> + "temperature_sensors": [
> + 36,
> + 34
> + ]
> + },
> + "temperature": {
> + "current": 35
> + },
> + "power_cycle_count": 514,
> + "power_on_time": {
> + "hours": 2491
> + }
> +}
> diff --git a/test/disk_tests/nvme_smart/nvme0n1/device b/test/disk_tests/nvme_smart/nvme0n1/device
> new file mode 120000
> index 0000000..e890f3e
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/nvme0n1/device
> @@ -0,0 +1 @@
> +../nvme0
> \ No newline at end of file
> diff --git a/test/disk_tests/nvme_smart/nvme0n1/queue/rotational b/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
> new file mode 100644
> index 0000000..573541a
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/nvme0n1/queue/rotational
> @@ -0,0 +1 @@
> +0
> diff --git a/test/disk_tests/nvme_smart/nvme0n1/size b/test/disk_tests/nvme_smart/nvme0n1/size
> new file mode 100644
> index 0000000..83b33d2
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/nvme0n1/size
> @@ -0,0 +1 @@
> +1000
> diff --git a/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json b/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
> new file mode 100644
> index 0000000..e3f0ce0
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/nvme0n1_smart_expected.json
> @@ -0,0 +1,6 @@
> +{
> + "text" : "available_spare : 100\navailable_spare_threshold : 10\ncontroller_busy_time : 355\ncritical_comp_time : 0\ncritical_warning : 0\ndata_units_read : 4546105\ndata_units_written : 16623231\nhost_reads : 154011524\nhost_writes : 282144186\nmedia_errors : 0\nnum_err_log_entries : 0\npercentage_used : 31\npower_cycles : 514\npower_on_hours : 2491\ntemperature : 35\ntemperature_sensors_0 : 36\ntemperature_sensors_1 : 34\nunsafe_shutdowns : 38\nwarning_temp_time : 0\n",
> + "health" : "PASSED",
> + "type" : "text",
> + "wearout": 69
> +}
> diff --git a/test/disk_tests/nvme_smart/nvme0n1_udevadm b/test/disk_tests/nvme_smart/nvme0n1_udevadm
> new file mode 100644
> index 0000000..36c78ce
> --- /dev/null
> +++ b/test/disk_tests/nvme_smart/nvme0n1_udevadm
> @@ -0,0 +1,18 @@
> +
> +P: /devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
> +N: nvme0n1
> +S: disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
> +E: DEVLINKS=/dev/disk/by-id/lvm-pv-uuid-Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
> +E: DEVNAME=/dev/nvme0n1
> +E: DEVPATH=/devices/pci0000:00/0000:00:01.1/0000:02:00.0/nvme/nvme0/nvme0n1
> +E: DEVTYPE=disk
> +E: ID_FS_TYPE=LVM2_member
> +E: ID_FS_USAGE=raid
> +E: ID_FS_UUID=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
> +E: ID_FS_UUID_ENC=Py4eod-qfzj-i8Q3-Dxu6-xf0Q-H3Wr-w5Fo8V
> +E: ID_FS_VERSION=LVM2 001
> +E: MAJOR=259
> +E: MINOR=0
> +E: SUBSYSTEM=block
> +E: TAGS=:systemd:
> +E: USEC_INITIALIZED=3842
> diff --git a/test/disk_tests/ssd_smart/disklist b/test/disk_tests/ssd_smart/disklist
> new file mode 100644
> index 0000000..9191c61
> --- /dev/null
> +++ b/test/disk_tests/ssd_smart/disklist
> @@ -0,0 +1 @@
> +sda
> diff --git a/test/disk_tests/ssd_smart/disklist_expected.json b/test/disk_tests/ssd_smart/disklist_expected.json
> new file mode 100644
> index 0000000..3681cc8
> --- /dev/null
> +++ b/test/disk_tests/ssd_smart/disklist_expected.json
> @@ -0,0 +1,16 @@
> +{
> + "sda" : {
> + "serial" : "000000000000",
> + "vendor" : "ATA",
> + "rpm" : 0,
> + "gpt" : 1,
> + "health" : "PASSED",
> + "wearout" : "98",
> + "osdid" : -1,
> + "size" : 512000,
> + "type" : "ssd",
> + "devpath" : "/dev/sda",
> + "model" : "Samsung_SSD_860_EVO_1TB",
> + "wwn" : "0x0000000000000000"
> + }
> +}
> diff --git a/test/disk_tests/ssd_smart/sda/device/vendor b/test/disk_tests/ssd_smart/sda/device/vendor
> new file mode 100644
> index 0000000..531030d
> --- /dev/null
> +++ b/test/disk_tests/ssd_smart/sda/device/vendor
> @@ -0,0 +1 @@
> +ATA
> diff --git a/test/disk_tests/ssd_smart/sda/queue/rotational b/test/disk_tests/ssd_smart/sda/queue/rotational
> new file mode 100644
> index 0000000..573541a
> --- /dev/null
> +++ b/test/disk_tests/ssd_smart/sda/queue/rotational
> @@ -0,0 +1 @@
> +0
> diff --git a/test/disk_tests/ssd_smart/sda/size b/test/disk_tests/ssd_smart/sda/size
> new file mode 100644
> index 0000000..83b33d2
> --- /dev/null
> +++ b/test/disk_tests/ssd_smart/sda/size
> @@ -0,0 +1 @@
> +1000
> diff --git a/test/disk_tests/ssd_smart/sda_smart b/test/disk_tests/ssd_smart/sda_smart
> new file mode 100644
> index 0000000..907e7da
> --- /dev/null
> +++ b/test/disk_tests/ssd_smart/sda_smart
> @@ -0,0 +1,352 @@
> +{
> + "json_format_version": [
> + 1,
> + 0
> + ],
> + "smartctl": {
> + "version": [
> + 7,
> + 2
> + ],
> + "svn_revision": "5155",
> + "platform_info": "x86_64-linux-5.11.7-1-pve",
> + "build_info": "(local build)",
> + "argv": [
> + "smartctl",
> + "-j",
> + "-H",
> + "-Afbrief",
> + "/dev/sda"
> + ],
> + "exit_status": 0
> + },
> + "device": {
> + "name": "/dev/sda",
> + "info_name": "/dev/sda [SAT]",
> + "type": "sat",
> + "protocol": "ATA"
> + },
> + "smart_status": {
> + "passed": true
> + },
> + "ata_smart_attributes": {
> + "revision": 1,
> + "table": [
> + {
> + "id": 5,
> + "name": "Reallocated_Sector_Ct",
> + "value": 100,
> + "worst": 100,
> + "thresh": 10,
> + "when_failed": "",
> + "flags": {
> + "value": 51,
> + "string": "PO--CK ",
> + "prefailure": true,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 0,
> + "string": "0"
> + }
> + },
> + {
> + "id": 9,
> + "name": "Power_On_Hours",
> + "value": 99,
> + "worst": 99,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 50,
> + "string": "-O--CK ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 2463,
> + "string": "2463"
> + }
> + },
> + {
> + "id": 12,
> + "name": "Power_Cycle_Count",
> + "value": 99,
> + "worst": 99,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 50,
> + "string": "-O--CK ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 499,
> + "string": "499"
> + }
> + },
> + {
> + "id": 177,
> + "name": "Wear_Leveling_Count",
> + "value": 98,
> + "worst": 98,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 19,
> + "string": "PO--C- ",
> + "prefailure": true,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": false
> + },
> + "raw": {
> + "value": 20,
> + "string": "20"
> + }
> + },
> + {
> + "id": 179,
> + "name": "Used_Rsvd_Blk_Cnt_Tot",
> + "value": 100,
> + "worst": 100,
> + "thresh": 10,
> + "when_failed": "",
> + "flags": {
> + "value": 19,
> + "string": "PO--C- ",
> + "prefailure": true,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": false
> + },
> + "raw": {
> + "value": 0,
> + "string": "0"
> + }
> + },
> + {
> + "id": 181,
> + "name": "Program_Fail_Cnt_Total",
> + "value": 100,
> + "worst": 100,
> + "thresh": 10,
> + "when_failed": "",
> + "flags": {
> + "value": 50,
> + "string": "-O--CK ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 0,
> + "string": "0"
> + }
> + },
> + {
> + "id": 182,
> + "name": "Erase_Fail_Count_Total",
> + "value": 100,
> + "worst": 100,
> + "thresh": 10,
> + "when_failed": "",
> + "flags": {
> + "value": 50,
> + "string": "-O--CK ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 0,
> + "string": "0"
> + }
> + },
> + {
> + "id": 183,
> + "name": "Runtime_Bad_Block",
> + "value": 100,
> + "worst": 100,
> + "thresh": 10,
> + "when_failed": "",
> + "flags": {
> + "value": 19,
> + "string": "PO--C- ",
> + "prefailure": true,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": false
> + },
> + "raw": {
> + "value": 0,
> + "string": "0"
> + }
> + },
> + {
> + "id": 187,
> + "name": "Uncorrectable_Error_Cnt",
> + "value": 100,
> + "worst": 100,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 50,
> + "string": "-O--CK ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 0,
> + "string": "0"
> + }
> + },
> + {
> + "id": 190,
> + "name": "Airflow_Temperature_Cel",
> + "value": 73,
> + "worst": 45,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 50,
> + "string": "-O--CK ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 27,
> + "string": "27"
> + }
> + },
> + {
> + "id": 195,
> + "name": "ECC_Error_Rate",
> + "value": 200,
> + "worst": 200,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 26,
> + "string": "-O-RC- ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": true,
> + "event_count": true,
> + "auto_keep": false
> + },
> + "raw": {
> + "value": 0,
> + "string": "0"
> + }
> + },
> + {
> + "id": 199,
> + "name": "CRC_Error_Count",
> + "value": 99,
> + "worst": 99,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 62,
> + "string": "-OSRCK ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": true,
> + "error_rate": true,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 1,
> + "string": "1"
> + }
> + },
> + {
> + "id": 235,
> + "name": "POR_Recovery_Count",
> + "value": 99,
> + "worst": 99,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 18,
> + "string": "-O--C- ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": false
> + },
> + "raw": {
> + "value": 39,
> + "string": "39"
> + }
> + },
> + {
> + "id": 241,
> + "name": "Total_LBAs_Written",
> + "value": 99,
> + "worst": 99,
> + "thresh": 0,
> + "when_failed": "",
> + "flags": {
> + "value": 50,
> + "string": "-O--CK ",
> + "prefailure": false,
> + "updated_online": true,
> + "performance": false,
> + "error_rate": false,
> + "event_count": true,
> + "auto_keep": true
> + },
> + "raw": {
> + "value": 19999585737,
> + "string": "19999585737"
> + }
> + }
> + ]
> + },
> + "power_on_time": {
> + "hours": 2515
> + },
> + "power_cycle_count": 508,
> + "temperature": {
> + "current": 29
> + }
> +}
> diff --git a/test/disk_tests/ssd_smart/sda_smart_expected.json b/test/disk_tests/ssd_smart/sda_smart_expected.json
> new file mode 100644
> index 0000000..36da71e
> --- /dev/null
> +++ b/test/disk_tests/ssd_smart/sda_smart_expected.json
> @@ -0,0 +1,146 @@
> +{
> + "attributes" : [
> + {
> + "fail" : "-",
> + "flags" : "PO--CK",
> + "id" : 5,
> + "name" : "Reallocated_Sector_Ct",
> + "raw" : "0",
> + "threshold" : 10,
> + "value" : 100,
> + "worst" : 100
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O--CK",
> + "id" : 9,
> + "name" : "Power_On_Hours",
> + "raw" : "2463",
> + "threshold" : 0,
> + "value" : 99,
> + "worst" : 99
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O--CK",
> + "id" : 12,
> + "name" : "Power_Cycle_Count",
> + "raw" : "499",
> + "threshold" : 0,
> + "value" : 99,
> + "worst" : 99
> + },
> + {
> + "fail" : "-",
> + "flags" : "PO--C-",
> + "id" : 177,
> + "name" : "Wear_Leveling_Count",
> + "raw" : "20",
> + "threshold" : 0,
> + "value" : 98,
> + "worst" : 98
> + },
> + {
> + "fail" : "-",
> + "flags" : "PO--C-",
> + "id" : 179,
> + "name" : "Used_Rsvd_Blk_Cnt_Tot",
> + "raw" : "0",
> + "threshold" : 10,
> + "value" : 100,
> + "worst" : 100
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O--CK",
> + "id" : 181,
> + "name" : "Program_Fail_Cnt_Total",
> + "raw" : "0",
> + "threshold" : 10,
> + "value" : 100,
> + "worst" : 100
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O--CK",
> + "id" : 182,
> + "name" : "Erase_Fail_Count_Total",
> + "raw" : "0",
> + "threshold" : 10,
> + "value" : 100,
> + "worst" : 100
> + },
> + {
> + "fail" : "-",
> + "flags" : "PO--C-",
> + "id" : 183,
> + "name" : "Runtime_Bad_Block",
> + "raw" : "0",
> + "threshold" : 10,
> + "value" : 100,
> + "worst" : 100
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O--CK",
> + "id" : 187,
> + "name" : "Uncorrectable_Error_Cnt",
> + "raw" : "0",
> + "threshold" : 0,
> + "value" : 100,
> + "worst" : 100
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O--CK",
> + "id" : 190,
> + "name" : "Airflow_Temperature_Cel",
> + "raw" : "27",
> + "threshold" : 0,
> + "value" : 73,
> + "worst" : 45
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O-RC-",
> + "id" : 195,
> + "name" : "ECC_Error_Rate",
> + "raw" : "0",
> + "threshold" : 0,
> + "value" : 200,
> + "worst" : 200
> + },
> + {
> + "fail" : "-",
> + "flags" : "-OSRCK",
> + "id" : 199,
> + "name" : "CRC_Error_Count",
> + "raw" : "1",
> + "threshold" : 0,
> + "value" : 99,
> + "worst" : 99
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O--C-",
> + "id" : 235,
> + "name" : "POR_Recovery_Count",
> + "raw" : "39",
> + "threshold" : 0,
> + "value" : 99,
> + "worst" : 99
> + },
> + {
> + "fail" : "-",
> + "flags" : "-O--CK",
> + "id" : 241,
> + "name" : "Total_LBAs_Written",
> + "raw" : "19999585737",
> + "threshold" : 0,
> + "value" : 99,
> + "worst" : 99
> + }
> + ],
> + "health" : "PASSED",
> + "type" : "ata"
> +}
> diff --git a/test/disk_tests/ssd_smart/sda_udevadm b/test/disk_tests/ssd_smart/sda_udevadm
> new file mode 100644
> index 0000000..f662221
> --- /dev/null
> +++ b/test/disk_tests/ssd_smart/sda_udevadm
> @@ -0,0 +1,11 @@
> +E: DEVNAME=/dev/sda
> +E: DEVTYPE=disk
> +E: ID_ATA_ROTATION_RATE_RPM=0
> +E: ID_BUS=ata
> +E: ID_MODEL=Samsung_SSD_860_EVO_1TB
> +E: ID_PART_TABLE_TYPE=gpt
> +E: ID_SERIAL=Samsung_SSD_860_EVO_1TB_000000000000000
> +E: ID_SERIAL_SHORT=000000000000
> +E: ID_TYPE=disk
> +E: ID_WWN=0x0000000000000000
> +
> diff --git a/test/disklist_test.pm b/test/disklist_test.pm
> index 7f0e0be..727fb44 100644
> --- a/test/disklist_test.pm
> +++ b/test/disklist_test.pm
> @@ -34,10 +34,10 @@ sub mocked_run_command {
> my $dev;
> my $type;
> if (@$cmd > 3) {
> - $dev = $cmd->[5];
> + $dev = $cmd->[4];
> $type = 'smart';
> } else {
> - $dev = $cmd->[2];
> + $dev = $cmd->[3];
> $type = 'health';
> }
> $dev =~ s|/dev/||;
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests
2021-05-10 12:15 ` [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests Dominik Csapak
@ 2021-05-10 12:27 ` Oguz Bektas
0 siblings, 0 replies; 7+ messages in thread
From: Oguz Bektas @ 2021-05-10 12:27 UTC (permalink / raw)
To: Dominik Csapak; +Cc: Proxmox VE development discussion
On Mon, May 10, 2021 at 02:15:37PM +0200, Dominik Csapak wrote:
> hi,
>
> sorry for the long wait on a review, but better
> late than never ;)
>
> so one high level comments:
>
> why do you remove all disk tests ??
> they did not only test the smart output, but also the
> usage, ssd/hdd detection, vendor/model etc...
>
> i understand that you do not have the original disks
> for the smartctl -j output, but it should not be
> *that* hard to fake it ;)
at the time i couldn't figure out a way to keep all the tests working
while also adding the json changes, so for proof of concept i went for
the simpler option.
thomas thought it would also be acceptable to incrementally
add the new tests over time, making sure that everything works with the
new changes.
i have to admit i haven't really tried to fake the outputs, mainly
because there were a lot of disk types that produce different kind of
results (one issue stefan noticed at an earlier version was that his
disk's smart result returned an array with the temperature sensors,
while the disks i've tested did not have these.)
all these vendor-specific quirks make it really hard to produce reliable
tests without the real hardware.
>
> and even if it is, please change the tests so that
> only the smart part is not tested anymore, e.g. with a flag
> in the test itself....
that can be an option, indeed
>
> so please find a way to keep the tests (as much as you can)
>
> i'll comment more on the second patch
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH v2 storage 2/2] smartctl: use json parsing
2021-05-10 12:21 ` Dominik Csapak
@ 2021-05-10 12:35 ` Oguz Bektas
0 siblings, 0 replies; 7+ messages in thread
From: Oguz Bektas @ 2021-05-10 12:35 UTC (permalink / raw)
To: Dominik Csapak; +Cc: Proxmox VE development discussion
thanks for reviewing! :)
On Mon, May 10, 2021 at 02:21:12PM +0200, Dominik Csapak wrote:
> some comments inline
>
> > }
> > - my $cmd = [$SMARTCTL, '-H'];
> > - push @$cmd, '-A', '-f', 'brief' if !$healthonly;
> > + my $cmd = [$SMARTCTL, '-j', '-H'];
> > + push @$cmd, '-Afbrief' if !$healthonly;
>
> any particular reason to change this line? i think
> it makes it harder to read what flags we give
> (-Afbrief vs -A -f brief)
i think my idea was that the cli parameter count for the
disklist_test.pm would be reduced -- but i notice that actually this
doesn't bring anything so i suppose we can leave this part out.
> > + if ($format eq 'text') {
> > + foreach my $key (sort keys %{$nvme_info}) {
> > + my $value = $nvme_info->{$key};
> > + # some fields can also be arrays
> > + # e.g. temperature_sensor
> > + if (ref($value) eq 'ARRAY') {
> > + while (my $index = each(@$value)) {
> > + $add_key->("${key}_${index}", $value->[$index]);
> > + }
>
> while this is ok, we probably could also do a
> 'pretty-print' json output here in case $value is not a scalar
>
> that way we would also catch (potential) objects, not only arrays
> (though i do not know if that can happen)
hmm yes, haven't seen any other examples besides that array case, but i will look
into it.
> + my @sorted_attributes = sort { $a->{id} <=> $b->{id} } @{$smartdata->{attributes}};
> > + @{$smartdata->{attributes}} = @sorted_attributes;
> > + }
> > - # bit 0 and 1 mark an severe smartctl error
> > - # all others are for disk status, so ignore them
> > - # see smartctl(8)
> > - if ((defined($returncode) && ($returncode & 0b00000011)) || $err) {
> > + if ($returncode & 0b00000011 || $err) {
>
> again, any reason to change this? especially the comment about the return
> code ?
the comment was removed by mistake, sorry!
i was also thinking whether it's acceptable to take the exit code from
the json result (although then we might have to handle for potential
errors during parsing, so it might be better to keep it as before)
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-05-10 12:35 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-01 13:40 [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests Oguz Bektas
2021-04-01 13:40 ` [pve-devel] [PATCH storage 2/2] smartctl: use json parsing Oguz Bektas
2021-04-01 14:24 ` [pve-devel] [PATCH v2 " Oguz Bektas
2021-05-10 12:21 ` Dominik Csapak
2021-05-10 12:35 ` Oguz Bektas
2021-05-10 12:15 ` [pve-devel] [PATCH storage 1/2] smartctl: remove to-be-replaced disk_tests Dominik Csapak
2021-05-10 12:27 ` Oguz Bektas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox