Commit Graph

735 Commits

Author SHA1 Message Date
Dimitri John Ledkov d6689d9200
Merge pull request #594 from mwhudson/asyncio-ssh
asyncioify ssh
2019-12-14 16:48:55 +00:00
Dimitri John Ledkov b4ff1bde70
Merge pull request #599 from mwhudson/radiobuttonfield
add a RadioButtonField for forms
2019-12-14 16:47:29 +00:00
Michael Hudson-Doyle a2fc6da694 add a RadioButtonField for forms 2019-12-14 22:35:19 +13:00
Michael Hudson-Doyle 285eeee0ed
Merge pull request #598 from mwhudson/repeatedcontroller-index
fix RepeatedController
2019-12-14 22:16:07 +13:00
Michael Hudson-Doyle 0090aec3be fix RepeatedController
a snap update was offered the second time even if it had been
offered already
2019-12-14 21:44:10 +13:00
Michael Hudson-Doyle 5571e1fab3 add a class for controllers with no ui
there will be a bunch of these coming for autoinstall
2019-12-14 21:27:39 +13:00
Dimitri John Ledkov d19e405666 Unbreak console-conf in UC20 images 2019-12-14 03:00:17 +00:00
Michael Hudson-Doyle 05a61544fb asyncio.create_subprocess_exec defaults stdin to None 2019-12-13 11:44:12 +13:00
Michael Hudson-Doyle 992e131b5f squash all exceptions when cancelling the task in SingleInstanceTask
otherwise restarting a failed task just raises the exception from the previous
failure
2019-12-13 10:05:23 +13:00
Michael Hudson-Doyle 4e1afd60a4 do not always stop networkd 2019-12-13 10:04:57 +13:00
Michael Hudson-Doyle b155d3eff0 have apply_config task exit as soon as all dhcp NICs have an address 2019-12-13 10:04:31 +13:00
Michael Hudson-Doyle 08e081415d move async_helpers to subiquitycore 2019-12-13 10:04:02 +13:00
Michael Hudson-Doyle 5a7abd99b7 only run network answers once 2019-12-13 10:03:46 +13:00
Michael Hudson-Doyle eb228ab7f3 introduce a helper for a restartable task
(there are going to be a few of these)
2019-12-13 10:03:32 +13:00
Michael Hudson-Doyle 2d1bd0011d a little refactoring 2019-12-13 09:40:15 +13:00
Michael Hudson-Doyle a260bebc0b rip out TaskSequence 2019-12-13 09:39:48 +13:00
Michael Hudson-Doyle 19f8f91d29 asyncify network controller 2019-12-13 09:39:13 +13:00
Michael Hudson-Doyle efed69ff7c some asyncifying of network 2019-12-13 09:37:36 +13:00
Michael Hudson-Doyle b65a8177a3
Merge pull request #591 from mwhudson/asyncio-installation
asyncioify installation
2019-12-13 09:14:13 +13:00
Michael Hudson-Doyle 4c84bb6494 add a form field that has another form as its widget 2019-12-12 23:20:12 +13:00
Michael Hudson-Doyle 05c4fa4403 add a way for a form field not to have space for help 2019-12-12 23:19:46 +13:00
Michael Hudson-Doyle d8746ce75e add a way for a form field to not have a caption 2019-12-12 23:19:09 +13:00
Michael Hudson-Doyle f549883f80 tweak some log levels 2019-12-12 21:57:20 +13:00
Michael Hudson-Doyle d08cce4970 create an INFO level log file too, unconditionally include it in error reports 2019-12-12 21:49:44 +13:00
Michael Hudson-Doyle 3d80f46225 asyncioify the installation 2019-12-12 15:19:22 +13:00
Michael Hudson-Doyle 297d7c2060 add Application.select_screen
SubiquityUI will want to override this for autoinstally things
2019-12-12 10:38:04 +13:00
Michael Hudson-Doyle fb2f322544 tidy up next/prev_screen 2019-12-12 10:38:04 +13:00
Michael Hudson-Doyle 64378cdb95 refactor how controllers are stored a bit 2019-12-12 10:38:03 +13:00
Michael Hudson-Doyle b3c013907b
Merge pull request #586 from mwhudson/restart-after-update
remove last-screen file before restarting subiquity
2019-12-12 09:19:54 +13:00
Michael Hudson-Doyle 411a78ccb3 steal the fix for https://github.com/urwid/urwid/issues/235
the symptom of the bug fixed is that exceptions that crash the process
do not get reported sensibly.
2019-12-11 23:21:11 +13:00
Michael Hudson-Doyle 932f703c7a remove last-screen file before restarting subiquity
this fixes a crash loop when the users updates the subiquity snap
then hits an install failure and selects restart
2019-12-11 23:17:16 +13:00
Michael Hudson-Doyle cac9cba8ec asyncio.create_subprocess_exec does not support check=True 2019-12-11 15:02:18 +13:00
Michael Hudson-Doyle f805a9d9dd add a convenience wrapper 2019-12-11 14:39:48 +13:00
Michael Hudson-Doyle 864e09cc99 use asyncio event loop and a little asyncio api 2019-12-11 14:39:25 +13:00
Michael Hudson-Doyle ac071ec9bf
Merge pull request #574 from mwhudson/error-report-ui
first cut at error report ui
2019-11-18 12:30:50 +13:00
Michael Hudson-Doyle 73b53f2bf3 stop caching probed storage data
A recent branch carefully called Prober.get_storage() whenever a udev
block device event was seen. But Prober.get_storage() cached the results
from probert rendering that useless. Rip the caching and some other
complexity out of the prober class.
2019-11-13 10:07:51 +13:00
Michael Hudson-Doyle 615dc1b1dd show an unseen ui crash on startup 2019-11-08 13:36:30 +13:00
Michael Hudson-Doyle 6d3f014f7a simple view of a crash report 2019-11-08 13:36:30 +13:00
Michael Hudson-Doyle 74ef2ad8f6 add a way to create a crash report 2019-11-07 14:47:18 +13:00
Michael Hudson-Doyle 54823e364c remove signal sent after debug shell exits 2019-11-04 23:52:49 +13:00
Michael Hudson-Doyle 4798348740
Merge pull request #567 from mwhudson/restricted-saved-probing
implement restricted probing for canned probert data
2019-11-04 10:44:18 +13:00
Michael Hudson-Doyle ca02972195 add a controlled way to make various things fail
In dry-run mode, treat SUBIQUITY_DEBUG as a comma-separated list of
things to fail:

 * install-fail: curtin install fails
 * copy-logs-fail: the postinstall copying of logs fails
 * bpfail-full: full block device probing fails
 * bpfail-restricted: restricted block device probing fails

