Commit Graph

735 Commits

Author SHA1 Message Date
Maciej Borzecki 93ac6b94a3 Merge remote-tracking branch 'upstream/master' into bboozzoo/uc20-recovery-chooser 2020-03-31 17:14:28 +02:00
Michael Hudson-Doyle d717375d9c apply network autoinstall config 2020-03-31 15:58:18 +13:00
Dimitri John Ledkov d97bf081ea Only delete virtual devices when config has changed 2020-03-26 21:26:34 +00:00
Maciej Borzecki 5d77d71499 subiquitycore: allow overriding input/output when creating screens
The interaction with snap-recovery-chooser happens over stdin/stdout. The early
setup code in console-conf will attempt to restore sys.stdin/sys.stdout and hook
them up to the current tty.

The patch allows passing input/output streams explicitly as parameters to the
constructors.

Also, default to sys.stdin/sys.stdout and pass both streams explicitly when
constructing urwid.raw_display.Screen(), to workaround the bug in their
constructor. THe constructor is defined as follows:

    class Screen(BaseScreen, RealTerminal):
        def __init__(self, input=sys.stdin, output=sys.stdout):

What means, that even if we override sys.stdout/sys.stdin globally in our setup
code, this will have no effect as `input` and `output` already got their values.

Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
2020-03-24 13:32:52 +01:00
Michael Hudson-Doyle 3856a11186 fix deleting virtual network devices 2020-03-20 09:18:25 +13:00
Michael Hudson-Doyle cc52bb62a5 fix enabling dhcp on a virtual interface 2020-03-20 09:17:29 +13:00
Michael Hudson-Doyle 7596e63a9f pass **kw args to arun_command in run_command_in_foreground
this makes the debug shell run in / rather than /snap/subiquity/whatever
2020-03-17 12:23:06 +13:00
Michael Hudson-Doyle b4ab4d8f1b Only mark definitively seen screens as configured.
Mark a screen as configured if:
 - last-screen is present
 - the screen was before the screen last-screen indicates
2020-03-16 16:37:25 +13:00
Michael Hudson-Doyle 94611c58e2 remove last-screen file before restarting or exiting
unless we are restarting because of a snap refresh.

ths lead to all kinds of confusion after e.g. a ui crash after a snap refresh
2020-03-16 16:37:16 +13:00
Michael Hudson-Doyle 99218fbeb4 support early and late commands 2020-02-04 14:03:59 +13:00
Michael Hudson-Doyle 963cbaaafe refactor how subiquity is exited after install
if we want to do things after install has completed (e.g.: run late
commands), we can't have the code that runs the install invoking
/sbin/reboot directly.
2019-12-20 13:54:34 +13:00
Michael Hudson-Doyle f925c3fa2a
Merge pull request #622 from mwhudson/make_screen-method
make screen behaviour more configurable
2019-12-20 13:09:57 +13:00
Michael Hudson-Doyle a40082a29b
Merge pull request #621 from mwhudson/controller-set-tweaks
tweak ControllerSet
2019-12-20 13:01:04 +13:00
Michael Hudson-Doyle 78d59de8c6 only call setraw if the screen is talking to a tty 2019-12-20 12:48:27 +13:00
Michael Hudson-Doyle 039b5313c4 move make_screen into a method 2019-12-20 12:47:37 +13:00
Michael Hudson-Doyle ab6fdeb1b5 tweak ControllerSet
* add a way to load just one controller
 * fetch the RepeatedController class from a projet specific location

