Commit Graph

169 Commits

Author SHA1 Message Date
Patrick Wu 65530cf3b3
system_setup: additional Base/Avanced changes and fixes
the fixes includes:
1. renamed helpers.py to wsl_utils.py
2. update several log strings
3. renamed LocaleController to WSLLocaleController
4. improving logic and warnings in get_windows_locale()
5. move config_ref to wsl_utils.py
5. fixes bool_converter()
6. fixes locale configured() getting stuck
2021-09-27 20:36:25 +08:00
Michael Hudson-Doyle 3b6436434c remove server-state file when starting up dry-run system_setup 2021-09-27 22:10:07 +13:00
Michael Hudson-Doyle 2f9c22961e
Merge pull request #1042 from canonical/wsl_oobe_auto_reconf_mode
DE-98/DE-99 - system_setup: Wsl oobe auto reconf mode
2021-09-24 14:26:23 +12:00
Patrick Wu ee3a3df893
sustem_setup: fixes according to Michael's feedback 2021-09-23 15:10:39 +08:00
Didier Roche fa9957d27d
Merge pull request #1055 from canonical/wsl_oobe_no_dry_mode
WSL OOBE - no dry mode
2021-09-21 11:49:38 +02:00
Jean-Baptiste Lallement 0a5b8fcf46 Do not wait on cloud-init on system without cloud-init
On systems where cloud-init cannot run (ie WSL) we where waiting forever
on cloud-init

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-20 19:30:36 +02:00
Jean-Baptiste Lallement eee1e9de6d Start server if not socket activated
On systems without socket activation enabled, the client starts the
server manually.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-20 19:29:10 +02:00
Patrick Wu 365769c365 system_setup: update Summary code 2021-09-20 21:58:16 +08:00
Patrick Wu 1aac580dfd system_setup: update the detection logic 2021-09-20 21:58:16 +08:00
Patrick Wu ceae8e9d19 system_setup: fixes according to the feedback
1. update client_variant comment
2. remove Welcome controller
3. remove a TODO
2021-09-20 19:54:27 +08:00
Patrick Wu 6303b5d6c5
system_setup: proper wsl_configuration UI setup
This fixes In wsl_configuration mode the UI shows ”base”/”advanced” screens.
2021-09-20 19:54:14 +08:00
Patrick Wu 018185af49 system_setup: system setup API for Flutter UI part
This completes TODO "provide an API for this for the flutter UI to know
about it"

API is at /meta/client_variant with GET method, returns a string
2021-09-20 19:39:20 +08:00
Patrick Wu 78221ebf25 system setup: auto reconf mode general completion
Mostly complete the second task except the API for GUI:
Implement an API in the server to know if we are in reconfigure or setup mode based on existing UID user >= 1000. Fetch that API from the client and set the variant to wsl_setup or wsl_configuration.
2021-09-20 19:39:20 +08:00
Michael Hudson-Doyle 9051a33c4f make SubiquityController.configured async 2021-09-16 20:59:01 +12:00
Michael Hudson-Doyle aa9c945674 Have SubiquityController.configured broadcast rather than set an event
This should make it cleaner to implement interdependencies between
controllers, like in-progress installation source selection needs to
know about locale changes.
2021-09-16 20:59:01 +12:00
Jean-Baptiste Lallement 717cb5b541 system-setup: finished removing duplicated fields
There was some remaining duplicated fields in the controllers and models
between base and advanced configuration, which made the code crash.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-10 12:07:55 +02:00
Patrick Wu e661b08905 system_setup: no longer inherits 2021-09-09 16:23:47 -06:00
Patrick Wu 43497a99cb system setup: reduce WSLConfigurationAdvanced size
by inheriting WSLConfigurationBase
2021-09-09 16:23:47 -06:00
Jean-Baptiste Lallement b47362ea2a Fixed linting
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-03 10:18:18 +02:00
Jean-Baptiste Lallement 46eb52c9cb Split system_identity controller from subiquity one
There is little inherited from it, let’s split them.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-03 09:52:23 +02:00
Jean-Baptiste Lallement 039201949d Remove uneeded confirmation handling in system_setup
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-03 09:52:08 +02:00
Jean-Baptiste Lallement ea29709573 Fix typo and punctuation
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-03 09:45:37 +02:00
Jean-Baptiste Lallement 3cdaf76153 Mark as TODO adding a helper for future refactoring
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-03 09:44:51 +02:00
Jean-Baptiste Lallement 2a36e30812 Remove set conversion and explicitely init it
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-03 09:39:32 +02:00
Jean-Baptiste Lallement 4c83e4afde Remove duplication in server execution code
Make command line and dry-run command line a class member.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-03 09:38:50 +02:00
Jean-Baptiste Lallement ab161250e1 Removed the progress view.
On non systemd systems (ie WSL) the progress view is always empty. Thus
this view is removed and the summary (formerly overview) view becomes
the last page of the setup with the reboot button. This button is
displayed dynamically when setup is complete.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-01 19:06:50 +02:00
Jean-Baptiste Lallement 5b2e78a8a1 Ensure we always exit the server
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-01 17:42:19 +02:00
Jean-Baptiste Lallement 805a84ab76 Linter fixes
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-01 11:02:25 +02:00
Jean-Baptiste Lallement 5d318b2fbb Rebase on new subiquity model.
Variants are set at the application level and impact the models.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-01 10:55:06 +02:00
Jean-Baptiste Lallement 3eb5231fca Only proceed for installation when ready.
Wait for models to be configured before proceeding with installation.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-01 10:48:44 +02:00
Jean-Baptiste Lallement da5c83d4f1 Set supported and current variant for WSL
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-01 10:44:37 +02:00
Jean-Baptiste Lallement 9b67591335 More linting fixes
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-08-31 15:56:08 +02:00
Jean-Baptiste Lallement 3044a1fc11 Update answer file with renamed controllers
WSL configuration controllers have been renamed, the answer file must be
updated accordingly

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement dcab9c2e6e Removal of --reconfigure for server
Load all the server controller independently whether it is in first
configuration or reconfiguration mode.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement 518cff3d3b Fixed linting 2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement ba6ce20d64 Do not use a file to share user name
Instead retrieve it from the server and store it in memory.
2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement 41945cb84c Renamed configuration pages
In order to make naming more explicit renamed wslconf1 to wslconfbase
and wslconf2 to wslconfadvanced.
2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement 57a2212c7b List of TODOs
This is the list of identified TODOs for the OOBE.
2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement f41f44e9d6 Misc cleanups
* Rename/add debug with correct naming
* Remove uneeded and unused hostname in identity
* Add automatic answer support to overview
2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement 688af116f5 Added shutdown and configure controller for the WSL server
This is the WSL implementation of the Install and Shutdown controllers
that inherit from the base controllers.
2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement 8c3f0bc264 Inherit from base server
Inherit from the base server instead of reimplementing it completely
and override the methods needed for WSL. This removes lots of code duplication.
2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick eae46aa50a system_setup: fixes for merge (WIP) 2021-08-31 15:52:03 +02:00
Michael Hudson-Doyle 09e8bbb6dc update stuff for my last merge 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick eec135af26 system_setup: Pre fixes 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 6ba608b8f7 Use inheritance for IdentityForm
The previous composition version had some flaws due to multiple
instances of a given Field with different addresses when reinstalled in
the parent class. This caused the field validation validate_ to not work
as it was not taken the expected referenced values.

