Commit Graph

572 Commits

Author SHA1 Message Date
Michael Hudson-Doyle 237290bbb3 fix rendering of long labels on guided disk selection screen 2018-06-26 14:20:41 +12:00
Michael Hudson-Doyle 9e4a66b628 add the raid view 2018-06-26 12:22:09 +12:00
Michael Hudson-Doyle edd6769a60 add ReadOnlyField (to be used for the size of a raid) 2018-06-26 12:19:47 +12:00
Michael Hudson-Doyle 1895d98ac4 tweak TableRow.selectable 2018-06-26 11:40:02 +12:00
Michael Hudson-Doyle 48666547f1 convert focusable things on filesystem view to "[ {stuff} ▸ ]" layout 2018-06-26 11:14:37 +12:00
Michael Hudson-Doyle 237611fda6 change " menu >" to "[ menu ▸ ]" 2018-06-26 10:19:57 +12:00
Michael Hudson-Doyle 1ae09926ca change button_pile to use widget_width 2018-06-26 10:12:09 +12:00
Michael Hudson-Doyle 8854e7aaaa move CursorOverride somewhere generic 2018-06-26 10:05:37 +12:00
Michael Hudson-Doyle 22ae45e99b move widget_width() to its own module
also allow our widget subclasses to specify their width
2018-06-26 09:59:48 +12:00
Michael Hudson-Doyle 5f3ce077ac
Merge pull request #372 from mwhudson/selector-tweaks
Selector tweaks
2018-06-26 09:10:46 +12:00
Michael Hudson-Doyle 8bb5621947
Merge pull request #371 from mwhudson/action-menu-tweaks
do not show > in the context menu for actions that do not open a dialog
2018-06-25 23:50:24 +12:00
Michael Hudson-Doyle 4501aee357 rework look of open selector to match 2018-06-25 23:45:21 +12:00
Michael Hudson-Doyle 391b70cdf5 rework the look of the selector widget 2018-06-25 23:45:21 +12:00
Michael Hudson-Doyle 7ab699716d make Selector.options a public interface 2018-06-25 23:45:21 +12:00
Michael Hudson-Doyle 80bec75871 stop assigning to Selector.value emitting the "select" signal
for the avoidance of infinite recursion
2018-06-25 23:45:21 +12:00
Michael Hudson-Doyle f08b6a42e5 make selector a WidgetWrap rather than a decoration 2018-06-25 23:10:39 +12:00
Michael Hudson-Doyle a6f54be22a fix stupid failure of arithmetic in stretchy 2018-06-25 22:57:57 +12:00
Michael Hudson-Doyle 8b9331e5be do not show > in the context menu for actions that do not open a dialog 2018-06-25 22:52:34 +12:00
Michael Hudson-Doyle 90d580a57e remove DummyView 2018-06-22 09:39:33 +12:00
Michael Hudson-Doyle 9cbaac4542 use our custom WidgetWrap everywhere 2018-06-22 09:38:18 +12:00
Michael Hudson-Doyle ea8f97491f delete old ErrorView 2018-06-22 09:34:02 +12:00
Michael Hudson-Doyle 0e2d376ed0 build a form out of tables 2018-06-21 21:07:02 +12:00
Michael Hudson-Doyle 7093006711 fix binding more than two tables 2018-06-21 20:48:08 +12:00
Michael Hudson-Doyle 88e23fce54 fix distribution of space when widening columns to accommodate a colspan>1 column 2018-06-21 16:07:00 +12:00
Michael Hudson-Doyle f09696862a add a column option to allow a column to take available space 2018-06-21 16:07:00 +12:00
Michael Hudson-Doyle 8eb21bce72 split Table into TablePile and TableListBox
and get rid of that confusing container_maker thing
2018-06-21 16:07:00 +12:00
Michael Hudson-Doyle 119f40b72d
Merge pull request #369 from mwhudson/form-simplify
simplify the way forms are turned into widgets
2018-06-21 16:06:47 +12:00
Michael Hudson-Doyle f037ebd586 add lost_focus/gained_focus to our WidgetWrap 2018-06-21 15:39:14 +12:00
Michael Hudson-Doyle 99dd12f870 simplify how forms are built 2018-06-21 15:38:02 +12:00
Michael Hudson-Doyle ed86028dd2 provide a way for a field to opt out of default styling 2018-06-21 15:37:19 +12:00
Michael Hudson-Doyle 19d43c19c7 make field an ABC 2018-06-21 15:37:19 +12:00
Michael Hudson-Doyle ba809a9e97 simplify how form widgets get styled 2018-06-21 15:37:19 +12:00
Michael Hudson-Doyle 59da0e717b make Toggleable simpler and more robust 2018-06-21 15:37:15 +12:00
Michael Hudson-Doyle eee758d382 update STYLE_NAMES to match the styles that are currently defined 2018-06-21 12:09:40 +12:00
Michael Hudson-Doyle 76835c40ab sort STYLE_NAMES constructor 2018-06-21 12:09:40 +12:00
Michael Hudson-Doyle 8680786da3 make inputs on keyboard and welcome page of consistent width 2018-06-20 09:17:49 +12:00
Michael Hudson-Doyle 9e33874a86
Merge pull request #366 from mwhudson/mwhudson/scrollbar-tweaks
make scrollbar less intrusive
2018-06-20 08:47:56 +12:00
Michael Hudson-Doyle 68c49e5135 add some super basic filesystem tests, fix partition tests 2018-06-19 11:43:59 +12:00
Michael Hudson-Doyle de80a06f47 add actionmenu widget 2018-06-18 21:36:35 +12:00
Michael Hudson-Doyle c0d66f5540 make scrollbar less intrusive
also pretty up its implementation a bit while I am here
2018-06-18 21:24:23 +12:00
Michael Hudson-Doyle 14ad092b9d implement _select_first/last_selectable on our Columns 2018-06-15 12:26:02 +12:00
Michael Hudson-Doyle 3a59925265 work around a strange behaviour of Pile when contents is changed 2018-06-15 11:51:40 +12:00
Michael Hudson-Doyle 66578aff79 account for colspan>1 cells in width computations
I ran into that gotcha pretty quickly.
2018-06-15 11:48:19 +12:00
Michael Hudson-Doyle b34ca65aba a slightly over-engineered table widget
that takes column widths from the contens of the cells, unlike
most things in urwid
2018-06-15 11:48:19 +12:00
Michael Hudson-Doyle 2f184ce9a6 fix display of install progress in footer 2018-06-13 14:02:40 +12:00
Michael Hudson-Doyle 1ab495c0a8 fix refreshing network view on network changes 2018-06-13 13:38:03 +12:00
Michael Hudson-Doyle d315751d60 add our own version of WidgetWrap
urwid doesn't know about the _select_first/last_selectable methods our
containers use to make tab-cycling work so its WidgetWrap doesn't
forward them along. So add a WidgetWrap that does, and use it in the one
place that it matters so far (more coming soon!).
2018-06-11 14:13:44 +12:00
Scott Moser 3e69673501 Fix writing of netplan configs
When user configures network with subiquity, it's rendered
netplan should be wholly definitive.  So, we remove the other files
that may have config.  This fixes a bug where running in an instance
when running on a system where cloud-init had rendered a 'match' with
'macaddress'.

