Commit Graph

6487 Commits

Author SHA1 Message Date
Olivier Gayot 3ac1810b0c ssh: use view-helpers for detecting the confirmation key overlay
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot 5861968e80 view-helpers: add function waiting for an overlay to be displayed
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot 0f3c53c283 ssh: drop redundant use of context when importing key
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot f5ecece153 ssh: have a button to show a key
When selecting a SSH identity, the user can open a dialog showing the
contents of the key.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot feaf0601d3 ssh: add identity table with ability to remove key
A new table shows all the SSH identities/keys that are currently
imported. The user can select one and delete it from the list if he
wants to.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 14:08:59 +01:00
Olivier Gayot 446bf3814d answers: move ssh-import-id directive to SSH section
When running answers-based automation, the SSH controller looks into
more than one section to find ssh-import-id directives.

If the "SSH" section exists, then it is where the ssh-import-id
directives must be placed. However, if the section does not exist, the
controller will also look for ssh-import-id directives in the "Identity"
section.

The answers.yaml file used this special mechanism. This is fine.
However, if one adds a SSH section to customize other settings (e.g.,
install_server, pwauth), then the ssh-import-id directives in the
Identity section suddently get ignored ; which is confusing and looks
as if there is a bug.

Let's move ssh-import-id directives to the SSH section.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-12 13:59:23 +01:00
Olivier Gayot 81ed199e17 ssh: dissociate key import from form submission
Previously, on the SSH screen, the ability to enable/disable the SSH
server and the ability to import a SSH identity were both covered by a
single form. Therefore, there was no way to import multiple identities.

This change adds a button "Import SSH key" which opens a new form to
import an identity. The button can be pressed multiple times and the
resulting identities are all submitted when the user clicks on Done.

Furthermore, navigating back to the SSH screen does not "forget" already
imported identities.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-02-08 17:53:14 +01:00
Dan Bungert 601650b65d
Merge pull request #1896 from dbungert/workflow-drop-focal
workflows: -focal
2024-01-25 14:25:02 -07:00
Dan Bungert 994097ef1f workflows: -focal 2024-01-25 14:07:09 -07:00
Olivier Gayot 9d4bd5708c
Merge pull request #1893 from ogayot/ssh-fixes
Fix empty list of authorized_keys in /ssh endpoint
2024-01-25 17:35:30 +01:00
Olivier Gayot 2692173a18 ssh: drop unused variable from model
The SSHModel contained a ssh_import_id member variable. According to the
comment, it was originally meant to store meta-data about a SSH key ;
and was supposed to allow showing some sort of info back in the SSH view
if the user decides to go back.

I suspect that this variable has been unused for a long time.
Furthermore, it can only hold information about a single SSH key and we
support multiple keys..

Let's get rid of it.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-01-24 18:47:29 +01:00
Olivier Gayot b1cdd74775 ssh: pass the autorized_keys in GET /ssh
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-01-24 18:47:29 +01:00
Chris Peterson 5a301bcdd6
Merge pull request #1889 from Chris-Peterson444/update-reame-with-docs
Update README with hosted documentation
2024-01-24 07:25:00 -08:00
Olivier Gayot ed5329dcff
Merge pull request #1887 from kubiko/deb-build-cleanup
debian: use 'install -D' instead 'mkdir + install'
2024-01-24 14:53:25 +01:00
Michael Hudson-Doyle 162f00b773
Merge pull request #1885 from julian-klode/apt-no-main-sources-list
apt: Only backup/restore sources.list if it exists
2024-01-24 13:15:45 +13:00
Olivier Gayot 9b612dac34 apt: ensure we always drop CDROM info from sources.list
Back when sources.list was always present, we would:
 * move the contents of sources.list to sources.list.d/original.list
 * write the CDROM info to sources.list so the CDROM cat be used as an
   APT source
 * restore the original sources.list file when .deconfigure() is called,
   effectively discarding CDROM info

Nowadays, there is no guarantee that sources.list exists. So restoring
the contents of sources.list may mean deleting sources.list if it wasn't
present in the first place.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-01-22 13:03:35 +01:00
Olivier Gayot 3064343f45 apt: add tests for deconfigure with and without network
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-01-22 13:03:35 +01:00
Olivier Gayot d7e84a176f
Merge pull request #1888 from ogayot/apport-title-show-curtin-step
apport: show name of curtin stage when an error occurs
2024-01-19 19:12:45 +01:00
Olivier Gayot f555d6800e apport: show name of curtin stage when an error occurs
When an error occurs during the execution of a "$ curtin install"
invocation, the associated bug report would be titled:

  "install failed crashed with CalledProcessError"

This is not very user friendly and it does not immediately give any
insight on:

With the number of reports that we receive these days, I think
classifying these reports would make our life a bit easier, and possibly
make the users understand better what's going on.

This change adds a wat to detect if a bug report is the result of a
"$ curtin install" invocation failing. If it is, subiquity sets the
title of the bug report accordingly. Examples:

 * "partitioning crashed with CurtinInstallError"
 * "extract crashed with CurtinInstallError"
 * "curthooks crashed with CurtinInstallError"

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-01-19 12:10:35 +01:00
Chris Peterson 54b751cae0 readme: update contribution section wording 2024-01-18 11:23:58 -08:00
Chris Peterson 62de2b1311 readme: add Documentation section 2024-01-18 11:23:40 -08:00
Olivier Gayot eae97db849
Merge pull request #1886 from ogayot/probert-double-os-prober
filesystem: double probert timeout when running os-prober
2024-01-18 17:27:14 +01:00
Ondrej Kubik 9d34332be1 debian: use 'install -D' instead 'mkdir + install'
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2024-01-17 10:45:04 -08:00
Olivier Gayot 3d914e9e30 filesystem: double probert timeout when running os-prober
We know that running os-prober on some systems is slow, potentially very
slow, especially when multiple removable devices are present.

