Some disk devices (virtio) don't have serial numbers by default.
This breaks curtin which requires a serial or a path to uniquely
find the target disks. Add a fallback to device path if the
current device includes the eye catcher 'Unknown Serial' which
is set by probert for devices that do not have a serial number.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
If we fail to find curtin, we don't return a valid path
and this confuses the run async, so instead return
/bin/false which will return non-zero and trip the
async failure detection.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Testing this out, I never saw any of the utf-8 output.
Instead use simple ascii ala kirby. Also replace the
try:except with a modulo operation to index the list.
Drop the futures import.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- add blockdev tests on available_partitions
- fix type issue in Disk.partition OrderedDict keys, always use integers
- Add __repr__ for Disk related Actions
- Fix issue with available partition logic, ensure we and them together
- Filter out 'leave unformatted' fstype, set to None as needed.
- Whitespace cleanup in unittests
- add fsm test on get_partitions
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Add some probing data to use with the FilesystemModel
Add fakes class to handle fetching mock data
Add initial unittest
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Use nosetests3 to call unit tests
- Ensure all Actions use the 'type' property
- Implement remaining Blockdev unit tests
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Forgot to add __init__.py in tests subdir to make module.
Add a few blockdev partition tests and fixes for their issues.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
mdadm supports using whole disks and empty partitions.
Update model to define empty disks and empty partitions.
This allows one to construct a raid, and then use that raid
to construct further raid (raid0 multiple raid1s).
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Update filesystem model to check if we have an existing device
that's marked bootable.
- Update look at all disk mount points, not just the current one
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Introduce a new Raiddev class to hold raid virtual device.
Add RaidAction to emit correct storage config
Tested with raid level 0 only.
Not sure if we can allow partitioning of raid devices. Documentation
says it can be done but curtin will need to 'make it correctly'.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- add blockdev tests on available_partitions
- fix type issue in Disk.partition OrderedDict keys, always use integers
- Add __repr__ for Disk related Actions
- Fix issue with available partition logic, ensure we and them together
- Filter out 'leave unformatted' fstype, set to None as needed.
- Whitespace cleanup in unittests
- add fsm test on get_partitions
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Add some probing data to use with the FilesystemModel
Add fakes class to handle fetching mock data
Add initial unittest
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Use nosetests3 to call unit tests
- Ensure all Actions use the 'type' property
- Implement remaining Blockdev unit tests
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Forgot to add __init__.py in tests subdir to make module.
Add a few blockdev partition tests and fixes for their issues.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
mdadm supports using whole disks and empty partitions.
Update model to define empty disks and empty partitions.
This allows one to construct a raid, and then use that raid
to construct further raid (raid0 multiple raid1s).
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
- Update filesystem model to check if we have an existing device
that's marked bootable.
- Update look at all disk mount points, not just the current one
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
Introduce a new Raiddev class to hold raid virtual device.
Add RaidAction to emit correct storage config
Tested with raid level 0 only.
Not sure if we can allow partitioning of raid devices. Documentation
says it can be done but curtin will need to 'make it correctly'.
Signed-off-by: Ryan Harper <ryan.harper@canonical.com>