When writing netplan we keep 'macaddress' match in place but drop
others.  The others may just wildcard from the installer environment,
but macaddress are likely by cloud-init or otherwise intentionally
written.

Also add an atomic write in subiquitycore/file_util and move the
netplan code into subiquitycore/netplan.py, and add some unit test
helpers from cloud-init.
2018-06-07 11:46:34 -04:00
Michael Hudson-Doyle 270ba0992a fix selectability in non-scrolling stretchy 2018-06-07 12:50:50 +12:00
Scott Moser 51a7169904 tox: Support running tests and flake8 in tox.
This puts into place a tox.ini for running unit tests without
a large amount of deps installed into the system. For example,
we did not want to need libnl-route-3-dev or build-essential installed
in the system in order to run unit tests.

In order avoid import errors in the modules due to these missing
dependencies, we have added a 'fake_deps/' directory that provides
mock'd objects of the dependencies that were used.

The only installed packages necessary for this to run should be
tox itself and its dependencies (pip and friends).  From a clean new
container we can then do:
  apt-get install tox
  git clone ...
  tox

Also along the way:
 * adjust setup.py to only need the DistUtilsExtra during 'build'.
   This means tox usage doesn't require python3-distutils-extra.
 * drop use of lsb_release in favor of built-in parsing.
   This python module wasn't doing much.  We can parse /etc/lsb-release
   ourselves with less footprint.  Also part of the motivation for this
   is that lsb_release was not on pypi.
 * replace use of StorageInfo in test_partition.py with a FakeStorageInfo
 * .gitignore: ignore only the top level 'probert' directory so that
   we can track fake_deps/probert.
 * fix a couple escape chars, by using raw strings (r'').
 * adjust gettext to return un-modified strings rather than '_(string)',
   but support old style if FAKE_TRANSLATE=mangle.
