Working on this now and some things have to be changed with how the constraints will work with a partition.
The "partition" tag will always be required when a match for a partition needs to occur, otherwise MAAS will always match on a block devices that has no partitions or a filesystem. This is to reserve comparability and not break the allocation API.
Just to use the comment #3 as an example:
storage=root:(nvme) # would return block device with nvme
storage=root:(partition, nvme) # would return partitions tagged nvme
storage=root:(blockdev, nvme) # 'blockdev' will no longer be a tag flag. So would return block device with tag blockdev and nvme.
Working on this now and some things have to be changed with how the constraints will work with a partition.
The "partition" tag will always be required when a match for a partition needs to occur, otherwise MAAS will always match on a block devices that has no partitions or a filesystem. This is to reserve comparability and not break the allocation API.
Just to use the comment #3 as an example:
storage=root:(nvme) # would return block device with nvme root:(partition , nvme) # would return partitions tagged nvme root:(blockdev, nvme) # 'blockdev' will no longer be a tag flag. So would return block device with tag blockdev and nvme.
storage=
storage=