This results in many bug reports showing "block probing crashed with
TimeoutError".

For now, I suggest we double the probert timeout when os-prober is
involved.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-01-17 14:52:13 +01:00
Julian Andres Klode 5db34f84c8 apt: Only backup/restore sources.list if it exists
We backup the sources.list to a file in sources.list.d to be
able to insert our source first; if we do not have a sources.list
this is not necessary.

If an image uses ubuntu.sources, this logic also works fine as
sources.list that we write will be sourced before the ubuntu.sources.
2024-01-15 17:10:05 +01:00
Robert Krátký 753ce9f701
Merge pull request #1883 from rkratky/FR-6244_docs-update
Misc. docs updates and fixes
2024-01-12 15:41:38 +01:00
Olivier Gayot a16a69d489
Merge pull request #1879 from ogayot/nvme-o-tcp-probert-update
Update probert to get NVMe controllers information and add example file using it
2024-01-11 09:06:12 +01:00
Robert Krátký 562248af27 Fix Sphinx/rST warnings. 2024-01-10 16:17:57 +01:00
Robert Krátký b2552a3d96 Add search-bar Go button. 2024-01-10 16:17:57 +01:00
Robert Krátký f2504fe859 Update feedback button color. 2024-01-10 16:17:57 +01:00
Robert Krátký 36c115b4f4 Fix code-block copybutton default visibility. 2024-01-10 16:17:57 +01:00
Robert Krátký 0a5bdb9280 Update Sphinx extension names. 2024-01-10 16:17:50 +01:00
Olivier Gayot 1b58eaa6c6 snapcraft: bump probert to get NVMe controllers information
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-01-10 10:16:08 +01:00
Chris Peterson e3a0f6d215
Merge pull request #1882 from Chris-Peterson444/link2doc-ai-user-data-FR-5802 2024-01-05 07:35:54 -08:00
Chris Peterson 5350d01715 ai: include link to docs in post-install user data
We write out the autoinstall data to make the install repeatable
but this should also include a reference to the autoinstall
documentation to increase usability.
2024-01-03 16:02:30 -08:00
Olivier Gayot 89c1ea2afe
Merge pull request #1881 from alfonsosanchezbeato/add-missing-dep
debian: add missing dependency for pyroute2
2024-01-02 16:45:58 +01:00
Alfonso Sánchez-Beato 96f3644a0c debian: add missing dependency for pyroute2 2024-01-02 16:24:35 +01:00
Olivier Gayot 3a55a14cc1 examples: add machine-config for NVMe-over-TCP
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-12-13 17:55:41 +01:00
Olivier Gayot ea909d1428
Merge pull request #1878 from ogayot/console-conf-network-crash
network: ensure we pass tasks to asyncio.wait
2023-12-12 10:03:48 +01:00
Olivier Gayot 0b7a4d16af network: ensure we pass tasks to asyncio.wait
In Python < 3.11, when passing a coroutine to asyncio.wait, it would
automatically be scheduled as a task. This isn't the case anymore with
Python 3.11. Now passing coroutines to asyncio.wait fails with:

 TypeError: Passing coroutines is forbidden, use tasks explicitly.

Let's ensure we schedule the coroutines as tasks before passing them on
to asyncio.wait.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-12-08 14:27:00 +01:00
Dan Bungert 93ab4f911c
Merge pull request #1877 from xnox/xnox/noble-packaging
Upgrade to noble, systemd files are now in /usr/lib
2023-11-29 13:14:29 -07:00
Dimitri John Ledkov bdea88c7ae
Upgrade to noble, systemd files are now in /usr/lib 2023-11-24 23:58:36 +00:00
Robert Krátký 69f74047b0
Merge pull request #1876 from rkratky/FR-5900_ui-titles
Unify UI screen titles and minor lang. fixes
2023-11-21 18:30:04 +01:00
Robert Krátký 97409bea6c Typo: Ubuntu Po -> Pro. 2023-11-21 14:06:07 +01:00
Robert Krátký 4e81b0d81d Unify UI screen titles and minor lang. fixes 2023-11-21 14:05:59 +01:00
Olivier Gayot 5c2dc13df6
Merge pull request #1868 from ogayot/kvm-test-profiles
kvm-test: have different profiles for server and desktop
2023-11-17 11:23:32 +01:00
Olivier Gayot afd6fca8b4 kvm-test: allow kvm-test.yaml to add/modify profiles
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-11-12 22:02:20 +01:00
Chris Peterson 7f3c137ba3
Merge pull request #1859 from Chris-Peterson444/update-readme-contribution-requirements
readme: make a contributing section and point to CONTRIBUTING.md
2023-11-09 11:35:41 +02:00
Chris Peterson 9074e966dc readme: make a contributing section and point to CONTRIBUTING.md
Updates the readme to point to the contributing guidelines document.
Include sections about the Ubuntu Code of Conduct, Contributor
License Agreement, where to file bugs, and where to submit
changes.

Signed-off-by: Chris Peterson <chris.peterson@canonical.com>
2023-11-07 16:35:52 +02:00
Olivier Gayot de4e126087 kvm-test: have different profiles for server and desktop
Booting Desktop and server live installer ISOs comes with different
platform requirements. When running kvm-test, we now accept the name of
a profile via the --profile option.

Profiles provide default settings for memory, disk size and extra QEMU
options. For now, two profiles are hard-coded: "server" - which is the
default and "desktop".

For desktop, we use two vCPU, 8 GiB of RAM, a 20 GiB disk and pass the
-device qxl option.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-11-07 14:36:07 +01:00