Commit Graph

4409 Commits

Author SHA1 Message Date
Dan Bungert a67b9d18dc scripts: add kvm-test
Updated version of the kvm-test script shown previously.
2021-11-04 17:32:52 -06:00
Michael Hudson-Doyle 2840ba4bda
Merge pull request #1117 from dbungert/api-less-flaky
test/api: make less flaky
2021-11-05 07:56:13 +13:00
Dan Bungert eb29fa6df4 test/api: make less flaky
This is part of a changeset intended to have the API tests run in
parallel.  I don't consider this ideal - I still see failures when
running tests in parallel - but am providing it now with the intent of
helping people who are seeing api test flakiness even when those tests
are run serially.

* check for socket existence on startup
* lengthen timeouts on shutdown
2021-11-04 10:30:39 -06:00
Carlos Nihelton a264fdafbc Prefill was not working outside of dry-run 2021-11-04 12:01:00 -03:00
Michael Hudson-Doyle d8f3fe48c4
Merge pull request #1108 from mwhudson/command-runner
create helper classes for running install commands
2021-11-04 16:08:07 +13:00
Carlos Nihelton 887d63caf0 System locale manipulation wired into Subiquity.
- We don't have cloud-init in WSL.
- Subiquity must perform any actions to support the choosen locale.
2021-11-03 18:22:42 -03:00
Dan Bungert 46dfba39c7
Merge pull request #1114 from CarlosNihelton/fix_ci_dash_R
Temporary fix for integration tests chroot'ing
2021-11-03 12:59:52 -06: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 3d2be8f66f
Merge pull request #1113 from canonical/fix_server_state_rerun
Fix reruning in production system_setup on WSL
2021-11-03 12:54:06 +01:00
Didier Roche 9ba7e8525d
Merge pull request #1112 from canonical/system_setup_run_async
Don’t block on running commands in configure
2021-11-03 12:53:52 +01:00
Didier Roche 244aa7de81 Fix reruning in production system_setup on WSL
On system_setup, we always run the subiquity server. On WSL, ensure we
wipe the server-state file (no systemd fallback) before starting the
server.

Co-authored-by: Jean-Baptiste Lallement <jean-baptiste@ubuntu.com>
2021-11-03 12:48:53 +01: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 c757adce45
Merge pull request #1110 from canonical/fix_system_setup_summary_hanging
Summary page to show immediately and update once the setup is done
2021-11-03 11:01:27 +01:00
Didier Roche c74f0d464f
Merge pull request #1109 from canonical/optional_progress
Make progress controller optional.
2021-11-03 10:51:42 +01:00
Didier Roche f8e90c894d Summary page to show immediately and update once the setup is done
Shows immediately the summary page. Before, this one was making a GET
request to the server, which was stuck on any long running command in
the controller.
Now, affect correctly the identity in memory and reuse it if needed.

Show a progress message while the configuration is happening and replace
it with a "completed" text on success.

Co-authored-by: Jean-Baptiste Lallement <jean-baptiste@ubuntu.com>
2021-11-03 10:48:03 +01:00
Didier Roche 365922eb35
Merge pull request #1111 from canonical/misc_fixes_for_ci
system_setup: Many fixes for ci
2021-11-03 10:42:39 +01:00
Didier Roche fa5721ce0a Allow waiting on summary page
We previously only went on this page when DONE or in ERROR state. Allow
now to be in any state as we switch to it as soon as possible.

Co-authored-by: Jean-Baptiste Lallement <jean-baptiste@ubuntu.com>
2021-11-03 10:33:38 +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
Didier Roche 7cd65267e9 Fix server socket path in dry-run mode
Co-authored-by: Jean-Baptiste Lallement <jean-baptiste@ubuntu.com>
2021-11-03 10:32:11 +01:00
Didier Roche bbd0121321 Make progress controller optional.
The progress controller was already optional in
subiquity/server/controllers/cmdlist.py. However, there was one missing
place in show_progress(). Use a similar getattr strategy.
2021-11-03 10:20:58 +01:00
Michael Hudson-Doyle 4fa0e22b58 create a helper class for invoking curtin 2021-11-03 15:28:26 +13:00
Michael Hudson-Doyle b8719acc0d add a class to run install commands
Makes not running things in dry-run mode that much cleaner.
2021-11-03 15:28:23 +13:00
Didier Roche a4454c9153
Merge pull request #1106 from dbungert/workflows-jammy
workflows: +jammy
2021-11-02 15:57:01 +01:00
Dan Bungert 4c94430aab
Merge pull request #813 from Forst/merge-config
Add support for merging lists when merging user-data
2021-11-01 13:35:52 -06:00
Dan Bungert 88f88350cb
Merge pull request #1105 from CarlosNihelton/ft-prefill-deeng-85
Make subiquity server supporting prefill install files (for WSL System Setup)
2021-11-01 13:35:13 -06:00
Carlos Nihelton 1a0c3a1ef0 Prefill file checks summarized by os.path.isfile. 2021-11-01 16:20:24 -03:00
Carlos Nihelton af91bb0a6f Removing dead code.
- My bad.
2021-10-29 20:23:16 -03:00
Foster Snowhill 3d31fee2ba
common/resources: fix "ResourceWarning: unclosed file"
When running the unit tests after introducing a new one in the previous commit, the following error appeared:

    subiquity/subiquity/common/resources.py:36: ResourceWarning: unclosed file <_io.TextIOWrapper name='./users-and-groups' mode='r' encoding='UTF-8'>
      groups = open(users_and_groups_path).read().split()
    ResourceWarning: Enable tracemalloc to get the object allocation traceback

