This uses a kind of crazy approach where the hook script we get curtin
to run makes an API call to the server process to do the actual
configuration. I can't work out if this is genius or insane or both but
anyway it is only a step on to the way to doing the apt configuration
before we start curtin so it won't be around for long.
- Useful for develop env.
- Mimics the CI while avoiding downloading images all the time.
- Instance names change from 'tester' to the Ubuntu release adjective.
- lxc will only download if there is no local instance with that name.
- Useful for preserving matrix build instances.
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
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>
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>
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>
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>
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.