Thanks for the review.

Diff comments:

> diff --git a/curtin/block/__init__.py b/curtin/block/__init__.py
> index 0cf0866..eca69d8 100644
> --- a/curtin/block/__init__.py
> +++ b/curtin/block/__init__.py
> @@ -421,6 +418,14 @@ def get_blockdev_for_partition(devpath, strict=True):
>      if strict and not os.path.exists(syspath):
>          raise OSError("%s had no syspath (%s)" % (devpath, syspath))
>  
> +    dm_name_path = os.path.join(syspath, 'dm/name')
> +    if os.path.exists(dm_name_path):
> +        dm_name = util.load_file(dm_name_path).rstrip()
> +        if '-part' in dm_name:
> +            parent_name, ptnum = dm_name.rsplit('-part', 1)
> +            parent_path = os.path.realpath('/dev/mapper/' + parent_name)
> +            return (parent_path, ptnum)

I'm not sure what "really disks" means on a philosophical level <wink> but yes 
this is for multipath. I found that there was a currently-unused function in 
multipath.py that does most of what we want so I changed it to return the 
partition number as well and changed this code. (it used udev rather than sysfs 
pokery but well. no real difference).

On the subject of mocks, get_blockdev_for_partition is currently untested. 
Tests could be written but you'd have to mock so many filesystem accesses that 
it would be incredibly fragile and I'm not sure what value it would bring.

You must have thought about a more generic way to mock the filesystem by now, 
surely, like something where you supply a dictionary mapping paths to content 
and mocks for the various os.path.* functions get set up for you? Did you ever 
write anything for this I can steal? :)

> +
>      ptpath = os.path.join(syspath, "partition")
>      if not os.path.exists(ptpath):
>          return (rpath, None)


-- 
https://code.launchpad.net/~mwhudson/curtin/+git/curtin/+merge/396462
Your team curtin developers is requested to review the proposed merge of 
~mwhudson/curtin:fix-multipath-partition-verification-2 into curtin:master.

-- 
Mailing list: https://launchpad.net/~curtin-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~curtin-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to