Don't allow going into the storage spoke until it's ready
Attached are patches that make yet more use of threads to allow marking the
storage spoke selector as insensitive until storageInitialize is done. Once
it's done, the spoke selector is marked as sensitive via a callback passed
through in a kind of messy fashion.
I know at least Will is going to object to this approach, based on talks
in #anaconda. He'd prefer that I set it up so you can immediately go into
the storage spoke and devices are shown as they are detected. I think that's
a good idea, but I have chosen to not do so for the following reasons:
(1) It would require changes to storageInitialize and DeviceTree that I don't
believe we have time or manpower for right now.
(1a) We can always go back and add this kind of fancier, on-demand behavior
later. I don't think i've done anything to prevent that.
(2) Storage probing is done in multiple passes and builds up as a tree. I think
we'd run into a problem where component devices of more complicated structures
are shown as intermediates. I'm thinking the drives that are components of a
multipath or RAID set here.
(3) I had more reasons, but I cannot recall them.
Anyway, I expect very few people to ever see this behavior no matter how fancy
it is. Storage probing starts very early on, even before the UI is up, which
provides a lot of time for probing the handful of local disks that makes up
the vast majority of users. Much fancier setups will definitely take longer,
and I believe they'll be fine with waiting a bit.
I must admit I'm a little worried about this expanded use of threads, but I
can't see anything beyond storage (and perhaps install source, which needs to
know storage info) needing to do this. I would at least like to discourage
use of the stuff in these patches.
If everyone thinks I'm not completely crazy here, I'll work on making the
Anaconda-devel-list mailing list