Description of problem:
When trying to match multiple potential device names to ignoredisk or clearpart, a KickstartValueError is raised when one of them isn't found.
For example, SATA DOMs that can be matched as target disk with "ignoredisk --only-use=/dev/disk/by-id/ata-SATA_SSD*,/dev/disk/by-id/ata-SATADOM*" fail when one of those matches exists but the other does not.
So when you have a bunch of machines with *one single* SATA DOM where some of them are matched with "ata-SATA_SSD*" and others with "ata-SATADOM*", the only acceptable solution is to maintain multiple kickstart scripts.
The issue also applies in reverse, e.g. when using "ignoredisk --disks=/dev/disk/by-id/*INTEL*,/dev/disk/by-id/*OCZ*" because this also causes a kickstart failure when there are either no INTEL or no OCZ drives present; it only works correctly when both matches are true.
Version-Release number of selected component (if applicable):
100% of the time
Steps to Reproduce:
1. Make a kickstart with "ignoredisk --only-use=foo,bar' where foo is a valid match for a device and bar is not
2. Try to install with this kickstart script
Kickstart fails with an error for the unmatched device bar
Kickstart should ignore the non-existing device bar if device foo exists and matches
While Red Hat welcomes bug reports on Red Hat products here in our public
bugzilla database, please keep in mind that bugzilla is not a support tool or
means of accessing support. If you would like technical support please visit
our support portal at access.redhat.com or call us for information on
subscription offerings to suit your needs.
I created this bug at the request of mkolman while debugging this on #anaconda in freenode. Please do not consider this a support request and keep it open.
I more or less see two things that need to be done to handle this use case:
- wildcard support: being able to match globs like --disks=/dev/disk/by-id/*INTEL*
- being able to survive unmatched device
I can see multiple ways of handling the second point - always ignoring unmatched wildcards or something like:
As long as at least one wildcard/specification in a | separated list matches no error would be generated.
Work on this change uncovered some issues with the resolve_glob() function in Blivet: https://github.com/rhinstaller/blivet/issues/417
Initial implementation has been posted for review:
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.