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