Commit Graph

61 Commits

Author SHA1 Message Date
Carlos Nihelton d3099728ea
Merge pull request #1534 from CarlosNihelton/fix-none-wslsetupoptions
Fix wslsetupotions being None
2023-01-13 06:56:14 -03:00
Carlos Nihelton 41a2427704
Fix wslsetupotions being None
Recent changes in GUI turned possible to have that field as None,
leading to a crash.
This avoids the crash while preserving the default behavior of
installing the language packs.
2023-01-12 16:57:52 -03:00
Carlos Nihelton 3e04dab619
Interactive wsl_setup no longer writes wsl.conf
That variant would only apply configs if in autoinstall.
There are no more screens available related to those settings in
wsl_setup.
Reconfiguration variant is the only one able to write that file.
2022-12-16 13:28:10 +00:00
Michael Hudson-Doyle 85b3cd0724 switch from loop.create_task to asyncio.create_task
mostly done with sed
2022-11-08 10:08:46 +13:00
Carlos Nihelton 1d9b7449d3
Fixes linting warnings 2022-08-23 10:45:34 -03:00
Carlos Nihelton 20b60d6f98
Connects the new controllers to server and client.
Higher level constructs are now aware of the new endpoint.
2022-08-23 10:45:34 -03:00
Olivier Gayot 91870c8214 meta/status: replace POST_WAIT and POST_RUNNING by generic states
With the plan to call curtin multiple times where each invocation has a
specific purpose, we want the client to have a simple way to monitor the
status of the installation.

Instead of defining new application states for each stage, we will
report the more generic WAITING / RUNNING states in a loop until we get
to the final stages of the installation.

To start with, we are dropping POST_WAIT and POST_RUNNING in favor or
WAITING and RUNNING.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2022-07-22 10:51:01 +02:00
Carlos Nihelton 5a8e2f2835
Allow skipping locale-gen command.
lang-packs post-install hook executes locale-gen.
For certain languages a matrix of locales is generated.
Re-running locale-gen regenerates not only the locale we wanted,
but the whole matrix, causing further delays.

We can save up to 40s (tested on my laptop) by skipping locale-gen if
apt succeeded.

Still useful to run it unconditionally i dry-run since apt won't execute
any post-install hook.
2022-05-31 08:22:41 -03:00
Jean-Baptiste Lallement 9ff8e10ef5 Do not run apt update in dry-run mode
update requires root access to the machine and there is no --simulate
option so skip it in dry-run mode.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2022-04-07 10:54:18 +02:00
Carlos Nihelton d3e2544875
Ensures snap_dir='/' if not better specified.
UDI sets the SNAP env var to '.' for development purposes.

See: https://github.com/canonical/ubuntu-desktop-installer/commit/9eb6f04

It is unlikely that under test or production that env var will
ever by just '.'. On the other hand in dry-run we want this controller
to interpret it as '/' if not properly set, thus discarding the '.'.
2022-04-06 13:25:35 -03:00
Carlos Nihelton ef18564eca
Cleans comments and adresses test.
- Under dry-run apt is run with --simulate.
- That can still fail if a package does not exist, for instance.
- If so, a file will not be written.
2022-03-22 19:41:37 -03:00
Carlos Nihelton c9f90dffb3
Fix stylistic flake8 warnings. 2022-03-22 18:04:37 -03:00
Carlos Nihelton f4a2b916a7
Removes dependency on apt python lib.
It seemed far too much complicated find the proper way to deal with
apt Python library under the snap environment.

Opted for running the system apt command without the LD_*
customisations, similar to what an installer does when chroot into the
taget system.
2022-03-22 17:50:54 -03:00
Carlos Nihelton a950d9e98f
Removes __recomended_language_packs() env argument
That function will not require a custom environment.
Also simplified snap_dir variable assignment.
2022-03-22 17:47:53 -03:00
Carlos Nihelton a36120e0bb
apply_locale() and create_user() accept custom env
This allows for running subprocess outside of the snap environment.
Both functions now receive a custom env without the LD_ related vars.
Renamed _create_user() to create_user() to make explicit that it has the
same semantic level as apply_locale().
2022-03-22 17:46:25 -03:00
Carlos Nihelton e79e4ea9a9
Removes unnecessary check `sourceDirs is None` 2022-02-17 07:07:19 -03:00
Carlos Nihelton a7fd83a384
Fixes missing dir on system_setup integration test
By providing alternative directories to find LC_* locale definitions.
2022-02-16 22:59:05 -03:00
Didier Roche 34b621ee66
Merge pull request #1165 from CarlosNihelton/fix-wsl-snap-env
[SystemSetup] Fix L-S-C behavior under WSL snap environment
2022-01-21 15:56:42 +01:00
Carlos Nihelton 0d30deac7f
Promotes the "--no-checks" to outside of dry-run
Tests in real WSL2 environment revealed that update-locale checks fails but with the "--no-checks" option it updates the locale files accordingly and when the image restarts the locale is correctly set.
2022-01-18 10:18:45 -03:00
Carlos Nihelton a14a143d55 Fix l-s-c behavior under SNAP environment.
- By passing the datadir command line option.
2022-01-17 11:57:04 -03:00
Carlos Nihelton 957d56a52f FIx unbound variable in live run 2022-01-17 10:48:58 -03:00
Olivier Gayot 3d3994f3f3 Fix return type of __recommended_languages_pack
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2022-01-14 13:02:25 +01:00
Carlos Nihelton e429babb03 Fixes potential false positive UID findings
Also, splits part of the configure() method:
-  `__query_uid()` finds the username UID
- `_create_user()` creates the user set in IdentityModel
- Both methods accept a fake root path under dryrun.
2021-12-17 10:35:38 -03:00
Carlos Nihelton b17c3d3db9 Cleanup complete.
- No user setup in wsl.conf
- Shutdown controller creates the launcher-command file
2021-12-14 12:13:00 -03:00
Carlos Nihelton 22a8219cb3 Dryrun won't stop configure controller due C-L-S
- Also noticed a possible unbound var in IOError handler.
2021-11-24 11:35:31 -03:00
Carlos Nihelton a88fcdb8b3 Explicit case for c-l-s failure by returning None 2021-11-22 13:42:45 -03:00
Carlos Nihelton 37758047f2 Improved control over lang packs on integration
- Dryrun should never return empty packages list unless under failure.
- runtests check if the mimic-installed files match the proper language.
2021-11-22 12:16:01 -03:00
Carlos Nihelton 1e6c4472a5 Complementary to 1127 on integration side 2021-11-17 13:26:41 -03:00
Dan Bungert 1eefb7a9e5 check-language-support: fix empty pkg list
The check-language-support on my machine was providing a single empty
newline as output, and the length check isn't catching that as the
resulting packages array has a value of [''].
Drop empty values from the list to avoid a "KeyError: ''" exception.
2021-11-17 07:23:16 -07:00
Carlos Nihelton 377e880cb5 Style improvements. 2021-11-12 16:04:02 -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
Patrick Wu a3fce9f9c2
system_setup: add useradd tests 2021-10-20 00:27:10 +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