2018-06-05 17:59:46 -04:00
Michael Hudson-Doyle eab0f668ff use general machinery a little more 2018-05-31 10:28:29 +12:00
Michael Hudson-Doyle ed5e1d86b5 fix lint 2018-05-25 10:43:55 +12:00
Ryan Harper 053a1c249d pyflakes3 fixes for subiquitycore/__init__.py 2018-05-24 16:59:31 -05:00
Ryan Harper d7c8b1111b pep8 fixes for subiquitycore/core.py 2018-05-24 16:59:31 -05:00
Ryan Harper d293c52152 pep8 fixes for subiquitycore/tasksequence.py 2018-05-24 16:59:31 -05:00
Ryan Harper 4c1b6e6fc9 pep8 fixes for subiquitycore/ui/buttons.py 2018-05-24 16:59:31 -05:00
Ryan Harper 080ac4c245 pep8 fixes for subiquitycore/ui/form.py 2018-05-24 16:59:31 -05:00
Ryan Harper 5b666294e5 pep8 fixes for subiquitycore/ui/utils.py 2018-05-24 16:59:31 -05:00
Ryan Harper 7dba257b3c Drop mis-merged code from rebase 2018-05-24 16:59:31 -05:00
Ryan Harper 09d7398ec6 pep8 fixes for subiquitycore/__init__.py 2018-05-24 16:54:02 -05:00
Ryan Harper 5f233be9b1 pep8 fixes for subiquitycore/ui/views/network.py 2018-05-24 16:54:02 -05:00
Ryan Harper c908115ee0 pep8 fixes for subiquitycore/ui/views/network_configure_manual_interface.py 2018-05-24 16:54:02 -05:00
Ryan Harper c4c614860a pep8 fix drop commented code in subiquitycore/controllers/network.py 2018-05-24 16:54:02 -05:00
Ryan Harper 5660d72cf1 pep8 fixes for subiquitycore/controller.py 2018-05-24 16:51:51 -05:00
Ryan Harper 9159cd0003 pep8 fixes for subiquitycore/core.py 2018-05-24 16:51:51 -05:00
Ryan Harper dcc0cbc240 pep8 fixes for subiquitycore/i18n.py 2018-05-24 16:51:51 -05:00
Ryan Harper 02cbd2948c pep8 fixes for subiquitycore/prober.py 2018-05-24 16:51:51 -05:00
Ryan Harper bad0e9761f pep8 fixes for subiquitycore/tasksequence.py 2018-05-24 16:51:51 -05:00
Ryan Harper b328c3deed pep8 fixes for subiquitycore/utils.py 2018-05-24 16:51:51 -05:00
Ryan Harper cfc2c9d227 pep8 fixes for subiquitycore/view.py 2018-05-24 16:51:51 -05:00
Ryan Harper 69331754d9 pep8 fixes for subiquitycore/ui/anchors.py 2018-05-24 16:51:51 -05:00
Ryan Harper df5ff9d48e pep8 fixes for subiquitycore/ui/buttons.py 2018-05-24 16:51:51 -05:00
Ryan Harper 860edbc7b5 pep8 fixes for subiquitycore/ui/container.py 2018-05-24 16:51:51 -05:00
Ryan Harper 2d6cca8281 pep8 fixes for subiquitycore/ui/frame.py 2018-05-24 16:51:51 -05:00
Ryan Harper 7cbf8c2b69 pep8 fixes for subiquitycore/ui/form.py 2018-05-24 16:51:51 -05:00
Ryan Harper 4890d306fc pep8 fixes subiquitycore/ui/selector.py 2018-05-24 16:51:51 -05:00
Ryan Harper 762f5f3008 pep8 fixes for subiquitycore/ui/stretchy.py 2018-05-24 16:51:51 -05:00
Ryan Harper 18406b70ef pep8 fixes for subiquitycore/ui/utils.py 2018-05-24 16:51:51 -05:00
Ryan Harper c99941f3c5 pep8 fixes for subiquitycore/ui/views/login.py 2018-05-24 16:51:51 -05:00
Ryan Harper 62ea440b3d pep8 fixes for subiquitycore/ui/views/network.py 2018-05-24 16:51:51 -05:00
Ryan Harper 0fa5dcab28 pep8 fixes 2018-05-24 16:51:51 -05:00
Ryan Harper c8d4c51ddd pep8 fixes 2018-05-24 16:51:51 -05:00
Ryan Harper ae9412159d Don't use __name__ in getLogger 2018-05-24 16:51:51 -05:00
Ryan Harper 13ca352291 pep8 fixes for subiquitycore/ui/views/network_configure_wlan_interface.py 2018-05-24 16:51:51 -05:00
Ryan Harper 591be4ecbc pep8 fixes for subiquitycore.ui.views.network_default_route 2018-05-24 16:51:51 -05:00
Ryan Harper 45fabd78f2 pep8 fixes for subiquitycore.ui.views.tests.test_network_configure_manual_interface 2018-05-24 16:51:51 -05:00
Ryan Harper f2715a4735 pep8 fixes for subiquitycore.controllers.network 2018-05-24 16:51:51 -05:00
Ryan Harper b7e60f7b91 pep8 fixes for subiquitycore.testing.view_hewlpers 2018-05-24 16:51:51 -05:00
Ryan Harper 40caacaca3 pep8 fixes for subiquitycore.models.network 2018-05-24 16:51:51 -05:00
Ryan Harper a0bf68f3c4 pyflakes3 fixes
Add and enable pyflakes3 on console_conf, subiquity, subiquitycore and tests.
Replace NOQA markers with __all__ declarations for module imports.
Replace some obvious deadcode that voilates flake8, separate pass for removing
dead code rather than commenting will be handled later.
2018-05-24 16:51:51 -05:00
Michael Hudson-Doyle bd48ed9b1d remove SimpleList
and the Body widget, both utterly trivial
2018-05-25 09:35:25 +12:00
Ryan Harper 3c9b2e28c7 Drop commented out / dead code 2018-05-23 18:53:12 -05:00
Michael Hudson-Doyle 0fe1f5145c sprinkle in some more ".base_widget"s 2018-05-23 13:40:14 +12:00
Michael Hudson-Doyle 7441cb6df6 convert ScrollBarListBox to decoration rather than subclass
for all the usual reasons why composition is better than inheritance,
but in particular because I want to have a listbox that has a scrollbar
but not our custom tab behaviour in another branch. decoration in urwid
is not as transparent as it sometimes seems it should be but luckily
there's only one view that does much with its listbox and it was due
for some cleanup anyway.
2018-05-23 13:14:00 +12:00
Michael Hudson-Doyle 626488e988
Merge pull request #334 from CanonicalLtd/mwhudson/move-excerpt-title-to-view
move excerpt, title and footer from controller to view
2018-05-22 22:38:39 +12:00
Ryan Harper a84dd2b272 Encoding input when running commands 2018-05-21 13:35:26 -05:00
Ryan Harper 74ae9b9fde Drop use of encoding kwarg to subprocess for python3.5 compat 2018-05-21 11:54:34 -05:00
Michael Hudson-Doyle 79208bc00b trap a TaskSequence gotcha 2018-05-21 13:09:56 +12:00
Michael Hudson-Doyle 70ec850aad
Merge pull request #336 from CanonicalLtd/mwhudson/hack-ThreadPoolExecutor
hack to stop ThreadPoolExecutor blocking exit
2018-05-21 11:59:12 +12:00
Michael Hudson-Doyle 384dadc5ed hack to stop ThreadPoolExecutor blocking exit 2018-05-21 11:58:10 +12:00
Michael Hudson-Doyle f6f214125f move TaskSequence somewhere more generic
I want to reuse it in my containerizing branch.

