| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| | |
As we are running Morph from the source dir we need to set PYTHONPATH so
that extensions are correctly loaded.
Also, the version of Yarn in Baserock sets 'SRCDIR' so we do not need to
set a default any more.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
If the disk image was not yet created then the os.remove() call fails
and the original exception gets lost, causing confusion and sadness.
Also print status earlier on failure
|
| |
| |
| |
| |
| | |
Most write extensions don't handle both initial deployments and upgrades
of a system.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A write extension will have various kinds of sanity checks to do before
actually performing the write. The current architecture of 'morph
deploy' means that several minutes pass between the user starting the
command and the write extension actually executing. It would be
rage-inducing watching `morph deploy` spend 3 minutes unpacking a
system only to then abort due to a silly error such as forgetting the
--upgrade switch. Therefore it's better for now to split the sanity
checks out into separate extensions that can be run as soon as possible
and abort if the write extension is not going to be able to operate.
For now this will just be used to validate usage of the --upgrade flag
but in future checking connectivity to remote servers and the like
should be done here too.
|
| |
| |
| |
| |
| | |
Now you can deploy an upgrade, set it to be the default version and reboot
into it all with one call to `morph deploy`.
|
| |
| |
| |
| |
| | |
Also, be more flexible when parsing environment booleans -- convert to
lower case and match 0/1 and true/false as well as yes/no.
|
| | |
|
| |
| |
| |
| |
| |
| | |
We now have a OS version manager tool in Baserock (in tbdiff.git). The
code to deploy a new base OS version should live there, to minimise
duplication between write extensions.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This messes up the baserock-system-config-sync tool. Systemd does not
require /etc/fstab to exist in any case.
I have bumped the 'system-compatibility-version' field in this commit
to trigger rebuilding all system artifacts.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The shared state directories defined in writeexts.py (/var, /home etc.)
are now separate Btrfs subvolumes that are mounted in place using fstab.
There are some warnings on mounting /var and /srv about the mountpoint
not being empty. Not yet investigated.
If a configure extension has already added / to the fstab, use the
device it chose rather than assuming /dev/sda. This is required for the
vdaboot.configure extension that we use for OpenStack deployments.
Similarly, if a configure extension has added an entry for a state
directory in /etc/fstab already, we don't replace it with a /state/xxx
directory. That's only done as a default behaviour.
|
| | |
|
|/
|
|
|
| |
We will need this file to enable a bootloader menu to choose between
OS after an upgrade.
|
|
|
|
|
|
| |
After this, "./check --full" works.
Reviewed-by: Daniel Silverstone (on IRC)
|
|
|
|
| |
This reverts commit a72c8dca6965d1ac239e4f0102f08fbf7fe59ac7.
|
|
|
|
| |
This reverts commit ab0a83a09a93ca33aa402d9c4d3b916a48a1a882.
|
|
|
|
| |
This reverts commit 329b81419be20e7b1f2651a47030186216044eec.
|
|
|
|
|
|
|
| |
Add a command 'help-extensions' to list all extensions.
Add the ability to find help on an extension by calling
'morph help [extension name]'. This will then call
the extension with the '--help' option to obtain help text.
|
| |
|
|
|
|
|
| |
'--help' when used with a subcommand will show the subcommand help.
Do not reflow the help text by using a custom formatter.
|
|\
| |
| |
| | |
Reviewed-by: Lars Wirzenius
|
| | |
|
| |
| |
| |
| |
| | |
This rips out any remaining order-preserving code and instead uses the
yaml dumper from morphloader.
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
'origin/baserock/richardmaw/10312/ensure-not-add-repo-ref'
This includes a typo fix of Unpertify -> Unpetrify
Reviewed-by: Lars Wirzenius
|
| | |
|
|/
|
|
|
|
|
|
| |
It should no longer be possible to set these fields. Either we create
the morphologies with them in a GIVEN, at which point we already know
it's there, so checking whether it is there is pointless; or we check
that morph doesn't create them, but the current implementation would not
allow it, since yarn doesn't have THEN NOT.
|
|\
| |
| |
| | |
Reviewed-by: Sam Thursfield
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This now means that the system morphology is not altered when chunks are
altered, so some tests had to change.
Since this uses the python warnings API, these warnings can be ignored
by running
python -W ignore:"stratum morphology" \
-W ignore:"system morphology" \
"$(which morph)" ...`
or turned into errors with
python -W error:"stratum morphology" \
-W error:"system morphology" \
"$(which morph)" ...`
|
| |
| |
| |
| |
| | |
Refs should be completely omitted, and this is now the standard
behaviour, so there's little value in testing the behaviour separately.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
This includes various changes allowing the repo and ref fields to be
missing; but also a change to the the component_key function, so that
instead of generating a string, it returns a tuple, since it's only
required to be a consistently hashable index.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This test stopped being fit for purpose after an accidental edit made it
no longer check the stratum build depends.
However, rather than fixing it, it should be removed, since we're
changing morph's behaviour to not support morphologies in different
repositories, which means that updating these refs is no longer
necessary.
|
| |
| |
| |
| |
| | |
We don't support this any more, it makes morphologies complicated to
implement and reason about.
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
Reviewed-by: Pedro Alvarez, Lars Wirzenius and Rob Taylor
|
|/
|
|
|
|
|
|
|
|
|
|
| |
VirtualBox changed a command line option in 4.3 incompatibly, so we now
have to check the version number and change an option from --sataportcount
to --portcount if the version of VirtualBox running on the target is at
least 4.3
This turns the version into a tuple and compares it against another,
since it's more reliable than comparing strings, which will count '1.10'
as earlier than '1.2', and more convenient than comparing the digits
individually.
|
|\ |
|
|/ |
|
|\
| |
| |
| |
| |
| | |
'baserock/richardmaw/S10166/test-key-collision-with-artifact-names-v2' of git://git.baserock.org/baserock/baserock/morph
Reviewed-by: Lars Wirzenius
|
| | |
|
| |
| |
| |
| |
| |
| | |
This moves the GIVEN system $system uses $artifacts from $source to the
generic implements section, and the Python implementation into the
edit-morph helper script.
|
|/ |
|
|\
| |
| |
| |
| |
| | |
git://git.baserock.org/baserock/baserock/morph
Reviewed-by: Sam Thursfield
|