Bug 2231180

Summary: webUI could discover storage issues earlier: no BIOS boot partition, not enough partitions...
Product: [Fedora] Fedora Reporter: Adam Williamson <awilliam>
Component: anaconda-webuiAssignee: Katerina Koukiou <kkoukiou>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: 39CC: anaconda-maint, jkonecny, kkoukiou, mkolman, rvykydal, vslavik, w
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-11-08 16:55:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2231339    

Description Adam Williamson 2023-08-10 21:13:43 UTC
I had a play around with the web UI interface today, particularly the storage part. One thing I notice: it could be much smarter about detecting storage problems.

1. It will let you into the "Mount point assignment" screen even if you have only *one* partition, but it is impossible to complete an install with one partition. It *knows* two are required - the UI lists /boot and / as "required" - so why let you into the screen at all? It could check that there are *enough* formatted partitions, not just *at least one* formatted partition.

2. It only tells you about missing non-mounted partitions very late. e.g. if you don't have a BIOS boot partition, you cannot complete a BIOS install, but the installer will let you go through "Mount point assignment" and assign your /boot and / partitions, *then* it tells you that you need a BIOS boot partition. It could warn you about this much earlier, either as soon as you enter the "Mount point assignment" screen, or by greying that option out with an explanation as it does if you don't have any partitions.

Reproducible: Always

Comment 1 Adam Williamson 2023-08-10 21:32:56 UTC
See also https://bugzilla.redhat.com/show_bug.cgi?id=2231182 - blivet-gui on the Workstation live cannot actually create a BIOS Boot partition at all, so you cannot create an installable layout on a BIOS system using pre-installed GUI tools.

Comment 2 Radek Vykydal 2024-01-26 09:23:46 UTC
(In reply to Adam Williamson from comment #0)
> I had a play around with the web UI interface today, particularly the
> storage part. One thing I notice: it could be much smarter about detecting
> storage problems.
> 
> 1. It will let you into the "Mount point assignment" screen even if you have
> only *one* partition, but it is impossible to complete an install with one
> partition. It *knows* two are required - the UI lists /boot and / as
> "required" - so why let you into the screen at all? It could check that
> there are *enough* formatted partitions, not just *at least one* formatted
> partition.

This will get mitigated by making /boot partition only recommended (https://github.com/rhinstaller/anaconda-webui/pull/95) at least in case of biosboot where only single partition (for /) is required (leaving aside a a special check for biosboot partition - the issue 2. below). But for efi we still require 2 partitions. We should be able to add some earlier check.
Also, the integrated blivet-storage screen that should replace blivet-gui (https://github.com/rhinstaller/anaconda-webui/pull/72) will present hints about required partitions, so this will also help to have everything ready before going to Mount point assignment. But we still want the early check for example for the partitions created via terminal.
 
> 2. It only tells you about missing non-mounted partitions very late. e.g. if
> you don't have a BIOS boot partition, you cannot complete a BIOS install,
> but the installer will let you go through "Mount point assignment" and
> assign your /boot and / partitions, *then* it tells you that you need a BIOS
> boot partition. It could warn you about this much earlier, either as soon as
> you enter the "Mount point assignment" screen, or by greying that option out
> with an explanation as it does if you don't have any partitions.

The latter should be doable, we need to propagate the requirement/constraint from Anaconda:
https://github.com/rhinstaller/anaconda/pull/5425
https://github.com/rhinstaller/anaconda-webui/pull/140

Comment 3 Radek Vykydal 2024-01-26 10:46:01 UTC
(In reply to Radek Vykydal from comment #2)
> (In reply to Adam Williamson from comment #0)
> > I had a play around with the web UI interface today, particularly the
> > storage part. One thing I notice: it could be much smarter about detecting
> > storage problems.
> > 
> > 1. It will let you into the "Mount point assignment" screen even if you have
> > only *one* partition, but it is impossible to complete an install with one
> > partition. It *knows* two are required - the UI lists /boot and / as
> > "required" - so why let you into the screen at all? It could check that
> > there are *enough* formatted partitions, not just *at least one* formatted
> > partition.
> 
> This will get mitigated by making /boot partition only recommended
> (https://github.com/rhinstaller/anaconda-webui/pull/95) at least in case of
> biosboot where only single partition (for /) is required (leaving aside a a
> special check for biosboot partition - the issue 2. below). But for efi we
> still require 2 partitions. We should be able to add some earlier check.
> Also, the integrated blivet-storage screen that should replace blivet-gui
> (https://github.com/rhinstaller/anaconda-webui/pull/72) will present hints
> about required partitions, so this will also help to have everything ready
> before going to Mount point assignment. But we still want the early check
> for example for the partitions created via terminal.

Thinking of it more, maybe having an early warning for not enough usable devices before entering the screen is not so good idea. To inform the user which mount points are required (eg /, /boot/efi) we need either let him enter the screen where it is pretty visible (as a list of prefiled mount point assignments) and go back (which is not so bad experience I think), or present the information already on the method selection screen which is not very suitable for that I think [1].
Combined with the information present in cockpit-storage UI (replacement of python-blivet), preview here: https://rvykydal.fedorapeople.org/webui/cockpit-storage/cockpit-storage-hint-preview.png, I am inclined to leave the UI as is in this aspect (1.) and focus on the issue 2.

[1] Maybe by a message like "Not enough usable devices on the selected disks for the required partitions (/boot/efi, /)
This could handle even biosboot case:
"Not enough usable devices on the selected disks for the required partitions (biosboot, /)".
The message can be certainly improved but I still don't like the approach compared to what user sees in the assignment screen.

Comment 5 Aoife Moloney 2024-11-08 11:01:35 UTC
This message is a reminder that Fedora Linux 39 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 39 on 2024-11-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '39'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 39 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 6 Adam Williamson 2024-11-08 16:55:02 UTC
well, the PR intended to fix this got merged, so let's call it fixed. I'll try and see what the state of this is with current web UI later.