summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Add wgetRichard Ipsum2015-07-172-0/+15
| | | | Change-Id: I2cd784c45a4e96f59b124ca9b9bb06993b9e3f12
* Update lorry to gain two new featuresRichard Ipsum2015-07-161-1/+1
| | | | | | | * "reproducible" tar lorries * zip support Change-Id: Id12e868c511996d7e44651bfb4b4c885cf9748c4
* Fix chunk name mismatches in 'build-depends' listsPedro Alvarez2015-07-152-2/+2
| | | | | | We forgot about this in 4a81346961031aecc50c657423bd8d68250fc40d Change-Id: I60c73295f622abff4bafeaebfa830db0d7efcd9a
* Fix 'name' field mismatchesSam Thursfield2015-07-0711-11/+11
| | | | | | | | | | | | | The 'name' field is set in both a chunk's definition, and in the chunk reference point in each stratum where that chunk is included. Some of them didn't agree on the name of the chunk. In all cases I've made 'name' match the filename of the chunk .morph file, either by fixing the chunk .morph file or the stratum .morph file (and in one case, the filename). This should have no effect on behaviour, it's just a tidyup. Change-Id: I90bcd3fa382e24c8aa2d370ea5f545491169d1db
* Make ssh-rsync.check check VERSION_LABELRichard Ipsum2015-07-041-0/+18
| | | | | | | | | As well as checking whether it's defined, we make sure there isn't already a system named $VERSION_LABEL Note, this depends on the new json-list feature of system-version-manager. Change-Id: I0dee5253ba95a002b493f4179c2acda734afc37a
* babel: Don't include the date in the version numberAdam Coldrick2015-07-031-3/+4
| | | | | | | | A patch to fix this has been sent upstream, but the upstream repository seems inactive. Pull request is here: https://github.com/mitsuhiko/babel/pull/164 Change-Id: I1170e8b66c3975459dfed8ffdf66f053c2c477a5
* ca-certificates: This chunk doesnt use autotools build systemJavier Jardón2015-06-291-4/+5
| | | | | | But a simple Makefile instead Change-Id: I0d73e2cf44fc97ba9f6452ea417c1b317b68efa6
* essential-files: create symlink /etc/os-release -> /usr/lib/os-releasebaserock/pedroalvarez/improve-mason-reportJavier Jardón2015-06-233-6/+8
| | | | | | | | | | | | | | | systemd is moving towards having /usr to be vendor operating system only, whilst /etc will be used for configuration only (the contents of this directory could be erased to do a factory reset) [1]. /usr/lib is the recommended place to place this file [2] [1] http://0pointer.net/blog/projects/stateless.html [2] http://www.freedesktop.org/software/systemd/man/os-release.html This has been reported by Tiago Gomes Change-Id: I58dd711fac162751a71e8a7d9c65ce9583a23cc7
* attr: separate bootstrap and configure commandsJavier Jardón2015-06-232-2/+2
| | | | | | Also attr doesnt depend on automake to build Change-Id: Ied3ba4af7991c44ed080362a8dae5d00092e5514
* More fixes for various deployment extensionsAdam Coldrick2015-06-237-6/+10
| | | | | | | | | Some of the extensions had extraneous imports, and a couple didn't import things they used. The same bug as in the kvm deployment extension existed in the virtualbox deployment extension, and is fixed in this commit. Change-Id: I2bd8169818ce5444af522c135a9e0326c1212ce2
* Fix kvm deploymentAdam Coldrick2015-06-222-4/+8
| | | | | | | | Deployment to kvm got broken by the patch to remove dependencies on morphlib and cliapp. This commit fixes the issues that were introduced. Change-Id: Iface1b38e638be4d84cf86b434ee30e1fffc34a0
* essential-files: Install brpaste by defaultPedro Alvarez2015-06-222-0/+31
| | | | | | This script helps developers to share logs via paste.baserock.org Change-Id: I22b255c90e0b42a4b65dea41ec196ae92577a7f8
* OpenStack: add configuration for scenario testsTiago Gomes2015-06-222-8/+17
| | | | Change-Id: Ifaaced5256ce7aeca786118a2075c991b3fa103f
* OpenStack: integrate the OpenStack unified CLI clientTiago Gomes2015-06-227-0/+54
| | | | | | | | | "OpenStackClient (aka OSC) is a command-line client for OpenStack that brings the command set for Compute, Identity, Image, Object Store and Volume APIs together in a single shell with a uniform command structure." Change-Id: Icf3200e99100f46e5d8044844232025e7bada75d
* Set default hostnames in release.morphAdam Coldrick2015-06-221-0/+7
| | | | Change-Id: Iffce1a4c25965ca4d7e635534fab16d0e8ccb39b
* Merge branch 'baserock/adamcoldrick/remove-dependencies-v3'Adam Coldrick2015-06-1928-350/+1420
|\ | | | | | | | | | | | | | | This stops the deployment extensions from depending on morphlib and cliapp, as well as setting the definitions version to 5. Reviewed-by: Sam Thursfield <sam.thursfield@codethink.co.uk> Reviewed-by: Paul Sherwood <paul.sherwood@codethink.co.uk>
| * Remove dependencies on morphlib and cliapp from deployment extensionsbaserock/adamcoldrick/remove-dependencies-v3Adam Coldrick2015-06-1126-406/+546
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done by either copying some utility functions from morph into writeexts.py, and using the `subprocess` module rather than cliapp's runcmd and ssh_runcmd. Note that this means that these extensions will require "$definitions_checkout/extensions" in PYTHONPATH when they are run. This commit also updates VERSION to 5, since the PYTHONPATH requirement means that this change is incompatible with old versions of morph. Change-Id: Iec6fa7e3c7219619ce55e18493e5c37c36e97816
| * Move xfer-hole and recv-hole into extensions/baserock/adamcoldrick/writeexts-in-definitions-v2Adam Coldrick2015-06-102-0/+0
| | | | | | | | Change-Id: I46ed5f3ec85f9662bebac592eff7a6eb6d628f28
| * Put recv-hole and xfer-hole into definitionsAdam Coldrick2015-06-102-0/+295
| |\ | | | | | | | | | This merge commit adds the history of the two scripts as well.
| | * Use the modern way of the GPL copyright header: URL instead real addressJavier Jardón2015-03-162-6/+4
| | | | | | | | | | | | Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
| | * xfer-hole: Fix bug in copy_slice_from_file.Lars Wirzenius2014-10-021-2/+8
| | | | | | | | | | | | | | | os.read is limited to an int in size. copy_slice_from_file was trying to os.read more than that causing an OverflowError.
| | * Use $((...))) instead of $(... | bc)Lars Wirzenius2014-09-051-4/+4
| | |
| | * Document why VBoxManage is run in recv-hole instead of callerLars Wirzenius2014-09-051-0/+25
| | |
| | * Transfer sparse files faster for kvm, vbox deploymentLars Wirzenius2014-09-052-0/+266
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The KVM and VirtualBox deployments use sparse files for raw disk images. This means they can store a large disk (say, tens or hundreds of gigabytes) without using more disk space than is required for the actual content (e.g., a gigabyte or so for the files in the root filesystem). The kernel and filesystem make the unwritten parts of the disk image look as if they are filled with zero bytes. This is good. However, during deployment those sparse files get transferred as if there really are a lot of zeroes. Those zeroes take a lot of time to transfer. rsync, for example, does not handle large holes efficiently. This change introduces a couple of helper tools (morphlib/xfer-hole and morphlib/recv-hole), which transfer the holes more efficiently. The xfer-hole program reads a file and outputs records like these: DATA 123 binary data (exaclyt 123 bytes and no newline at the end) HOLE 3245 xfer-hole can do this efficiently, without having to read through all the zeroes in the holes, using the SEEK_DATA and SEEK_HOLE arguments to lseek. Using this, the holes take only take a few bytes each, making it possible to transfer a disk image faster. In my benchmarks, transferring a 100G byte disk image took about 100 seconds for KVM, and 220 seconds for VirtualBox (which needs to more work at the receiver to convert the raw disk to a VDI). Both benchmarks were from a VM on my laptop to the laptop itself. The interesting bit here is that the receiver (recv-hole) is simple enough that it can be implemented in a bit of shell script, and the text of the shell script can be run on the remote end by giving it to ssh as a command line argument. This means there is no need to install any special tools on the receiver, which makes using this improvement much simpler.
| * Stop writeexts.py depending on morphlibAdam Coldrick2015-06-101-6/+17
| | | | | | | | Change-Id: I7f3702e80678aeee89dd22116510a6d8d7e04841
| * Put writeexts.py in extensions subdirectoryAdam Coldrick2015-06-101-0/+0
| | | | | | | | Change-Id: I6eb8fe69416bbf483ffa8c1c317c8f8cea56ef0e
| * Put writeexts.py from morphlib in definitionsAdam Coldrick2015-06-101-0/+624
| |\ | | | | | | | | | | | | | | | This is only used by write extensions, all of which are now in definitions. This merge commit also adds all the history of the writeexts.py file from morphlib.
| | * Merge "deploy: Tighten SSH connectivity check"Javier Jardón2015-03-191-1/+5
| | |\
| | | * deploy: Tighten SSH connectivity checkSam Thursfield2015-03-191-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I accidentally tried to deploy a Baserock upgrade to a Fedora cloud machine. Every SSH command that Morph ran got the following output: Please login as the user "fedora" rather than the user "root". The existing implementation of check_ssh_connectivity() didn't raise an exception, leading to confusing errors further down. The new implementation produces this error: ERROR: Unexpected output from remote machine: Please login as the user "fedora" rather than the user "root". Change-Id: Ida5a82b25d759167aa842194b0d833d0565b4acf
| | * | Merge "Use python3 compatible notation for catching exceptions"Javier Jardón2015-03-171-2/+2
| | |\ \
| | | * | Use python3 compatible notation for catching exceptionsJavier Jardón2015-03-161-2/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: Ibda7a938cd16e35517a531140f39ef4664d85c72
| | * | | Merge branch 'jjardon/simple-network-networkd2'Javier Jardón2015-03-160-0/+0
| | |\ \ \ | | | |/ / | | |/| | | | | | | | | | | | Reviewed-By: Richard Maw <richard.maw@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
| | | * | Use the modern way of the GPL copyright header: URL instead real addressJavier Jardón2015-03-161-2/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
| | * | | Merge "Use the modern way of the GPL copyright header: URL instead real address"Javier Jardón2015-03-161-2/+1
| | |\ \ \ | | | |/ / | | |/| |
| | | * | Use the modern way of the GPL copyright header: URL instead real addressJavier Jardón2015-03-161-2/+1
| | | |/ | | | | | | | | | | | | Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
| | * | Use python3 compatible notation for octal constantsJavier Jardón2015-03-131-1/+1
| | |/ | | | | | | | | | Change-Id: I771c3de9cecda7a503f4d36ae5d9fabc040892e4
| | * Merge branch 'jjardon/no_build_depends'Javier Jardón2015-03-060-0/+0
| | |\ | | | | | | | | | | | | | | | | | | | | Reviewed-By: Paul Sherwood <paul.sherwood@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk> Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
| | | * Fix copyright yearsSam Thursfield2015-03-041-1/+1
| | | |
| | * | Fix copyright yearsSam Thursfield2015-02-271-1/+1
| | |/
| | * Fix Morph producing unbootable systemsSam Thursfield2015-02-261-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the version of btrfs-progs in the Baserock reference system definitions was updated to v3.18.2, Morph has produced unbootable x86 systems. This is down to lack of support for new Btrfs features in SYSLINUX. This patch disables the new features so that deployed systems will boot. Although I generally don't want to have compatibility code in Morph, this patch keeps support for the old mkfs.btrfs (which doesn't support the commandline options that we need to pass to new mkfs.btrfs). This will hopefully save people from suffering 'I need to use new Morph to upgrade my devel system, but new Morph doesn't run on my devel system'.
| | * Document KERNEL_ARGS write extension parameterPete Fotheringham2014-12-151-0/+6
| | |
| | * Whitespace removalPete Fotheringham2014-12-151-8/+8
| | |
| | * Document BOOTLOADER_INSTALL and BOOTLOADER_CONFIG_FORMAT write extension ↵Pete Fotheringham2014-12-151-3/+2
| | | | | | | | | | | | parameters
| | * writeexts.py: convert 'mount' to context managerPedro Alvarez2014-12-011-38/+27
| | |
| | * Split create_local_system on various methodsPedro Alvarez2014-12-011-4/+19
| | | | | | | | | | | | | | | | | | This way we can still use create_local_system to create a raw disk, but also reuse bits of it to be able e.g. to deploy to devices.
| | * Don't loop mount when mounting a devicePedro Alvarez2014-12-011-1/+4
| | |
| | * Add force flag to 'mkfs.btrfs'Pedro Alvarez2014-12-011-1/+1
| | | | | | | | | | | | | | | | | | This way when deploying to a device it will format it without asking the user if the device already has format.
| | * Add 'is_device' function to check if we are deploying to a devicePedro Alvarez2014-12-011-0/+11
| | |
| | * Prevent cliapp from logging env. variables with 'PASSWORD' in their nameSam Thursfield2014-09-191-0/+4
| | | | | | | | | | | | | | | The upstream cliapp project is not interested in this functionality right now.
| | * deploy: Make Python extensions log debug messages to MORPH_LOG_FD by defaultSam Thursfield2014-09-011-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously logging was disabled for Python deploy extensions. We get a lot of useful information for free in the log file by doing this: the environment will be written when the subprocess starts, and if it crashes the full backtrace will be written there too. Subcommand execution with cliapp.runcmd() will also be logged.