Commit Graph

122 Commits

Author SHA1 Message Date
Carlos Nihelton 4bb8ee3b3b SystemSetupModel now acks the variant at start.
- Without this change, wsl_configuration variant is not reckon without
  client_variant.POST.
- Issue and suggestions of fixes originally reported by jpnurmi.
2021-11-11 09:22:10 -03:00
Carlos Nihelton a1fd0615f8 Slipped on the linter. 2021-11-09 18:34:58 -03:00
Carlos Nihelton 409ac4157a From weird splits into regex 2021-11-09 18:15:59 -03:00
Carlos Nihelton 63d565b89c Write text files instead of wget 2021-11-09 18:15:20 -03:00
Carlos Nihelton 4e050ecddb Style improvements. 2021-11-09 09:36:10 -03:00
Carlos Nihelton f9d3877feb Corrected list type hint for Python 3.8.
- CI failed on Focal due Python version unable to understand list[str].
2021-11-08 19:03:10 -03:00
Carlos Nihelton eb6bd2d263 Smaller functions, early returns and funny mocking 2021-11-08 13:11:30 -03:00
Carlos Nihelton 6be4aea138 l-s-c as dep on Makefile, avoid raising exceptions
- And clear .subiquity/var/cache
2021-11-05 18:09:15 -03:00
Carlos Nihelton 5f9f2122ce System locale manipulation wired into Subiquity.
- We don't have cloud-init in WSL.
    - Subiquity must perform any actions to support the choosen locale.
    - l-s-c package added as dependency.
2021-11-05 17:29:33 -03:00
Carlos Nihelton 106b8c758e Temporary fix for integration tests chroot'ing
useradd -R does chroot.
useradd -P doesn't.
2021-11-03 15:53:02 -03:00
Didier Roche 277fe55599 Don’t block on running commands in configure
Those commands needs to be async to be able to still answer GET/POST
request while configure is running.
This allows showing up the summary page immediately.

Co-authored-by: Jean-Baptiste Lallement <jean-baptiste@ubuntu.com>
2021-11-03 12:35:25 +01:00
Didier Roche f762f41a5b Don’t override syslog dir to prevent printing on TUI.
Co-authored-by: Jean-Baptiste Lallement <jean-baptiste@ubuntu.com>
2021-11-03 10:32:57 +01:00
Carlos Nihelton af91bb0a6f Removing dead code.
- My bad.
2021-10-29 20:23:16 -03:00
Carlos Nihelton 4c0ad44738 Moving logic form SystemSetupModel to controllers.
- In order to stay confined into system_setup,
WSLLocaleController had to be recriated.
2021-10-29 12:53:06 -03:00
Carlos Nihelton 2125acffe6 WSL Locale controller is not needed anymore.
- With 'prefill' working, calling Powershell to find Windows locale
is not required anymore.
- Since `f21986be` subiquity's default locale controller respects
  mode.selected_language initialization.
2021-10-28 15:52:24 -03:00
Carlos Nihelton 168a5c13a0 SystemSetupModel handles 'prefill' data
- Init method changed to accept that data, which could be None.
- If valid, user Identity and Locale are prepopulated.
- Server parses the YAML and send valid info (or None) to the Model.
2021-10-28 15:52:24 -03:00
Patrick Wu a3fce9f9c2
system_setup: add useradd tests 2021-10-20 00:27:10 +08:00
Patrick Wu ec04a6833a
system_setup: shutdown/reboot tests 2021-10-18 17:15:45 +08:00
Didier Roche 31fa83e79e
Merge pull request #1078 from canonical/wsl_oobe_deeng_83
DEENG-83 - Implement a reboot in shutdown to restart WSL instances to take new configuration in effect.
2021-10-12 18:13:07 +02:00
Patrick Wu 1d19dfb772
system_setup: implement shutdown/reboot action 2021-10-12 23:20:05 +08:00
Patrick Wu 8559d7fe7d modulizing the usergroup retriving 2021-10-12 10:07:45 +08:00
Patrick Wu 271b72b41a
system_setup: setup user with wsl.conf 2021-10-11 15:33:46 +08:00
Patrick Wu 7ae8e108a6
system_setup: include full autoinstall system 2021-10-11 10:20:18 +08:00
Patrick Wu 1c111c764c
system_setup: write files to .subiquity when dryrun 2021-10-07 16:25:07 +08:00
Patrick Wu c934268813 system_setup: changes and fixes
1. rebase with main and update autoinstall-system-setup.yml
2. provide a more unified indent style
3. update get_userandgroups() to the dropped one
4. fix the problematic os action
5. simply asignments
6. assign default_loader a default value
7. provide a type-to-file dict in wsl_conf
8. provide stderr info when providing error in creating user
9. update schema and example files
2021-10-06 22:13:15 +08:00
Patrick Wu 1a7274dbba system_setup: unify api names and simply WSLconfig class into function 2021-10-06 22:13:15 +08:00
Patrick Wu 5c0e64e78a system_setup: address the run_command fail issue 2021-10-06 22:13:15 +08:00
Patrick Wu 9fbff87fe1 system_setup: changes to the get-usersandgroups 2021-10-06 22:13:15 +08:00
Patrick Wu 32a62748c9 system_setup: initial redesign of generic config handler
Also have to change the logic for default loader
2021-10-06 22:13:15 +08:00
Patrick Wu f31e252436 system_setup: reduce code duplication in getting default value 2021-10-06 22:13:15 +08:00
Patrick Wu 225cb1bd37 system_setup: fixes for after rebasing
1. add extra logs
2. improve the answers file
3. await the self.configured in wslconf API
2021-10-06 22:13:15 +08:00
Patrick Wu 032412a938 system_setup: provide configuration calls 2021-10-06 22:13:15 +08:00
Patrick Wu a211689e08 system_setup: update client_variant to variant 2021-10-06 22:13:15 +08:00
Patrick Wu 0a0c53a61b system_setup: move all write file actions to configure controller
This completes 5. Move all “Commits/Write to file” in the configure controller.
2021-10-06 22:13:15 +08:00
Jean-Baptiste Lallement 6cc8c6169b Fix crash with autoinstall on non-systemd env
On WSL and any system without systemd the server crashes becauses
the syslog id is always set (and never None) and systemd cat cannot
connect to the journal.
We cant set the id to None because the API expects a string, so the
check "is not None" is always true.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-10-04 13:09:24 -07:00
Jean-Baptiste Lallement 44b0b66531 Block shutdown controller on installation done
A race existed due to ~he shutdown controller not waiting for the
install task to be complete.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-28 09:32:39 +02:00
Jean-Baptiste Lallement fecd1cc68c Remove empty "required" in schema
There are no required for WSLConf*, remove it instead of using empty
lists.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-28 09:32:39 +02:00
Jean-Baptiste Lallement 4966173d6c Test system setup autoinstall
It also adds an argument --ignore-tz to the schema comparison test to
not fail on system where the schema has no TZ like WSL.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-28 09:32:39 +02:00
Jean-Baptiste Lallement f13bb1121f Fix: use right identity controller for system setup
Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-28 09:26:10 +02:00
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 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
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
Patrick Wu 1aac580dfd system_setup: update the detection logic 2021-09-20 21:58:16 +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
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 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 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
Jinming Wu, Patrick d89d9c3f7d system_setup: prevent loading unnecessary library 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 55fdfc1df0 system_setup: fix a small bug in api calling 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 a97cc28ae6 Reconfigure mode: WIP 2021-08-31 15:52:03 +02:00
Didier Roche f00d1d659e Add missing copyrights 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