Instead of duplicating the code, we use an inherited version, taking and
overriding only our desired fields.

We still need to derive WSLIdentityView from the base class instead of
IdentityView, as this is what is instantiating the form.
(WSLIdentityForm instead of IdentityForm).

Co-authored-by: Jean-Baptiste Lallement <jean-baptiste@ubuntu.com>
2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick d217db86a2 Revert "system_setup: identity tui validation fix"
This reverts commit 2f3dc90b7e.
2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick f42f1d133e Reconfigure mode: WIP 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick d89d9c3f7d system_setup: prevent loading unnecessary library 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 0ad5152069 system_setup: initial Progress fix 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 3dccdddf39 system_setup: no longer require sudo for dryrun 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick aff93e5cda system_setup: PEP8 linting fixes 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 300161e0ea system_setup: Pre fixes 2021-08-31 15:52:03 +02:00
Didier Roche 1e52ab6374 Use inheritance for IdentityForm
The previous composition version had some flaws due to multiple
instances of a given Field with different addresses when reinstalled in
the parent class. This caused the field validation validate_ to not work
as it was not taken the expected referenced values.

Instead of duplicating the code, we use an inherited version, taking and
overriding only our desired fields.

We still need to derive WSLIdentityView from the base class instead of
IdentityView, as this is what is instantiating the form.
(WSLIdentityForm instead of IdentityForm).

Co-authored-by: Jean-Baptiste Lallement <jean-baptiste@ubuntu.com>
2021-08-31 15:52:03 +02:00
Didier Roche 74e5c47c25 Revert "system_setup: identity tui validation fix"
This reverts commit 2f3dc90b7e.
2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 55fdfc1df0 system_setup: fix a small bug in api calling 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 9745fcc05f system_setup: identity tui validation fix 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 6bb86645ea system_setup: dryrun username 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 3536f0517a system_setup: attempt to fix the bug 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick cc7a199371 Reconfigure mode: WIP 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick a97cc28ae6 Reconfigure mode: WIP 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 6cbe3e8a36 Generic Fixes 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 6e92218006 TUI: Add initial Overview Support 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 4672a1b772 TUI: Intergration Page 2021-08-31 15:52:03 +02:00
Didier Roche f00d1d659e Add missing copyrights 2021-08-31 15:52:03 +02:00
Didier Roche 87002bddeb SystemSetupClient to control system setup tui
This class declares the controllers we want to use and consequently,
which views in which orders we present to the user.
Reuse the Welcome controller from subiquity by reimporting it in
system_setup.client.controllers.
Redefine the restart functionality to not depends on snap.
2021-08-31 15:52:03 +02:00
Didier Roche d8e0026df5 WSL identity controller and view
This controller and view inherits from the subiquity identity, but
remove the "hostname" field. We are using composition over inheritance
for identityController as the UI builder is basing on the order of
declared elements as class variable and we can’t override that in the
metaclass when inheriting.
2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 84774c5dc4 WSL User API reimplementation 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick ef2be951b2 WSLConfiguration2 API complete 2021-08-31 15:52:03 +02:00
Jinming Wu, Patrick 339e66a2c3 system_setup: initial setup 2021-08-31 15:52:03 +02:00