Improve API and docs a bit while I am looking at it.
2018-05-21 11:52:06 +12:00
Michael Hudson-Doyle cbd5afe2c0 move imports of i18n higher so _ is always installed before tests are imported 2018-05-21 10:14:34 +12:00
Michael Hudson-Doyle ac875751fb fix installprogress 2018-05-18 16:27:05 +12:00
Michael Hudson-Doyle 11708703c9 move titles, footers, excerpts from controller to view
read title and footer from the view instance, make views respsonsible for rendering
the excerpt

adapts infrastructure, welcome, keyboard, network views
2018-05-18 15:55:49 +12:00
Michael Hudson-Doyle 80fffc723c some self review 2018-05-18 13:53:51 +12:00
Michael Hudson-Doyle 7df7a4c1fa fetch ssh keys in the identity screen, all a bit happy path though 2018-05-18 13:53:51 +12:00
Michael Hudson-Doyle bdf3861e5c some simplifications 2018-05-18 13:53:51 +12:00
Michael Hudson-Doyle 3d5efcaf9c actually pass new defaults to run, oops 2018-05-18 13:53:25 +12:00
Michael Hudson-Doyle 1e4992a5e7 stop testing on xenial, we depend on python 3.6 now 2018-05-18 13:38:13 +12:00
Michael Hudson-Doyle cb61144144 small tweaks 2018-05-18 13:21:38 +12:00
Michael Hudson-Doyle 488802fc8b update users of run_command (i thought there was more than this) 2018-05-18 13:11:15 +12:00
Michael Hudson-Doyle c6468982ae Thin the wrappers around subprocess functions
Some of this stuff is not needed with modern Python.

