| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Sometimes mdadm --stop reports failure, but the array stops
after a while never the less, this happens with container
members, see bug rh523334 (this works around the first scenario
mentioned in the bug, the second scenario will still cause anaconda
to fail).
|
| |
|
|
|
|
|
|
| |
mdraid is really braindead, when a device is stopped
it is no longer usefull in anyway (and we should not
probe it) yet it still sticks around, see bug rh523387
|
|
|
|
|
| |
udev_get_block_device() was returning a fake "empty" dict on failure,
but all its callers expect it to return None on failure.
|
|
|
|
|
|
| |
Passing --update=super-minor to mdadm for containers and sets there in
leads to corrupt superblocks, see: bug rh523320, work around this for now
by not passing --update=super-minor in these cases.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ok, so the purpose of this patch is too write mdadm.conf lines for
mdraid container formats (imsm), but what it does is it cleans up
handling of mdraid container formats in general, with the
writing of mdadm.conf writing as a bonus effect really.
We were adding mdraid container members (raidsets inside the container)
to the device tree as DiskDevices. Which works, but is not completely
correct. This patch introduce a PartitionableMDRaidArrayDevice and
uses that for mdraid container members instead. This means we now also
correctly tear them down / set them up when asked. In the future (mostly
needs UI work to export the functionality) PartitionableMDRaidArrayDevice
can be used to create partitionable normal (native metadata) mdraid sets too.
|
|
|
|
|
| |
Install dracut-network when using network storage, so that we will be
capable of booting of network storage.
|
| |
|
| |
|
|
|
|
|
|
| |
Now that we've moved to dracut for the initrd in rawhide, which supports
using mdraid for isw metadata raid sets (and uses this by default), make
using mdraid for isw metadata raid sets the default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for storing an X.509 certificate used to encrypt the escrow
data, and a "create backup passphrase" flag, to storage.formats.LUKS,
and support for storing the same options of "autopart" globally to
storage.Storage.
While parsing kickstart directives, download the X.509 certificates
specified in thekickstart file (if any), enabling network access if
necessary, then store the data in the above-described storage objects.
While autopartitioning, copy the "autopart" escrow options into each
created LUKS volume.
Finally, as a part of doPostInstall, find all LUKS volumes with escrow
configured, create the escrow files and store them in /mnt/sysimage/root.
Changes since the previous version:
- Drop unused .encryptedDevice assignments
- Move writeEscrowPackets inside doPostInstall
- Fix bugs introduced while moving code to storage.formats.LUKS
Further changes:
- Don't pass escrow args to lvmpv format constructor.
- Move backup passphrase generation into storage.devicelibs.crypto.
- Use newer, clearer except syntax in storage.writeEscrowPackets.
|
|
|
|
|
|
|
|
| |
This helps us to avoid parted's renumbering nonsense.
This patch also streamlines clearPartitions so that it removes the
partitions inside the loop instead of building a list and iterating over
it separately to remove the partitions.
|
|
|
|
|
|
|
|
| |
- Move format property up to DeviceAction so it can be inherited
- Use the format property in DeviceAction.__str__
- Include device id in DeviceAction.__str__
- Include migration target name in ActionMigrateFormat.__str__
- Reword from, eg: "sda2 (partition)" to "partition sda2 (id 4)"
|
| |
|
| |
|
|
|
|
|
| |
Remove the no longer used initcb and initlabel arguments from
DiskDevice and friends __init__.
|
|
|
|
|
|
|
| |
We were waiting for DMRaidArrayDevice's to be scanned before giving them
a DiskLabel format, however this causes backtraces if a partition on the
raid array gets scanned before the array itself:
AttributeError: 'DeviceFormat' object has no attribute 'partedDisk'
|
|
|
|
| |
If we get UnknownSwapError, alert the user and offer some options.
|
|
|
|
|
|
|
| |
Move the test for anaconda.intf to the swapErrorDialog() function. If
we don't have one, exit (consistent with existing behavior). Simplify
the exception handlers that call swapErrorDialog() and remove the tests
for anaconda.intf.
|
|
|
|
|
|
|
| |
Before the storage rewrite, we let users force a reformat of a detected
swap volume currently being used as a software suspend volume, skip it
entirely, or exit the installer. Bring that functionality back rather
than forcing an exit.
|
|
|
|
|
|
|
| |
Safety net for detected swap volumes. We trap v0 swap space and swap
partitions currently in use for software suspend. After all that verify
that the detected volume is v1 swap space. If not, raise
UnknownSwapError.
|
|
|
|
|
|
|
|
|
| |
Like before, offer users the ability to skip, format, or exit. Skip
removes the device from the devicetree. Format will force a reformat.
Exit is pretty self-explanatory.
OldSwapError is raised when we find a swap partition with the SWAP-SPACE
signature.
|
|
|
|
|
| |
force=True will tear down the device, unmount if necessary, and then
reformat it.
|
|
|
|
|
| |
mdraid device node minors aren't really stable, esp. not when using
mdraid for (Intel) BIOS RAID.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the following methods and properties to class Storage which map
through to FSSet methods, modify existing calls to use the method on
class Storage:
turnOnSwap()
mountFilesystems()
umountFilesystems()
parseFSTab()
mkDevRoot()
createSwapFile()
fsFreeSpace()
mtab
mountpoints
migratableDevices
rootDevice
Callers no longer need to pass the Anaconda object to the FSSet methods
directly. The method on Storage takes care of that.
The mtab() method on FSSet is exposed as a property on Storage. The
same is true for fsFreeSpace().
|
|
|
|
|
|
| |
Still related to #519665, but account for anaconda.rootPath containing
the chroot value passed to the mount() method on the format. But for
install types as indicated in the bug, rootPath will be the actual path.
|
|
|
|
|
|
| |
If you override rootpath on the anaconda command line, the rootDevice
property will return None because it's looking for a device with mount
point "/" rather than the path you passed to --rootpath.
|
|
|
|
|
| |
The FSSet objects needs to see anaconda.rootPath for a number of
methods.
|
|
|
|
|
|
|
|
| |
Recheck if a partition should be ignored after getting its disk (if its
disk was not scanned yet). Once we've the disk, we need to recheck if the
partition should be ignored again, as this catches cases when we scan the
partition before the disk and we have for example a disk which is part of
a BIOS raid set (and thus we should ignore the raw partitions).
|
|
|
|
|
|
|
|
| |
This patch fixes 2 things, which together fix
tracebacks on an usb cardreader with no card present
1) Add a check to format.disklabel() for no media being present
2) _ped.DeviceException was changed to _ped.IOException for no media present
errors in current pyparted
|
|
|
|
|
|
|
|
|
| |
Some usb cardreaders use multiple lun's (for different slots) and report a
fake disk serial which is the same for all the lun's (#517603)
So if we have multiple disks with all the same serial, if they are all
using the usb-storage driver, assume they are single path instead of
multipath.
|
|
|
|
|
|
|
|
| |
The packages property in the Device class references format.packages, but
format is not a member of Device (only of StorageDevice and derived classes).
This patch fixes this by moving the format-related bits of the packages
property into StorageDevice.packages .
|
|
|
|
|
|
| |
Our base Device class does not have a path member, so the make the second
argument passed to DeviceError exceptions thrown by the base class
the device name, not the path, and do the same in other places for consistency.
|
| |
|
|
|
|
| |
Remove unused fsFromConfig method, it is not used and has syntax errors in it.
|
|
|
|
| |
Courtesy of pylint (sort of).
|
|
|
|
| |
Courtesy of pylint
|
|
|
|
|
|
|
| |
pylint does not like @foo.setter, so use the
foo = property(setter, getter)
Notation instead. Note that we already use this notation everywhere except
for these 2 places, so doing things this way is more consistent anyways.
|
|
|
|
|
|
|
| |
Fix pylint warning:
55:udev_resolve_devspec: Using possibly undefined loop variable 'dev'
Notice that the code makes more sense once fixed.
|
|
|
|
|
| |
MDRaidArrayDevice.totalDevices is a read only property so don't write it,
set MDRaidArrayDevice._totalDevices instead.
|
|
|
|
|
|
|
| |
We do "import * from udev", so we should not call udev_trigger() as
udev.udev_trigger(), but just as udev_trigger()
Courtesy of pylint
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is a particular problem on text kickstart installs, where there is no
partitioning UI to go back to. Everywhere else in the partitioning code, we
just tell the user that it's going to reboot instead of offering some choice. So,
do the same thing in this case.
|
|
|
|
|
| |
This only gets hit if there are four preexisting primary partitions on a
disk. Also cleaned up the conditionals a bit to improve clarity.
|
| |
|
| |
|