facts: Detecting NVME partitions under Linux (#39730)

In the current state of the code, the nvme partitions are returned as empty as in :
        "ansible_devices": {
            "nvme0n1": {
                "model": "SAMSUNG MZVLW256HEHP-000L7",
                "partitions": {},

The parsing of the /sys/block/<diskname> try to find a disk named like :
    <diskname><x> as in sda1 for sda

But in the nvme context, the partition of nvme0n1 is named nvme0n1p1.
This add a possible 'p' between the diskname and the partname.

This patch simply add the option of having a 'p' between the diskname
and the partname.

The patch works on my host :
                "model": "INTEL SSDPEDMD400G4",
                "partitions": {
                    "nvme0n1p1": {
                         ...
                        "size": "93.13 GB",
                    }

Fixes #38742
Signed-off-by: Erwan Velu <erwan@redhat.com>
This commit is contained in:
Erwan Velu 2018-05-07 17:08:46 +02:00 committed by John R Barker
parent efff75389d
commit 2214c747a2

View file

@ -615,7 +615,7 @@ class LinuxHardware(Hardware):
d['partitions'] = {}
for folder in os.listdir(sysdir):
m = re.search("(" + diskname + r"\d+)", folder)
m = re.search("(" + diskname + r"[p]*\d+)", folder)
if m:
part = {}
partname = m.group(1)