A tool for automating the installation of the Microsoft Windows operating system on various device platforms.
Home |
---|
About |
Setup Guide |
Glazier Configurations |
└─New Actions |
└─Config Layout |
YAML Files |
└─YAML Specs |
└─Chooser UI |
└─YAML Tips |
Python |
└─Installer Actions |
└─Policy Modules |
└─Error Handling |
└─Config Handlers |
Mailing List 💌 |
File A Bug 🐛 |
Hosted on GitHub Pages — Theme by orderedlist
The Chooser setup UI is an enhancement to autobuild which allows Glazier to present the user with a dynamic list of options as part of the installation process.
When the configuration handler code reaches a ‘choice’ option, that element is stored in buildinfo as pending. The system will continue to accumulate pending options until the config calls an action to display the UI.
The UI display action retrieves all collected options and passes them to a fresh UI instance. The Chooser UI is responsible for presenting the options and collecting any responses from the user.
The Chooser dynamically populates the visible UI from top to bottom. Each field is contained in a frame, allowing the overall structure to flow downwards, even though different fields may contain more or fewer individual elements. If the user does not engage the UI, the responses are still populated using the default selections.
Once the UI exits, the Chooser will make the responses available via a
dictionary to the caller. The resulting “response” values are returned to
buildinfo where they will be saved in state. These same values (dynamically
named as USER_*
) can be referenced via pinning at any point later on in the
build.
The Glazer YAML specification allows Chooser options to be encoded as part of the build config files. Glazier compiles and translates these options into an option file for the chooser. Leveraging the build YAMLs allows for all the same pinning and templating capabilities as the other commands, meaning Chooser options can be targeted at images on the fly based on any available buildinfo data.
The top level YAML command choice indicates a chooser option. Each choice consists of several required sub-fields:
name
Name designates the option’s internal name, and should be unique. Buildinfo will
aggregate all options as USER_[name]
where name is determined by this field.
type
Type indicates the UI field type to be shown (see below).
prompt
Prompt is the text label shown in the UI next to the interactive fields (ex: System Locale).
options
An ordered list of dictionaries containing all options to be presented. Each dictionary in the list should have the following sub-fields.
radio_menu
The radio_menu field provides a multiple choice drop-down menu. The menu allows one and only one selection at a time from the available options.
choice:
name: system_locale
type: radio_menu
prompt: 'System Locale'
options: [
{label: 'de-de', value: 'de-de', tip: ''},
{label: 'en-gb', value: 'en-gb', tip: ''},
{label: 'en-us', value: 'en-us', tip: '', default: True},
...
]
toggle
A simple pair of on/off (or true/false) radio buttons.
choice:
name: puppet_enable
type: toggle
prompt: 'Enable Puppet'
options: [
{label: 'False', value: False, tip: '', default: True},
{label: 'True', value: True, tip: ''},
]