In addition, control-u makes the UI crash in dry-run mode.

(This is all for testing of crash report generation but does not depend
on that).
2019-11-04 10:43:29 +13:00
Michael Hudson-Doyle d56b72b35b implement restricted probing for canned probert data 2019-10-31 13:39:01 +13:00
Michael Hudson-Doyle a3734cda03 wrap actionmenu/selector popups in Color.body
this fixes a slight visual glitch in gnome-terminal
2019-10-16 12:50:44 +13:00
Michael Hudson-Doyle f2918fa30b
Merge pull request #550 from mwhudson/reprobe-block-devices-on-shell-exit
Reprobe block devices on debug shell exit
2019-10-09 15:37:23 +13:00
Dimitri John Ledkov 3e39db4013 Asciify color pallete 2019-10-07 22:30:23 +01:00
Dimitri John Ledkov 3f548665e1 Add ASCII mode 2019-10-04 17:17:26 +01:00
Michael Hudson-Doyle 7a3a88ab0c add a signal that is fired when a debug shell exits 2019-10-04 15:10:11 +13:00
Michael Hudson-Doyle 36cdf0effd some better names 2019-10-04 13:39:39 +13:00
Michael Hudson-Doyle 415db68e36 always use vt100 codes for white/black/default
For maximum compatibility in mono mode.
2019-10-04 13:39:39 +13:00
Michael Hudson-Doyle cea3a65ca1 refactor how palettes and colors and screens are set up 2019-10-04 13:39:39 +13:00
Michael Hudson-Doyle 29c9e0c984 add a hot key (f4) for turning color on and off 2019-10-04 13:39:39 +13:00
Steve Langasek d2f996732f Don't mark a dash as translatable 2019-10-02 11:45:34 -07:00
Steve Langasek 34034e4a79 Don't mark 'DHCPv{v}' as translatable 2019-10-02 11:40:58 -07:00
Michael Hudson-Doyle 9ece5d2222 implement local documentation 2019-10-02 10:51:34 +13:00
Michael Hudson-Doyle 0c4d809c05 Have the help button open a help menu.
None of the items do anything yet though.
2019-10-02 10:48:58 +13:00
Michael Hudson-Doyle 70bb4ab5dd add [ Help ] button to header 2019-10-02 10:48:35 +13:00
Michael Hudson-Doyle 3450078f4b
Merge pull request #542 from mwhudson/log-file-per-pid
create one log file per invocation
2019-10-02 10:29:25 +13:00
Michael Hudson-Doyle 93732dfb73 fix run_command_in_foreground to disconnect from stdin while in backgound
Not sure how I didn't notice this when implementing it for the first
time but well. This is all fairly confusing.
2019-09-30 16:26:24 +13:00
Michael Hudson-Doyle fb6ea590a5 still create a subiquity-debug.log symlink 2019-09-30 16:21:42 +13:00
Michael Hudson-Doyle 7c1154b758 create one log file per invocation
Log to subiquity-debug.log.$PID instead of just subiquity-debug.log.

