Commit Graph

194 Commits

Author SHA1 Message Date
Dan Bungert c68a32fe42 examples: add disk with free space at end 2022-02-28 16:01:49 -07:00
Dan Bungert 9bd3ea6a6c filesystem: passphrase in answers, failing test 2022-02-11 16:19:19 -07:00
Dan Bungert d158d4e701
Merge pull request #1174 from ogayot/ua-entitled-services-only
Don't list UA services that are not entitled
2022-01-28 11:13:09 -07:00
Olivier Gayot 7dfe722686 Don't list UA services that are not entitled
Instead of only checking if a given UA service is available, we now also
check if it is entitled.

 - the available field for a service refers to its availability on the
   current machine (e.g. on Focal running on a amd64 CPU) ; whereas
 - the entitled field tells us if the contract covers the service.

Therefore, we need to make sure that we only list the services that are
both "available" and "entitled".

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2022-01-28 18:58:39 +01:00
Olivier Gayot 2bbd4fffe6 Update example states for Subiquity to cover valid token values
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2022-01-21 13:48:43 +01:00
Olivier Gayot 9e7bc5053b Add support for APT preferences through autoinstall in Subiquity
The autoinstall schema for "apt" now supports the "preferences"
configuration. Each preference element should contain the properties
described below, that 1:1 map with the keywords from apt_preferences(5):

  * package      <-> Package:
  * pin          <-> Pin:
  * pin-priority <-> Pin-Priority:

These preferences are forwarded to curtin through
subiquity-curtin-apt.conf. Support for these rules must be added to
curtin as well.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2022-01-11 18:42:40 +01:00
Dan Bungert 5ae52c000b
Merge pull request #1151 from ogayot/FR-1652
Validate UA token & list available services
2022-01-10 10:02:41 -07:00
Dan Bungert 96a53eff14
Merge pull request #1154 from dbungert/autoinstall-disable-components
apt: fix disable_components w/ autoinstall
2022-01-10 09:45:49 -07:00
Olivier Gayot f8704aa246 Merge branch 'main' into FR-1652
Resolve conflicts in PR 1151.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2022-01-10 10:53:51 +01:00
Olivier Gayot 81c67780ff Add basics checks for token validity in the autoinstall JSON schema
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2022-01-06 10:54:08 +01:00
Dan Bungert 5a2a7f5ad6 apt: fix disable_components w/ autoinstall
* The mixture of storage for disable_components in and out of the config
  dict was confusing and caused bugs, depending on the flow
* disable_components now solely lives in the dict, like other items
2022-01-05 10:35:05 -07:00
Olivier Gayot d345cf999a Use autoinstall for ubuntu-advantage in integration tests
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2022-01-04 17:58:46 +01:00
Olivier Gayot fd403ce476 Add sample outputs for ua status --simulate-with-token --format json
This commit introduces example JSON files that would simulate output of
the ua_client script, as in the following command:

  $ ubuntu-advantage status \
      --simulate-with-token "${token}" \
      --format json

Two files are added, one for each of the following scenario:
 * output when supplied a valid, non expired token
 * output when supplied a valid but expired token

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2021-12-17 17:41:45 +01:00
Olivier Gayot fe4b6fde6f Only show UA screen if running on LTS release
The UA screen is now shown only if we are running on an LTS release.
In dry-run mode, we pretend to always be on Ubuntu focal.

To implement the possibility to skip the screen, we added another POST
resource to inform the server that we are finished configuring
UbuntuAdvantage.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2021-12-16 11:06:09 +01:00
Olivier Gayot 1c9c04d55d Add initial integration of Ubuntu Advantage in subiquity
Introduce a new view, model and controllers pair to enable Ubuntu
Advantage from Subiquity. For now, we expect the user to input an
alphanumeric token and rely on cloud-init to enable the features
associated with the subscription.

This implementation comes with a number of limitations:
 * inability to validate the token before first-boot
 * inability to check what features are associated with the Ubuntu
   Advantage subscription, before first-boot
 * the user must input the token directly: there is no mechanism to
   deduce the token based on email address and password.

