Commit Graph

112 Commits

Author SHA1 Message Date
Olivier Gayot d4a51027d9 Merge pull request #1944 from ogayot/noble-ui-rework
Fix UI so it runs properly with modern urwid
2024-05-02 14:25:11 +02:00
Michael Hudson-Doyle 34afb5b40c update license headers outside of subiquity package 2024-04-29 09:28:40 +12:00
Olivier Gayot 020dcc0b88 ui: redraw screens after moving from one screen to another
Wieh urwid > 2.1.2, the screen is only redrawn after urwid handles an
event (e.g., keypress, resize, ...) or an urwid alarm (it is like a
timer).

All other changes made to the UI do not trigger a screen redraw. We now
redraw the screen properly after moving from one screen to another.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2024-03-28 10:04:11 +01:00
Dan Bungert 76c9b6607a console_conf: fix not_called usage 2024-02-26 17:06:17 -07:00
Dan Bungert d617ae0f1f
Merge pull request #1872 from kubiko/console-conf-use-snapd-socket
console_conf: identity: use snapd unix socket
2024-02-12 20:17:26 -07:00
Maciej Borzecki 9e081f4fd8 console_conf/controllers/identity: extend unit tests
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:51:58 +01:00
Maciej Borzecki de12383725 console_conf/controllers/identity: update unit tests to fake snapd socket connection
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:34:48 +01:00
Maciej Borzecki 7144a65d22 console_conf/controllers/identity: use app level snapd connection
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-08 07:34:48 +01:00
Ondrej Kubik 55a1bff166 console_conf: identity: use snapd unix socket
When running in strict snap confinement snap client binary is not
accessible. Additionally output format of snap client binary is
not guaranteed not to change. snapd REST API should be used instead.

Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2024-02-08 07:29:16 +01:00
Dan Bungert 17a0a198ef tests: fix state_dir failure 2024-02-07 23:05:56 -07:00
Dan Bungert f03d5b5c5a
Merge pull request #1873 from kubiko/console-conf-use-ready-fingerprints
console_conf: identity: use prepared fingerprints
2024-02-07 22:57:43 -07:00
Maciej Borzecki b6f8cf334f console_conf/controllers/identity: use state directory when querying host key info
When obtaining host key fingerprints, use the state directory.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:44:05 +01:00
Ondrej Kubik 082c59a9a9 console_conf: identity: move strict confinement handling to ssh
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2024-02-07 11:30:39 +01:00
Ondrej Kubik e6aa7e1dcc console_conf: identity: allow use of prepared host keys fingerprints
In strict snap confinement, sshd config or host keys are not accessible.
If strict confinement is detected, instead allow reuse of
the host keys fingerprints already prepared by invoking process.
Prepared fingerprints are stored in: /run/console-conf/host-fingerprints.txt

Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2024-02-07 11:30:39 +01:00
Maciej Borzecki 0764bb50b9 console_conf/controllers: add unit test for identity controller
Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:20:44 +01:00
Maciej Borzecki 592887b540 console_conf/controllers/identity: store login details in project state directory
Since we set a project name centrally, it implies a specific path to the state
directory. Instead of hardcoding the same value directly again in the controller
code, use the application level state directory.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-07 11:17:20 +01:00
Maciej Borzecki b19c716613 console_conf/controllers: do not attempt to set user's key fingerprint
In preparation for running console-conf as a strictly confined snaps, review of
the existing code has shown that user's key fingerprints are not being used or
displayed anywhere. Since we would not be able to read those public keys anyway,
we may as well drop the code which attempts to device the key fingerprints.