When we implement error reports we'll obviously attach the log to the
error report. There's no point adding log messages from previous runs of
subiquity.
2019-09-30 13:47:56 +13:00
Michael Hudson-Doyle a2ccb0cd9e remove all remaining footer-related things 2019-09-30 09:32:23 +13:00
Michael Hudson-Doyle a96c5c8805 Make header narrower, move right_icon into header. 2019-09-30 09:32:07 +13:00
Michael Hudson-Doyle d8d5b2e265 remove the footer 2019-09-27 14:31:34 +12:00
Michael Hudson-Doyle c442a166ca
Merge pull request #537 from mwhudson/log-sanity
clean up logging a touch
2019-09-26 11:57:27 +12:00
Michael Hudson-Doyle 947f14a0af move stretchy signals from overlay to stretchy itself
Also add overridable opened/closed hooks.
2019-09-12 21:36:40 +12:00
Michael Hudson-Doyle d0151deec0 some more logging statements to follow user around the ui a little more 2019-09-09 15:33:45 +12:00
Michael Hudson-Doyle b6bf3fcc42 a bit too much effort making one particular log statement look nice 2019-09-09 15:32:49 +12:00
Michael Hudson-Doyle 0eb4dcfdfb more logging tweaks 2019-09-09 15:27:56 +12:00
Michael Hudson-Doyle ca6ebf84f4 only call is_linux_tty once 2019-09-09 15:27:34 +12:00
Michael Hudson-Doyle b24dbf7095 remove environment_check stuff 2019-09-09 15:27:29 +12:00
Michael Hudson-Doyle 5dca5e861e remove some pointless wrapping of exceptions 2019-09-09 14:30:49 +12:00
Michael Hudson-Doyle 3d9cbeac95 light sanitization of log statements 2019-09-09 14:28:48 +12:00
Dimitri John Ledkov 25ed1e281f
Merge pull request #533 from mwhudson/app-specific-uis
allow the application to have a widget in the bottom right
2019-09-05 14:36:12 +01:00
Dimitri John Ledkov 0a1a9faa12
Merge pull request #534 from mwhudson/overlay-close-signal
define a 'closed' signal on StretchyOverlay
2019-09-05 14:34:38 +01:00
Michael Hudson-Doyle ea258973fc define a 'closed' signal on StretchyOverlay
And return the overlay from show_stretchy_overlay, so you can do things
when the overlay is closed.

