]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/blkdev: get_device_id: behave if model is lvm and id_model_enc isn't there 27158/head
authorSage Weil <sage@redhat.com>
Mon, 25 Mar 2019 12:10:21 +0000 (07:10 -0500)
committerSage Weil <sage@redhat.com>
Mon, 25 Mar 2019 13:52:40 +0000 (08:52 -0500)
If that happens, leave ID_MODEL blank and we'll fall back to something
else, like ID_SERIAL (which is present in each case I've seen this).

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit ec4434a65f2248fb823ccfb5d2e150bb4da71da1)

src/ceph-volume/ceph_volume/util/device.py
src/common/blkdev.cc
src/test/common/blkdev-udevadm-info-samples/stud.nvme0n1 [new file with mode: 0644]
src/test/common/blkdev-udevadm-info-samples/stud.nvme0n1.devid [new file with mode: 0644]

index 3ca5a3e838fd806e72c49e076d302c745389ce22..041f0d7ed5a4cfbd12c92b7284e16d654c5ad05a 100644 (file)
@@ -203,7 +203,7 @@ class Device(object):
                  'ID_SCSI_SERIAL']
         p = disk.udevadm_property(self.abspath, props)
         if p.get('ID_MODEL','').startswith('LVM PV '):
-            p['ID_MODEL'] = p.get('ID_MODEL_ENC').replace('\\x20', ' ').strip()
+            p['ID_MODEL'] = p.get('ID_MODEL_ENC', '').replace('\\x20', ' ').strip()
         if 'ID_VENDOR' in p and 'ID_MODEL' in p and 'ID_SCSI_SERIAL' in p:
             dev_id = '_'.join([p['ID_VENDOR'], p['ID_MODEL'],
                               p['ID_SCSI_SERIAL']])
index 35b9bbb275ad6616385a84fb64991348ddc21a70..e01ad3c62e41a84a584634952c922c542aa65223 100644 (file)
@@ -486,10 +486,12 @@ std::string get_device_id(const std::string& devname,
     // sometimes, ID_MODEL is "LVM ..." but ID_MODEL_ENC is correct (but
     // encoded with \x20 for space).
     if (id_model.substr(0, 7) == "LVM PV ") {
-      std::string enc = udev_device_get_property_value(dev, "ID_MODEL_ENC");
-      enc = _decode_model_enc(enc);
-      if (enc.size()) {
-       id_model = enc;
+      const char *enc = udev_device_get_property_value(dev, "ID_MODEL_ENC");
+      if (enc) {
+       id_model = _decode_model_enc(enc);
+      } else {
+       // ignore ID_MODEL then
+       id_model.clear();
       }
     }
   }
diff --git a/src/test/common/blkdev-udevadm-info-samples/stud.nvme0n1 b/src/test/common/blkdev-udevadm-info-samples/stud.nvme0n1
new file mode 100644 (file)
index 0000000..e72c497
--- /dev/null
@@ -0,0 +1,29 @@
+P: /devices/pci0000:00/0000:00:03.0/0000:04:00.0/nvme/nvme0/nvme0n1
+N: nvme0n1
+S: disk/by-id/lvm-pv-uuid-eQ399W-P00T-Fdv1-DkWO-4bGJ-VMCN-RstGEU
+S: disk/by-id/nvme-INTEL_SSDPE2MX012T4_CVPD6185002R1P2QGN
+S: disk/by-id/nvme-nvme.8086-43565044363138353030325231503251474e-494e54454c205353445045324d583031325434-00000001
+S: disk/by-path/pci-0000:04:00.0-nvme-1
+E: DEVLINKS=/dev/disk/by-path/pci-0000:04:00.0-nvme-1 /dev/disk/by-id/lvm-pv-uuid-eQ399W-P00T-Fdv1-DkWO-4bGJ-VMCN-RstGEU /dev/disk/by-id/nvme-nvme.8086-43565044363138353030325231503251474e-494e54454c205353445045324d583031325434-00000001 /dev/disk/by-id/nvme-INTEL_SSDPE2MX012T4_CVPD6185002R1P2QGN
+E: DEVNAME=/dev/nvme0n1
+E: DEVPATH=/devices/pci0000:00/0000:00:03.0/0000:04:00.0/nvme/nvme0/nvme0n1
+E: DEVTYPE=disk
+E: ID_FS_TYPE=LVM2_member
+E: ID_FS_USAGE=raid
+E: ID_FS_UUID=eQ399W-P00T-Fdv1-DkWO-4bGJ-VMCN-RstGEU
+E: ID_FS_UUID_ENC=eQ399W-P00T-Fdv1-DkWO-4bGJ-VMCN-RstGEU
+E: ID_FS_VERSION=LVM2 001
+E: ID_MODEL=LVM PV eQ399W-P00T-Fdv1-DkWO-4bGJ-VMCN-RstGEU on /dev/nvme0n1
+E: ID_PATH=pci-0000:04:00.0-nvme-1
+E: ID_PATH_TAG=pci-0000_04_00_0-nvme-1
+E: ID_SERIAL=INTEL SSDPE2MX012T4_CVPD6185002R1P2QGN
+E: ID_SERIAL_SHORT=CVPD6185002R1P2QGN
+E: ID_WWN=nvme.8086-43565044363138353030325231503251474e-494e54454c205353445045324d583031325434-00000001
+E: MAJOR=259
+E: MINOR=0
+E: SUBSYSTEM=block
+E: SYSTEMD_ALIAS=/dev/block/259:0
+E: SYSTEMD_READY=1
+E: SYSTEMD_WANTS=lvm2-pvscan@259:0.service
+E: TAGS=:systemd:
+E: USEC_INITIALIZED=13656184
diff --git a/src/test/common/blkdev-udevadm-info-samples/stud.nvme0n1.devid b/src/test/common/blkdev-udevadm-info-samples/stud.nvme0n1.devid
new file mode 100644 (file)
index 0000000..70a4667
--- /dev/null
@@ -0,0 +1 @@
+INTEL_SSDPE2MX012T4_CVPD6185002R1P2QGN