This commit replaces a bare open() call with a context manager.
2021-10-30 00:37:31 +02:00
Foster Snowhill 2ef5724b30
models/test_subiquity: add test for cloud-init list merging
The test case validates the following:

* Main user from subiquity config + secondary users from cloud-init userdata are merged into the same list and in the
correct order
* "users" section in cloud-init userdata is still present even if the main user is not defined
2021-10-30 00:37:31 +02:00
Foster Snowhill dbf0ca2d50
models/subiquity: add support for merging lists when merging user-data
The current merge_config() function from curtin does not merge lists in any way, but overwrites them. This is generally
a good idea, but in case of user-data we may want to merge lists instead.

One of the possible use cases is defining the main user in the "identity" section, and some extra users in the
user-data "users" section.

Before, the user defined in the "identity" section overwrote any users defined in user-data. With this change, the user
list can now be automatically merged, with user-data having lower priority than autoinstall configuration.

An example of such a configuration:

    #cloud-config
    autoinstall:
      version: 1
      ...
      identity:
        hostname: testname
        realname: Real Name
        username: someuser
        password: "$6$..."
      user-data:
        users:
          - name: extrauser
            gecos: Extra User
            ssh_authorized_keys:
              - "ssh-ed25519 AAAA..."
            shell: /bin/bash
2021-10-30 00:37:31 +02: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
Dan Bungert c30cf2d3d3 workflows: +jammy 2021-10-28 18:21:09 -06:00
Carlos Nihelton 10f209ad81 Linting issues fixed. 2021-10-28 15:54:07 -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
Carlos Nihelton 41a2a554ef Server CLI option '--prefill' added.
- TUI logs the args in consistency to what's been done to Flutter UI.
- Server starting code checks if prefill file exists.
2021-10-28 15:51:41 -03:00
Carlos Nihelton 7179bfb4fc Sample files for testing
Those files simulate the information generated by WSL launcher.
2021-10-28 14:16:28 -03:00
Dan Bungert f21986be88
Merge pull request #1104 from CarlosNihelton/ft-prefill-p1
LocaleController.start() check model language
2021-10-28 11:12:18 -06:00
Carlos Nihelton 08267b59de Over indentation and long line fixed (lint). 2021-10-28 09:19:05 -03:00
Carlos Nihelton 4d2117626c Corrected (is None) + added interactive() check. 2021-10-26 18:26:26 -03:00
Carlos Nihelton 9f52bd92bf LocaleController.start() check model language
- This is just a preparation for a feature which affects system_setup.
- The proposed change enables locale controller to respect the model
selected_language if initialized before LocaleController.start().
- This will be used in the feature which will allow prefilling
  installation UI screens during WSL installation with information
  acquired from Windows environment.
2021-10-26 15:08:04 -03:00
Didier Roche 8b996f9ba5
Merge pull request #1100 from canonical/wsl_oobe_adduser_tests
WSL OOBE: add `useradd` tests
2021-10-20 09:33:46 +02:00
Dan Bungert afe31182d1
Merge pull request #1103 from dbungert/test-warnings
Address several test warnings
2021-10-19 10:34:10 -06:00
Dan Bungert 37f855562c
Merge pull request #1102 from dbungert/schema-tz
Remove timezones from schema enforcement
2021-10-19 10:28:11 -06:00
Patrick Wu a3fce9f9c2
system_setup: add useradd tests 2021-10-20 00:27:10 +08:00
Dan Bungert 8da3df2cd2 schema: remove timezones, and tz schema check 2021-10-19 10:06:01 -06:00
Dan Bungert c37535c530 timezone: remove possible tzs from schema 2021-10-19 10:06:01 -06:00
Dan Bungert 9818ca9717
Merge pull request #1101 from dbungert/autoinstall-no-disk
filesystem: better autoinstall error when no disk
2021-10-19 10:03:05 -06:00
Dan Bungert fdc10f19be
Merge pull request #1097 from dbungert/guided-lvm-sizes
filesystem: guided_lvm code/comment consistency
2021-10-19 09:39:40 -06:00
Didier Roche ff953cb341
Merge pull request #1099 from canonical/wsl_oobe_shutdown_testing
WSL OOBE: shutdown/reboot tests
2021-10-18 12:24:42 +02:00