Signed-off-by: Maciej Borzecki <maciej.borzecki@canonical.com>
2024-02-06 14:03:55 +01:00
Dan Bungert 34d40643ad format with black + isort 2023-07-25 15:27:42 -06:00
Dan Bungert d73772258d fix some easier cases of impolite language 2022-08-29 12:30:39 -06:00
Dan Bungert 0f9c9eef3f options: add output_base for dryrun use
To enable parallel API testing, add an output_base argument to replace
the default '.subiquity' that is sprinkled everywhere.
2022-01-26 10:39:23 -07:00
Dan Bungert 6a189dd598
Add EventCallback, and move mirror task things to GeoIP (#983)
Move mock_app to common location.
Move run_coro to subiquitycore so that subiquitycore doesn't have to
reference things in subiquity, even for test.
Move task tracking things from mirror to geoip.
Server app owns the geoip instance.
Create EventCallback as an alternative to MessageHub that should
hopefully express clearer intermodule dependencies.
2021-06-14 16:05:27 -06:00
Michael Hudson-Doyle 00cfee002f trivial fixes for console_conf breakage 2020-11-06 09:54:30 +13:00
Michael Hudson-Doyle f0082c2068 change controller api to return a view, rather than setting it 2020-09-18 11:44:00 +12:00
Michael Hudson-Doyle edc65dbbfb make the base controller have no ui, add subclass for one that has ui 2020-08-23 23:18:28 +12:00
Michael Hudson-Doyle 0c9737097a fix get_device_owner return value 2020-07-09 23:22:20 +12:00
Michael Hudson-Doyle 57cd4c3e4c changes suggested in review 2020-07-09 10:47:46 +12:00
Michael Hudson-Doyle 164c575f2a use snapd apis to check for a user and (minimally) handle a managed system with no owner 2020-07-03 15:55:07 +12:00
Dimitri John Ledkov 6de8970560 console_conf: fix showing error messages, when snap create-user fails 2020-05-18 12:42:14 +01:00
Dimitri John Ledkov 760fbaa22f Review comments 2020-04-16 00:22:52 +01:00
Dimitri John Ledkov 5be2961a62 subiquity: add --ssh option to print ssh login details. 2020-04-16 00:08:56 +01:00
Dimitri John Ledkov b61a3369a3 Fix login view button focus to done 2020-04-09 12:34:37 +01:00
Dimitri John Ledkov f3b1a70822
Merge pull request #692 from bboozzoo/bboozzoo/chooser-tweaks
console_conf: various recover chooser tweaks
2020-04-09 10:59:39 +01:00
Maciej Borzecki a957c5b889 console_conf/chooser: UI tweaks
- drop the ABORT button
- introduce BACK button, goes back to the correct previous screen
- sort actions in the order of run -> recover -> install -> rest
- capitalize action title strings
- simplify current model actions screen
- user hints in the confirm screen for well known modes
  - generic hint for unknown modes

Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
2020-04-07 17:38:45 +02:00
Maciej Borzecki d3ac0d6f36 console_conf/chooser: use model display name in top banner
Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
2020-04-07 17:36:47 +02:00
Michael Hudson-Doyle 00e33ae0e1 include ssh host key details in ssh help 2020-04-06 14:10:26 +12:00
Michael Hudson-Doyle fac202d123 move newly added tests to tests directories 2020-04-02 10:18:07 +13:00
Maciej Borzecki 0b58dd598b console_conf/controllers: add tests for recovery chooser
Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
2020-04-01 16:17:20 +02:00
Maciej Borzecki b0ea2e1be7 console_conf/controllers/chooser: show current system actions first
When we know which system is current, show its actions first. Optionally allow
opening the list of other systems.

Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
2020-04-01 16:17:20 +02:00
Maciej Borzecki 8d2f1f9a8b console_conf/controllers: add recovery chooser controllers
Add controller used by the recovery chooser.

Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
2020-03-24 15:09:50 +01:00
Michael Hudson-Doyle cb52ab75a2 use the asyncio loop object rather than the urwid loop almost everywhere 2019-12-20 12:04:38 +13:00
Michael Hudson-Doyle 01e5261b3f kill off other top level signals 2019-12-16 23:09:17 +13:00
Michael Hudson-Doyle 2765e6a773 replace next-screen/prev-screen signals with method calls 2019-12-16 23:02:03 +13:00
Michael Hudson-Doyle 64378cdb95 refactor how controllers are stored a bit 2019-12-12 10:38:03 +13:00
Michael Hudson-Doyle a2ccb0cd9e remove all remaining footer-related things 2019-09-30 09:32:23 +13:00
Michael Hudson-Doyle 9a05653150 Tweak Controller API
* rename 'default' method to 'start_ui'
 * add 'end_ui' hook
 * add Application.cur_controller helper
2019-09-04 15:18:45 +12:00
Michael Hudson-Doyle caf026fb23 fix error logging in host_key_fingerprints 2019-09-03 13:13:58 +12:00
Michael Hudson-Doyle f85fb6aac7
Merge pull request #525 from mwhudson/outermost-pile
Make the outermost widget an instance of Pile rather than Frame
2019-08-16 14:51:32 +12:00
Michael Hudson-Doyle 9e40dcbad6 Make the outermost widget an instance of Pile rather than Frame
Current plans involve putting a focusable widget (a help button) in the
footer, and Pile's behaviour is much more what we want than Frame for
this.
2019-08-16 14:31:03 +12:00
Michael Hudson-Doyle cad6817118 fix console-conf again 2019-08-15 13:34:10 +12:00
Michael Hudson-Doyle 81b9c883f3 do not copy so many things from app to controller in Controller.__init__ 2019-08-15 13:34:09 +12:00