The new screen is placed after the identity scree. The installation
should already be running when the UA screen will be shown to the user.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2021-12-08 23:25:39 +01:00
Dan Bungert c4a9b6a1d6 examples: add os-prober to win10 2021-12-07 11:46:28 -07:00
Carlos Nihelton 7179bfb4fc Sample files for testing
Those files simulate the information generated by WSL launcher.
2021-10-28 14:16:28 -03:00
Patrick Wu ec04a6833a
system_setup: shutdown/reboot tests 2021-10-18 17:15:45 +08:00
Didier Roche deab1b0859
Merge pull request #1091 from canonical/wsl_oobe_autoinstall
WSL OOBE - properly setup autoinstall
2021-10-11 09:34:59 +02:00
Patrick Wu 7ae8e108a6
system_setup: include full autoinstall system 2021-10-11 10:20:18 +08:00
Michael Hudson-Doyle 206b7ae678
Merge pull request #1092 from dbungert/source-catalog-tests
sources: add sample source catalog
2021-10-11 12:09:25 +13:00
Dan Bungert a9bf5e004b sources: add sample source catalog
* Add sample source catalog from impish iso
* Show in dryrun
* Use in one of the runtests invocations (but not really tested yet)
2021-10-08 13:02:55 -06:00
Patrick Wu 07b0407815
system_setup: refactor the testing system
1. updating testing system with the proper autoinstall schema
2. reconf mode testing included
2021-10-08 20:49:06 +08:00
Patrick Wu c934268813 system_setup: changes and fixes
1. rebase with main and update autoinstall-system-setup.yml
2. provide a more unified indent style
3. update get_userandgroups() to the dropped one
4. fix the problematic os action
5. simply asignments
6. assign default_loader a default value
7. provide a type-to-file dict in wsl_conf
8. provide stderr info when providing error in creating user
9. update schema and example files
2021-10-06 22:13:15 +08:00
Patrick Wu 1a7274dbba system_setup: unify api names and simply WSLconfig class into function 2021-10-06 22:13:15 +08:00
Patrick Wu 225cb1bd37 system_setup: fixes for after rebasing
1. add extra logs
2. improve the answers file
3. await the self.configured in wslconf API
2021-10-06 22:13:15 +08:00
Jean-Baptiste Lallement 4966173d6c Test system setup autoinstall
It also adds an argument --ignore-tz to the schema comparison test to
not fail on system where the schema has no TZ like WSL.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-28 09:32:39 +02:00
Dan Bungert 3de314a64f fixup: snap & autoinstall 2021-09-22 17:45:58 -06:00
Jean-Baptiste Lallement ab161250e1 Removed the progress view.
On non systemd systems (ie WSL) the progress view is always empty. Thus
this view is removed and the summary (formerly overview) view becomes
the last page of the setup with the reboot button. This button is
displayed dynamically when setup is complete.

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-09-01 19:06:50 +02:00
Jean-Baptiste Lallement 3044a1fc11 Update answer file with renamed controllers
WSL configuration controllers have been renamed, the answer file must be
updated accordingly

