]> git.proxmox.com Git - pve-storage.git/commitdiff
fix #2266: Diskmanage: get correct osd id
authorDominik Csapak <d.csapak@proxmox.com>
Mon, 8 Jul 2019 13:48:14 +0000 (15:48 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 8 Jul 2019 17:04:08 +0000 (19:04 +0200)
The osdid can consist of multiple digits, cope with that and add more
regression tests for this

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
13 files changed:
PVE/Diskmanage.pm
test/disk_tests/usages/disklist
test/disk_tests/usages/disklist_expected.json
test/disk_tests/usages/lvs
test/disk_tests/usages/pvs
test/disk_tests/usages/sdk/device/vendor [new file with mode: 0644]
test/disk_tests/usages/sdk/queue/rotational [new file with mode: 0644]
test/disk_tests/usages/sdk/size [new file with mode: 0644]
test/disk_tests/usages/sdk_udevadm [new file with mode: 0644]
test/disk_tests/usages/sdl/device/vendor [new file with mode: 0644]
test/disk_tests/usages/sdl/queue/rotational [new file with mode: 0644]
test/disk_tests/usages/sdl/size [new file with mode: 0644]
test/disk_tests/usages/sdl_udevadm [new file with mode: 0644]

index f446269b10fb53fcc85304e94037fc4d9f72d03d..0deb1a6eea7c57726e225e1a871020f8485e3426 100644 (file)
@@ -258,7 +258,7 @@ sub get_ceph_volume_infos {
        if ($fields->[1] =~ m|^osd-([^-]+)-|) {
            my $type = $1;
            # $result autovivification is wanted, to not creating empty hashes
-           if (($type eq 'block' || $type eq 'data') && $fields->[2] =~ m/ceph.osd_id=([^,])/) {
+           if (($type eq 'block' || $type eq 'data') && $fields->[2] =~ m/ceph.osd_id=([^,]+)/) {
                $result->{$dev}->{osdid} = $1;
                $result->{$dev}->{bluestore} = ($type eq 'block');
            } else {
index 9092ce093464d3424f334a062bb3b2e5f866899e..ef443ed53da818b84d1be5c15d2334666a490465 100644 (file)
@@ -8,3 +8,5 @@ sdg
 sdh
 sdi
 sdj
+sdk
+sdl
index 9829339c9b1e343097cf52fe5ba666c7819018b1..610e80faebc203c78f4818d57fb0780cf5a492df 100644 (file)
        "bluestore": 0,
        "type" : "hdd",
        "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",
+       "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
     }
 }
index 393dcd3d20efe685547eb1292b98cb81228541f3..8d640e15460d51760d88bc075b33d60de0a3c96c 100644 (file)
@@ -1,4 +1,6 @@
 /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
-/dev/sdj(0);osd-data-01234;ceph.osd_id=0
+/dev/sdi(0);osd-db-01234;ceph.osd_id=1,dasdf
+/dev/sdj(0);osd-data-01234;ceph.osd_id=0,asfd
+/dev/sdk(0);osd-data-231231;ceph.osd_id=230,ceph.fsid=test
+/dev/sdl(0);osd-data-234132;ceph.osd_id=,bar
index 0df50803b4931958fe12cd98e38c4e20615376eb..86ec3d493bba9e1d65a7b16108b58872be29f634 100644 (file)
@@ -3,3 +3,5 @@
   /dev/sdh
   /dev/sdi
   /dev/sdj
+  /dev/sdk
+  /dev/sdl
diff --git a/test/disk_tests/usages/sdk/device/vendor b/test/disk_tests/usages/sdk/device/vendor
new file mode 100644 (file)
index 0000000..531030d
--- /dev/null
@@ -0,0 +1 @@
+ATA
diff --git a/test/disk_tests/usages/sdk/queue/rotational b/test/disk_tests/usages/sdk/queue/rotational
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/test/disk_tests/usages/sdk/size b/test/disk_tests/usages/sdk/size
new file mode 100644 (file)
index 0000000..13de30f
--- /dev/null
@@ -0,0 +1 @@
+3000
diff --git a/test/disk_tests/usages/sdk_udevadm b/test/disk_tests/usages/sdk_udevadm
new file mode 100644 (file)
index 0000000..3baef2f
--- /dev/null
@@ -0,0 +1,12 @@
+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
new file mode 100644 (file)
index 0000000..531030d
--- /dev/null
@@ -0,0 +1 @@
+ATA
diff --git a/test/disk_tests/usages/sdl/queue/rotational b/test/disk_tests/usages/sdl/queue/rotational
new file mode 100644 (file)
index 0000000..d00491f
--- /dev/null
@@ -0,0 +1 @@
+1
diff --git a/test/disk_tests/usages/sdl/size b/test/disk_tests/usages/sdl/size
new file mode 100644 (file)
index 0000000..13de30f
--- /dev/null
@@ -0,0 +1 @@
+3000
diff --git a/test/disk_tests/usages/sdl_udevadm b/test/disk_tests/usages/sdl_udevadm
new file mode 100644 (file)
index 0000000..ead0622
--- /dev/null
@@ -0,0 +1,12 @@
+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