Breaks everything of course, updates to follow.
2018-05-18 13:00:43 +12:00
Michael Hudson-Doyle 35c08f1d6f up thread pool limit
otherwise we can only do one thing at once! many of the things
we do in the background do not really require an OS thread but oh well
2018-05-18 12:33:25 +12:00
Michael Hudson-Doyle ad9f10a9ac try to ensure that functions run in the background have "_bg_" in their name 2018-05-18 12:29:42 +12:00
Michael Hudson-Doyle 1efa265fc5 remove calls to set_alarm_in that were only there so that exceptions raised would be propagated 2018-05-18 12:25:47 +12:00
Michael Hudson-Doyle 03392a208d stop swallowing exceptions raised by the callback passed to run_in_bg
it is just more confusing that it is worth, especially when doing
development
2018-05-18 12:17:18 +12:00
Michael Hudson-Doyle 13d7f13c42 fixes for stretchy where stretchy widget is selectable 2018-05-14 10:28:33 +12:00
Michael Hudson-Doyle 960f51ca91 remove view argument to Form.as_rows and friends 2018-05-07 10:57:35 +12:00
Michael Hudson-Doyle 0a0af0842b fix stupid crash 2018-05-04 10:31:36 +12:00
Michael Hudson-Doyle fa8f8d32f5 down all network links that have changed config before applying it
this means that if you enter a broken config, it breaks as it should
2018-05-03 12:14:06 +12:00
Michael Hudson-Doyle 92457e5724
Merge pull request #324 from CanonicalLtd/mwhudson/click-helper
add --click, --script arguments to subiquity-tui
2018-05-03 11:35:35 +12:00
Michael Hudson-Doyle 1ed27f1848
Merge pull request #322 from CanonicalLtd/mwhudson/no-create-user
stop creating the user in the live session
2018-05-01 13:01:08 +12:00
Michael Hudson-Doyle 5a6d0ac90f a docstring 2018-05-01 13:00:27 +12:00
Michael Hudson-Doyle acdd3bdec7 refactor a bit 2018-05-01 12:57:03 +12:00
Michael Hudson-Doyle 58d64eb419 over engineered way to delay command-line supplied script invocation
use this to allow click helper to wait for a button to appear
2018-05-01 12:49:39 +12:00
Michael Hudson-Doyle db4d8a537e add a way to specify actions to take in the UI on the command line
--script takes a little python snippet to run in a helpful namespace
--click is a wrapper around --script to click a button
2018-05-01 12:29:29 +12:00
Michael Hudson-Doyle 07438a1049 add support for Frames to find_with_pred in view_helpers 2018-05-01 12:17:53 +12:00
Michael Hudson-Doyle fe671d8d9b fix rendering of nic info if dhcp failed but has addresses of other family
This bug has been here forever! Oh well.
2018-04-27 14:56:30 +12:00
Michael Hudson-Doyle dc17fcae4f stop creating the user in the live session
there is no real reason to do this, and it lets me delete some code.