Will be used by the help-showing stuff.
2019-09-05 12:30:03 +12:00
Michael Hudson-Doyle 3c2fd87e9b Allow the UI to have a widget in the bottom right of the screen
This will be a help button in subiquity soon.
2019-09-05 12:22:56 +12:00
Michael Hudson-Doyle 3f8c005237 allow console_conf and subiquity to use different UI classes
Subiquity is going to grow some global UI elements that console_conf
does not want.
2019-09-05 11:58:25 +12:00
Michael Hudson-Doyle c1e973fe1e Add Controller.showing helper 2019-09-04 15:21:26 +12: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 3605514d30 extract some methods out of Application.run 2019-09-03 13:14:17 +12:00
Michael Hudson-Doyle 43f414da1f add a way to suspend the subiquity UI and run some other command
This will be used for the drop to shell functionality and also to allow
viewing an error report before we submit it to daisy.

It is almost but not quite surprisingly easy (I added a long-ish comment
about the difficulties).
2019-08-23 11:19:21 +12:00
Michael Hudson-Doyle 1947abcc5e fix mismerge self.common["loop"] vs self.loop 2019-08-20 10:34:31 +12:00
Dimitri John Ledkov 1dfffbda01
Merge pull request #523 from mwhudson/run_in_bg-fd-leak
fix fd leak in run_in_bg
2019-08-19 11:30:52 +01: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 b38f47bf42 Merge branch 'master' into core-cleanups 2019-08-16 14:24:56 +12:00
Michael Hudson-Doyle 9b7eb8883c fix fd leak in run_in_bg
Notices this while debugging something entirely different.
2019-08-15 13:59:29 +12:00
Michael Hudson-Doyle 90d376fbbd put the terminal into raw mode
For whatever reason, urwid puts the terminal into cbreak mode during
initialization. If we put the terminal into raw mode instead, then we
don't have to ignore SIGINT and SIGQUIT, which is good, because when we
support dropping to a subshell we don't want to run that subshell with
those signals ignored, because that is extremely confusing.

This also lets me dump the code that puts the terminal into raw mode
during keyboard detection.
2019-08-15 13:50:23 +12:00
Michael Hudson-Doyle 518e52e8e2 move "global" key handling to an unhandled_input handler
The only observable difference here is that ctrl-x now exits in dry-run
mode when a pop up is open.
2019-08-15 13:34:10 +12:00
Michael Hudson-Doyle 7096501a6d reduce answers-related boilerplate 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
Michael Hudson-Doyle 98908e91b2 get rid of silly common dictionary that was passed around a bit everywhere 2019-08-15 13:33:38 +12:00
Dimitri John Ledkov 962fd3ebd3 NetDev: bring back actual_global_ip_addresses used by console_conf. 2019-08-08 15:02:39 +01:00
Dimitri John Ledkov e755bf4b5f console_conf/subiquity: split identitymodel, as it is not the same at all. 2019-08-08 15:02:39 +01:00
Dimitri John Ledkov 290c26d244 consoleconf: rewrite identity page. 2019-08-07 21:35:35 +01:00
Dimitri John Ledkov be50b59dcd Allow starting subiquity/console-conf without translations.
Set fallback=True on gettext.translation() call such that it returns
NullTranslation object. This means subiquity/console-conf can start,
even if .mo files are not build in the tree, or are outright missing.
2019-08-07 12:40:10 +01:00
Michael Hudson-Doyle 6bbe02774f assume a default route on a down link has gone away
it seems netlink routing table messages are more of a notifications of
changes being explicitly made vs notifications of all changes to
routing.

for https://bugs.launchpad.net/subiquity/+bug/1837822
2019-07-25 17:37:41 +12:00
Michael Hudson-Doyle 94df386a6c display a message when the user obstinately types in an unsuitable mount point 2019-07-24 13:03:04 +12:00
Michael Hudson-Doyle 619a92e252 always copy the options when creating a Selector
as I want to support mutating them after the fact
2019-07-24 11:27:29 +12:00