neither used yet, but soon
2019-12-20 12:43:42 +13: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 cfc38e1c1b make all subiquity controllers used inherit from SubiquityController
There is going to be a chunk of subiquity specific functionality coming
for autoinstalls, this gives us somewhere to put it.
2019-12-20 11:41:12 +13:00
Michael Hudson-Doyle 570472315d Add SingleInstanceTask.wait
this can be called without having to worry about the task being
cancelled out from under you
2019-12-20 11:00:46 +13:00
Michael Hudson-Doyle 45478b68a4 add a way to change the default level of a context's children 2019-12-20 09:47:38 +13:00
Michael Hudson-Doyle a91dff2b14 add a way to log a dialog open/close, use it for network dialogs 2019-12-20 09:47:38 +13:00
Michael Hudson-Doyle 4be25fc78f log applying network config via context 2019-12-20 09:47:36 +13:00
Michael Hudson-Doyle 1f1937b03f report progress through screens via context 2019-12-20 09:46:26 +13:00
Michael Hudson-Doyle fa39f10651 fix answers 2019-12-20 09:46:26 +13:00
Michael Hudson-Doyle 5961b68b7d introduce a Context object for logging start/stop events 2019-12-20 09:46:26 +13:00
Michael Hudson-Doyle 0c268f6c22 fix case where NIC does not get DHCP address 2019-12-19 16:06:56 +13:00
Dimitri John Ledkov 904c0e3179
Merge pull request #613 from mwhudson/model-events
stop using urwid signals to coordinate installation
2019-12-17 02:11:32 +00:00
Michael Hudson-Doyle ca1635a1f9 a bit of refactoring 2019-12-17 15:05:17 +13:00
Dimitri John Ledkov dce0f10c10 Merge guided method & disk selection into one screen. (#588)
Merge guided method & disk selection into one screen.
2019-12-17 12:59:03 +13:00
Michael Hudson-Doyle 29c9f0878b indent a "raise" properly 2019-12-17 11:28:42 +13:00
Dimitri John Ledkov 4bcb0e5fd1
Merge pull request #609 from mwhudson/less-signalling
stop some pointless use of urwid signals
2019-12-16 19:38:45 +00:00
Dimitri John Ledkov 42343d665f
Merge pull request #601 from mwhudson/more-async-refresh
make the refresh view code use asyncio apis
2019-12-16 12:33:22 +00:00
Dimitri John Ledkov c067e5e741
Merge pull request #606 from mwhudson/prober-fail-lower
push debug_flag block probe crashing into Prober
2019-12-16 12:27:16 +00:00
Michael Hudson-Doyle 33af65bde1 make --screen command line option do something again 2019-12-16 23:17:21 +13:00
Michael Hudson-Doyle 324dddac94 push debug_flag block probe crashing into Prober 2019-12-16 23:15:48 +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 7e7ca080f6
Merge pull request #604 from mwhudson/tab-cycling-oddity
fix tab-cycling between header and body
2019-12-16 21:37:20 +13:00
Michael Hudson-Doyle 7b697a1978
Merge pull request #602 from mwhudson/selector-non-text
allow Selector to have non-text entries
2019-12-16 21:36:45 +13:00
Michael Hudson-Doyle b41560fc4c fix tab-cycling between header and body 2019-12-16 21:32:25 +13:00
Michael Hudson-Doyle 9736825e32 simplify SubForm stuff a bit 2019-12-16 21:21:57 +13:00
Michael Hudson-Doyle 6913294de6 EXTREMELY OBSCURE fix
without this, selectors get skipped over when selecting the first element in a
pile if the label is some kind of container.
2019-12-16 21:15:46 +13:00
Michael Hudson-Doyle 9759957f36 allow Selector to have non-text entries 2019-12-16 13:28:42 +13:00
Michael Hudson-Doyle de18cc977f make SingleInstanceTask.start_sync set self.task synchronously 2019-12-16 12:33:19 +13:00
Michael Hudson-Doyle 5173e46b33
Merge pull request #600 from mwhudson/fix-probing-failures
stop block probing failures from crashing the process
2019-12-15 09:53:47 +13:00
Michael Hudson-Doyle fe08311c19 stop block probing failures from crashing the process
There is a common problem in concurrent / asynchronous code of what to
do with unhandled exceptions. If a (conceptual) thread of execution
fails, there's no guarantee (and no way of telling) if there's anything
listening.  By default, I chose to have a failing task propagate the
exception up to the run loop for two reasons:

 1) Unhandled exceptions are generally bad
 2) urwid.ExitMainLoop needs to be propagated to the run loop to have
    any effect

But this means that tasks that are expected to fail (and have this
failure handled) like block probing crash the process, which is
obviously a Bad Thing. This branch adds a way to turn off exception
propagation per-task, which is a bit hackish but works ok it seems.
2019-12-15 09:45:14 +13:00
Michael Hudson-Doyle bd3ede4c21
Merge pull request #595 from mwhudson/remove-run_in_bg
remove run_in_bg

the asyncioification is complete (apart from bug fixes)
2019-12-15 09:44:09 +13:00
Michael Hudson-Doyle 6d4ea2bf34
Merge pull request #596 from xnox/uc20
Unbreak console-conf in UC20 images
2019-12-15 09:04:03 +13:00
Michael Hudson-Doyle ae5cd6268a kill off run_in_bg and some related hacks 2019-12-15 08:53:37 +13:00
Michael Hudson-Doyle a92b88ed9d asyncioify run_command_in_foreground 2019-12-15 08:53:36 +13:00