i also cleaned some other stuff up in the area
2018-04-27 14:16:37 +12:00
Michael Hudson-Doyle 7d704f83f0 mark even more strings as translatable 2018-04-19 13:09:00 +12:00
Michael Hudson-Doyle 78e6fea854 work around strange behaviour of _("") 2018-04-19 10:29:08 +12:00
Michael Hudson-Doyle 688a270c17 a round of marking strings as translatable and ensuring translations are actually displayed in the UI 2018-04-19 10:29:08 +12:00
Michael Hudson-Doyle fdd3fae45a fix crash on escape key 2018-04-19 09:57:11 +12:00
Michael Hudson-Doyle 2d3d500e34 a couple of tweaks to make more translated strings appear 2018-04-18 20:18:15 +12:00
Michael Hudson-Doyle 6396025964
Merge pull request #315 from CanonicalLtd/mwhudson/scollbar-focus
change scrollbar color if focused
2018-04-17 12:57:22 +12:00
Michael Hudson-Doyle ba041718dc
Merge pull request #316 from CanonicalLtd/mwhudson/stretchy-overlay
add an overlay that has nicer resizing behaviour
2018-04-17 12:57:15 +12:00
Michael Hudson-Doyle 7eafa420fb add show_stretch_overlay, simplify show_overlay 2018-04-17 12:23:11 +12:00
Michael Hudson-Doyle 6a76f8ad02 add a version of Overlay that copes with small and large screens better
See the docstring for the long version.
2018-04-17 12:22:00 +12:00
Michael Hudson-Doyle e041260e2a change scrollbar color if focused 2018-04-16 23:31:10 +12:00
Michael Hudson-Doyle 5a6ad92239 add some validation to URLEditor 2018-04-12 09:43:02 +12:00
Michael Hudson-Doyle 13eaa5c9dc add a bare-bones proxy model/view/controller 2018-04-09 15:05:46 +12:00
Michael Hudson-Doyle 028914da97 another small helper 2018-04-09 14:37:26 +12:00
Michael Hudson-Doyle a723d25a4c create a helper to create a common screen layout 2018-04-09 14:30:59 +12:00
Michael Hudson-Doyle 0fc83c4bc1 simplify a bunch of views
i am slowly getting better at urwid...
2018-04-09 14:10:36 +12:00
Michael Hudson-Doyle 9d9c233dc4 bludgeon urwid into some kind of submissoin 2018-03-26 23:49:04 +13:00
Michael Hudson-Doyle e61eb454cf
Merge pull request #299 from CanonicalLtd/mwhudson/disable-wifi-server
do not show wlan interfaces in server installer
2018-03-21 15:44:55 +13:00
Michael Hudson-Doyle 56c582a0d0 the way subiquity works it is better do consider a Pile selectable if any of its elements are selectable
Without this, if a non-selectable thing ends up focused, the net effect is that
all further input is ignored, which is bad.
2018-03-21 11:18:56 +13:00
Michael Hudson-Doyle 0c071f7b0d form fields should not be validated on entry 2018-03-21 10:39:32 +13:00
Michael Hudson-Doyle b3da7266b9 do not show wlan interfaces in server installer 2018-03-21 09:35:21 +13:00
Michael Hudson-Doyle 8287d695dc fix live updates of network screen 2018-03-16 15:30:14 +13:00