Co-authored-by: Didier Roche <didrocks@ubuntu.com>
2021-08-31 15:52:03 +02:00
Jean-Baptiste Lallement b0299f255f Added integration test for WSL
This tests covers the configuration of WSL on first boot.
2021-08-31 15:52:03 +02:00
Dan Bungert 0aa5e91670 Add probert output for win10 & bitlocker 2021-08-02 15:04:07 -06:00
Dan Bungert c79aa602dc Proper fix for setting timezone inappropriately in dryrun
Reenable integration test for set of timezone.
Don't set it while in dryrun.
2021-07-15 10:49:32 -06:00
Dan Bungert 4ed4e51a2e Workaround dryrun test actually setting timezone
Until a proper fix can be finished, remove the set of timezone from the
integration tests.
2021-07-14 19:02:42 -06:00
Dan Bungert 40945f1823
TimeZone: autoinstall and API (FR-1184) (#986)
* TimeZone: autoinstall and API

Add support for Get/Set timezone methods.  Get means that we inquire
with GeoIP as to which timezone is suggested.  Non-availability of
GeoIP, or a previous explicit Set, means that we return the system
timezone.  Set of timezone by Post results in set of the live system
timzeone, and queuing a set of the target system by way of cloud-init.

* Add clarifying comment about _request.
2021-07-13 06:25:03 -06:00
Michael Hudson-Doyle 916ee7516e add an imsm integration test 2021-07-07 08:40:33 +12:00
Michael Hudson-Doyle 6be1289933 add examples/imsm.json 2021-07-07 08:40:33 +12:00
Michael Hudson-Doyle d108d06aa8 add sample data with wifi 2021-06-09 11:07:22 +12:00
Dan Bungert 21058464fd
make_cloudconfig - start moving cloud config generation to models (#975)
Add make_cloudconfig as a function that models should offer that allows
for generation of the cloud-config snippet.
Move snaplist and locale to this mechanism.
Add a test for snaplist output.
2021-06-08 16:54:29 -06:00
Dan Bungert 2da973579e Cleanup example data
These examples were crashing dryrun if supplied as a machineconfig due
to the missing blockdev.
2021-06-02 14:54:43 -06:00
Michael Hudson-Doyle 1da1ead19c add a integation test for non-rich mode 2021-05-04 12:44:41 +12:00
Michael Hudson-Doyle 3b60666495
Merge pull request #925 from mwhudson/lp-1885644-again
add all documented fields to filesystem model classes
2021-04-12 11:24:23 +12:00
Michael Hudson-Doyle 5dbd872919 add test of mount options being propagated 2021-04-06 09:16:55 +12:00
Dan Bungert a0e2e244bd
add setting policy for post-install updates via autoinstall (#920)
* Add element updates (non-UI)

This can be controlled with autoinstall
updates: security or all

Also an API for controlling this:
curl --silent --unix-socket .subiquity/socket a/updates ->
"security"
curl -d '"all"' --unix-socket .subiquity/socket a/updates

* Automated tests - log grep for default/none/all states

* Enforce possible values on Updates controller

Route all the various get/set thru 2 common functions.
Validate incoming data.
2021-03-31 13:57:53 -06:00
Michael Hudson-Doyle 4cdfe469e7 run error commands on failure 2020-12-18 14:42:01 +13:00
Michael Hudson-Doyle edc43ff811 add a minimal server process
run it automatically in dry-run mode
2020-09-22 14:43:26 +12:00
Foster "Forst" Snowhill 069e870137
examples/autoinstall-interactive: remove duplicate "snaps" section 2020-08-23 14:28:26 +02:00
Michael Hudson-Doyle b8c9ca2484 add mirror to examples/autoinstall.yaml 2020-06-12 15:31:15 +12:00
Michael Hudson-Doyle 3c98f68fcf use a real locale in examples/autoinstall.yaml 2020-05-21 10:49:42 +12:00
Michael Hudson-Doyle ba106bbbed tests 2020-05-05 23:05:59 +12:00
Michael Hudson-Doyle 86376a4b78 be more intelligent about waiting for nics to get dhcp address when no autoinstall config is provided 2020-05-04 19:39:08 +12:00
Michael Hudson-Doyle 4891d76aca actually write the netplan from the autoinstall config to the target system
I got lost in a forest of similarly named methods :(
2020-05-04 19:37:43 +12:00
Michael Hudson-Doyle 81b459cb99 make spare_devices optional in autoinstall config 2020-05-04 14:18:42 +12:00
Michael Hudson-Doyle 8a84e470c5 make sure the size of a partition gets set to int 2020-05-04 14:16:03 +12:00
Michael Hudson-Doyle abc64fb5f2 do not force double "network" keys in autoinstall config
I obviously didn't test this very hard before release :/
2020-04-29 19:46:17 +12:00
Michael Hudson-Doyle 1ba62ec1cc make sure late-commands actually run :( 2020-04-22 17:11:25 +12:00
Michael Hudson-Doyle 0d51d66a57 rename MAKE_BOOT action to TOGGLE_BOOT 2020-04-21 10:51:00 +12:00
Michael Hudson-Doyle 670c9c838a add test for locale: in autoinstall file 2020-04-20 20:34:08 +12:00
Michael Hudson-Doyle 6ee32f4e19 have asking for confirmation cancel showing progress
otherwise the confiration dialog appears for 0.1s and then disappears, leaving the user stranded
2020-04-20 19:38:31 +12:00
Michael Hudson-Doyle 18e4d977e9 fix autoinstall refresh code to (a) match docs (b) work 2020-04-19 22:48:27 +12:00
Michael Hudson-Doyle e91f8bbf89 fix for omitting identity section when passing user-data 2020-04-19 21:44:09 +12:00
Michael Hudson-Doyle 96a6dfd010 add integration-style test for reusing an existing partitions 2020-04-14 09:50:56 +12:00
Michael Hudson-Doyle 22d84fb4cc fix some merge conflict resolution damage 2020-04-02 10:26:08 +13:00
Michael Hudson-Doyle c1c33dee03 add a simple integration test for autoinstall 2020-04-02 10:22:08 +13:00
Michael Hudson-Doyle c1855fe6d1 support packages, debconf-selections keys in autoinstall 2020-04-02 10:22:05 +13:00
Dimitri John Ledkov 6a091fcc44
Merge pull request #665 from mwhudson/cmdlist-checking
tweak autoinstall command lists
2020-04-01 22:13:10 +01:00
Michael Hudson-Doyle abc8f1dfb2 decouple install confirmation from filesystem view
because, in a partially interactive install, we might not show the
filesystem view at all, but should still ask for confirmation before
starting curtin
2020-03-31 22:58:05 +13:00
Michael Hudson-Doyle 03661dabec tweak autoinstall command lists
allow commands to be lists or strings
consider errors to be failures (except in error-commands)
2020-03-31 22:42:24 +13:00
Dimitri John Ledkov e416dd39f0
Merge pull request #663 from mwhudson/autoinstall-snaps
handle the 'snaps' section of the autoinstall file
2020-03-31 09:32:53 +01:00
Michael Hudson-Doyle a15858d934 handle the 'snaps' section of the autoinstall file
went through a few versions of this locally, this one is pleasingly
small in delta.
2020-03-31 17:09:47 +13:00
Michael Hudson-Doyle 32e79826ad do data loading / validation in a context 2020-03-30 10:35:45 +13:00
Michael Hudson-Doyle 32817ac410 add an invalid autoinstall file 2020-03-30 10:29:01 +13: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 99218fbeb4 support early and late commands 2020-02-04 14:03:59 +13:00
Michael Hudson-Doyle 9db0c18fdd add some example autoinstall files 2020-02-04 13:49:09 +13:00
Michael Hudson-Doyle e8a9cdf4f8 have dry-run install failures replay events from a real failure 2019-11-21 11:25:43 +13:00
Dimitri John Ledkov 82883cf75b Add multipath machine config 2019-10-08 15:40:50 +01:00
Dimitri John Ledkov 94de7dc522 Merge remote-tracking branch 'origin/pull/500/head'
Merge using existing partitions. Revert to using archive
curtin/deps/etc.

Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
2019-07-02 13:18:46 +01:00
Dimitri John Ledkov 71dbea28b1 Upgrade consoleconf in Ubuntu archive with i18n support.
Fixes #502
2019-07-01 11:07:27 +01:00
Dimitri John Ledkov dac6f12c0f Basic zdev view 2019-06-06 16:15:15 +01:00
Michael Hudson-Doyle 118a11cfa6 remove old sample machine data 2019-05-30 15:38:09 +12:00
Michael Hudson-Doyle 0c55149c31 run integration tests with simple sample data 2019-05-30 15:33:59 +12:00
Michael Hudson-Doyle e6ace190e3 add existing partitions sample data 2019-05-30 15:10:54 +12:00
Michael Hudson-Doyle 4a22f22189 when assembling vg from answers, check devices are ok_for_lvm_vg
And similar for RAID. Fix a couple of the answers files that got this
wrong and only worked by chance.
2019-05-30 10:07:26 +12:00
Dimitri John Ledkov 25071d9cf0 Drop installpath 2019-05-14 16:03:33 +02:00
Michael Hudson-Doyle d6ccebf9bb have answers-lvm-dmcrypt.yaml edit the vg's encryptedness off and on again 2019-05-02 13:00:42 +12:00
Michael Hudson-Doyle e12cdab65e hack snap version numbers in sample data to be more realistic 2019-04-09 23:13:37 +12:00
Michael Hudson-Doyle 0ce5a6bc2e record current and new versions of snap 2019-04-09 23:10:11 +12:00
Michael Hudson-Doyle 194137a151 Support 'accept-default' and 'country-code' in mirror answers 2019-04-04 12:12:50 +13:00
Michael Hudson-Doyle 35d41e26fd
Merge pull request #434 from mwhudson/refresh-branch
customize where subiquity refreshes from
2019-04-03 14:36:34 +13:00
Michael Hudson-Doyle ec15929d60 Update to probert tip
The minimum required: it still only looks at the "blockdev" key in the
probe data, none of the exciting new stuff.
2019-04-02 13:43:09 +13:00
Michael Hudson-Doyle f1177788e1 snap switch subiquity to stable/ubuntu-XX.YY.Z
also support passing subquity-channel= on the kernel command line
2019-03-29 15:07:11 +13:00
Michael Hudson-Doyle c1f8c10091 answers support for refresh screen 2019-03-12 11:49:03 +13:00
Michael Hudson-Doyle 4c1d374ee5 add snapdconnection.post and fake data captured from a real refresh 2019-03-12 11:49:03 +13:00
Michael Hudson-Doyle 9c9120403f add refresh sample data that shows an update for subiquity 2019-03-12 11:49:03 +13:00
Michael Hudson-Doyle 53d1006a06 Make the code for talking to snapd more generic
In preparation for the self-refresh and snap enterprise proxy work, both
of which will require talking to the snapd API.

This also makes the "snaps-from-examples" fakery happen at a lower level.
2019-03-04 16:18:57 +13:00
Michael Hudson-Doyle 8892e027e9 make sure that dmcrypt passphrase does not end up in log 2019-02-28 11:55:44 +13:00
Michael Hudson-Doyle 1e3a786ac2 add example with encrypted lvm 2019-02-28 11:55:17 +13:00
Michael Hudson-Doyle c571f58dcc fix saving static network data with search domains 2019-02-21 08:35:19 +01:00