[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [PATCH 2/4] Make sure inconsistencies dont screw us up.
- From: David Lehman <dlehman redhat com>
- To: Discussion of Development and Customization of the Red Hat Linux Installer <anaconda-devel-list redhat com>
- Subject: Re: [PATCH 2/4] Make sure inconsistencies dont screw us up.
- Date: Thu, 16 Apr 2009 11:00:13 -0500
On Thu, 2009-04-16 at 17:45 +0200, Joel Granados Moreno wrote:
> I have seen instances where Udev says that there is a valid format on
> top of a device that has partitions. This is due to left over metadata
> from other installs. In these cases we will prefer the partitions.
> ---
> storage/devicetree.py | 12 ++++++++++++
> storage/formats/__init__.py | 4 ++++
> 2 files changed, 16 insertions(+), 0 deletions(-)
>
> diff --git a/storage/devicetree.py b/storage/devicetree.py
> index 2963726..319c5af 100644
> --- a/storage/devicetree.py
> +++ b/storage/devicetree.py
> @@ -1568,6 +1568,18 @@ class DeviceTree(object):
> for leaf in self.leaves:
> leafInconsistencies(leaf)
>
> + # Automatically handle the cases where we find a format on a
> + # disk with partitions. I trust that the partitions list
> + # avoids the ignored devices.
> + for part in self.getDevicesByInstance(PartitionDevice):
> + if part.parents[0].format.type is not None:
> + format = formats.getFormat(None)
If you instead move this down below the next line ("disk =
part.parents[0]") and then do
format = formats.getFormat(None,
device=disk.path,
exists=True)
you will not need the patch to storage/formats/__init__.py and we can
avoid changing the behavior of a base class for one special/corner case.
Dave
> + disk = part.parents[0]
> + log.warning("Automatically corrected fomrat error on %s. "
> + "Changed from %s to %s." %
> + (disk.name, disk.format, format))
> + disk.format = format
> +
> def populate(self):
> """ Locate all storage devices. """
> # each iteration scans any devices that have appeared since the
> diff --git a/storage/formats/__init__.py b/storage/formats/__init__.py
> index e68684c..ac70afa 100644
> --- a/storage/formats/__init__.py
> +++ b/storage/formats/__init__.py
> @@ -269,6 +269,10 @@ class DeviceFormat(object):
> log_method_call(self, device=self.device,
> type=self.type, status=self.status)
>
> + # No action when the interface has not been implemented
> + if self.__class__.__name__== "DeviceFormat":
> + return
> +
> if not self.exists:
> raise FormatSetupError("format has not been created")
>
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]