We need to recursively remove any format on top of a device that's getting reused so we don't attempt to use those formats again later. --- kickstart.py | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/kickstart.py b/kickstart.py index d45326a..a0fa7d4 100644 --- a/kickstart.py +++ b/kickstart.py @@ -178,6 +178,18 @@ def deviceMatches(spec): return matches +# Remove any existing formatting on a device, but do not remove the partition +# itself. This sets up an existing device to be used in a --onpart option. +def removeExistingFormat(device, devicetree): + deps = storage.deviceDeps(device) + while deps: + leaves = [d for d in deps if d.isleaf] + for leaf in leaves: + storage.destroyDevice(leaf) + deps.remove(leaf) + + devicetree.registerAction(ActionDestroyFormat(device)) + ### ### SUBCLASSES OF PYKICKSTART COMMAND HANDLERS ### @@ -465,6 +477,7 @@ class LogVolData(commands.logvol.F12_LogVolData): if not device: raise KickstartValueError, formatErrorMsg(self.lineno, msg="Specified nonexistent LV %s in logvol command" % self.name) + removeExistingFormat(device, devicetree) devicetree.registerAction(ActionCreateFormat(device, format)) else: # If a previous device has claimed this mount point, delete the @@ -734,6 +747,7 @@ class PartitionData(commands.partition.F12_PartData): if not device: raise KickstartValueError, formatErrorMsg(self.lineno, msg="Specified nonexistent partition %s in partition command" % self.onPart) + removeExistingFormat(device, devicetree) devicetree.registerAction(ActionCreateFormat(device, kwargs["format"])) else: # If a previous device has claimed this mount point, delete the @@ -875,6 +889,7 @@ class RaidData(commands.raid.F12_RaidData): if not device: raise KickstartValueError, formatErrorMsg(self.lineno, msg="Specifeid nonexistent RAID %s in raid command" % devicename) + removeExistingFormat(device, devicetree) devicetree.registerAction(ActionCreateFormat(device, kwargs["format"])) else: # If a previous device has claimed this mount point, delete the -- 1.6.5.1 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list