Revision 677a6451

b/doc/design-2.2.rst
686 686
Finally we'll look into namespaces and containers, although that might
687 687
slip after the 2.2 release.
688 688

  
689
New OS states
690
-------------
691

  
692
Separate from the OS external changes, described below, we'll add some
693
internal changes to the OS.
694

  
695
Current state and shortcomings
696
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
697

  
698
There are two issues related to the handling of the OSes.
699

  
700
First, it's impossible to disable an OS for new instances, since that
701
will also break reinstallations and renames of existing instances. To
702
phase out an OS definition, without actually having to modify the OS
703
scripts, it would be ideal to be able to restrict new installations but
704
keep the rest of the functionality available.
705

  
706
Second, ``gnt-instance reinstall --select-os`` shows all the OSes
707
available on the clusters. Some OSes might exist only for debugging and
708
diagnose, and not for end-user availability. For this, it would be
709
useful to "hide" a set of OSes, but keep it otherwise functional.
710

  
711
Proposed changes
712
~~~~~~~~~~~~~~~~
713

  
714
Two new cluster-level attributes will be added, holding the list of OSes
715
hidden from the user and respectively the list of OSes which are
716
blacklisted from new installations.
717

  
718
These lists will be modifiable via ``gnt-os modify`` (implemented via
719
``OpSetClusterParams``), such that even not-yet-existing OSes can be
720
preseeded into a given state.
721

  
722
For the hidden OSes, they are fully functional except that they are not
723
returned in the default OS list (as computed via ``OpDiagnoseOS``),
724
unless the hidden state is requested.
725

  
726
For the blacklisted OSes, they are also not shown (unless the
727
blacklisted state is requested), and they are also prevented from
728
installation via ``OpCreateInstance`` (in create mode).
729

  
730
Both these attributes are per-OS, not per-variant. Thus they apply to
731
all of an OS' variants, and it's impossible to blacklist or hide just
732
one variant. Further improvements might allow a given OS variant to be
733
blacklisted, as opposed to whole OSes.
689 734

  
690 735
External interface changes
691 736
==========================

Also available in: Unified diff