summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add a test for partial deploymentbaserock/adamcoldrick/partial-deployAdam Coldrick2015-03-232-1/+54
|
* Allow the deployment of individual chunks/strata from systemsAdam Coldrick2015-03-232-37/+125
| | | | | | | | | | | This commit allows the specification of one or more strata/chunks in a deployment entry in a cluster morphology to deploy instead of the full system if --partial is set. These are listed in a 'partial-deploy-components' field in each deployment definition. The components must be in the system, and this only works for tarball or sysroot deployments. It SHOULD NOT be used when deploying production systems, as it has a number of limitations.
* cmdtests: We can no longer meaningfully look at chunks in the cachebaserock/adamcoldrick/ostree-rebaseAdam Coldrick2015-03-1922-176/+4
| | | | | | | | | | | | | Its much harder to look at the contents of the artifact cache now that they aren't stored by chunk name (just cache key and artifact suffix). All of these were failing because they were trying to extract chunk tarballs or locate and inspect artifacts, so just make sure the builds themselves don't fail. The build-system tests are a lot of work to make into yarns, as we'll need to build systems with actual tools in as far as I can tell. Also disable the cross-bootstrap test for now.
* yarns: Disable the cross-bootstrap yarnAdam Coldrick2015-03-191-7/+9
| | | | | | | The cross-bootstrap plugin is currently full of hacks, so it makes sense to rewrite it properly rather than extending these hacks to work with OSTree. I don't have time to do this right now, so disable the cross-bootstrap yarn.
* yarns: Make the distbuild yarn expose the worker's artifact cache over HTTPAdam Coldrick2015-03-193-3/+29
| | | | | | | | | OSTree can easily pull over HTTP. All that is necessary is to expose the repo directory. This commit adds a simple HTTP server to do this in the test suite. Actual implementations should use something better, like lighttpd. Also add some logging of the cache servers in this yarn to help debug.
* morph-cache-server: Add support for an OSTree artifact cacheAdam Coldrick2015-03-191-52/+63
|
* gc: Make `morph gc` use the OSTree artifact cacheAdam Coldrick2015-03-191-2/+6
|
* deploy: Use OSTree to checkout the system for deploymentAdam Coldrick2015-03-191-7/+30
| | | | | | | | | Now that we have an OSTree artifact cache, the deploy plugin needs to use that to get the system to be deployed. Due to the changes in how we store systems, we need to get the contents of each stratum then put the system delta on top of that. This is still much quicker than unpacking stuff from tarballs.
* builder: Use the OSTree artifact cache when buildingAdam Coldrick2015-03-193-45/+49
| | | | | | | The API of the OSTree artifact cache is slightly different to that of the old tarball cache, so adjust things accordingly. Also, only store the files changed at system-construction-time rather than everything in system artifacts.
* Make morph use OSTreeArtifactCache instead of LocalArtifactCacheAdam Coldrick2015-03-191-2/+4
|
* RemoteArtifactCache: Support multiple cache methodsAdam Coldrick2015-03-191-0/+25
| | | | | This commit updates RemoteArtifactCache to enable it to interact with a remote OSTree artifact cache.
* Add an artifact cache which uses OSTreeAdam Coldrick2015-03-194-5/+232
|
* Add a class to wrap the OSTree APIAdam Coldrick2015-03-193-0/+141
|
* bins: We no longer want chunks to be tarballsAdam Coldrick2015-03-192-120/+37
| | | | | | Change create_chunk to put the contents of an artifact into a directory rather than storing them in a tarball, as we want to store chunks as directory trees in OSTree rather than tarballs now.
* Move the chunk cache logic into buildcommandAdam Coldrick2015-03-192-23/+23
| | | | | | This avoids needing to pass the cache to the staging area since lac.get returns a path to a directory tree rather than a file handle now, so we also don't need to do any unpacking.
* Create device nodes in staging areaAdam Coldrick2015-03-193-35/+39
| | | | | | | | | We can't store devices nodes in OSTree, so we can't create them at artifact build time and store them in the chunk artifacts anymore. Instead, we should create them in the staging area when installing an artifact with a source which has a morphology which defines them into the staging area.
* Add support for unionfs-fuseAdam Coldrick2015-03-194-16/+40
| | | | | | Overlayfs is new in version 3.18 of the kernel, so add support for a different implementation of a union/overlay filesystem in order to allow morph to work on older kernels.
* Use overlayfs when deployingAdam Coldrick2015-03-191-4/+34
| | | | | | | | | | | | When deploying, configuration extensions are run against the unpacked tarball of a system created by a build. If we are to use OSTree to store systems (rather than tarballs) this will not be possible as the result of `ostree checkout` would be read-only. To solve this, we use overlayfs to mount the unpacked tarball underneath a temporary directory somewhere, and run the configuration extensions on that mount point. This means that the changes are made in the temporary directory rather than directly on the tarball.
* Use overlayfs when building systemsAdam Coldrick2015-03-193-5/+45
| | | | | This will allow us to cache systems as a list of chunks and a small filesystem delta, rather than a massive tarball.
* Allow the passing of options to fsutils.mountAdam Coldrick2015-03-191-2/+5
| | | | | In order to mount using overlayfs, fsutils.mount needs to take a string of options to pass to the mount command.
* scripts/test-shell.c: Add missing license headerJavier Jardón2015-03-171-0/+15
| | | | Change-Id: I46ad9c15064de752e839611d2ce3ee016ec7cc46
* Fix line lengths in morphlib/exts/simple-network.configureAdam Coldrick2015-03-171-5/+9
| | | | | | | | Some lines were more than 79 characters long. This was causing ./check --full to fail on master of morph. This commit fixes the lines in question. Change-Id: I80969d2d89d3922e021b716c250796188d7a7f4c
* Merge "Use python3 compatible notation for catching exceptions"Javier Jardón2015-03-1721-40/+40
|\
| * Use python3 compatible notation for catching exceptionsJavier Jardón2015-03-1621-40/+40
| | | | | | | | Change-Id: Ibda7a938cd16e35517a531140f39ef4664d85c72
* | Merge branch 'jjardon/simple-network-networkd2'Javier Jardón2015-03-161-11/+131
|\ \ | |/ |/| | | | | Reviewed-By: Richard Maw <richard.maw@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
| * simple-network.configure: Rename networkd file generated by systemd chunkjjardon/simple-network-networkd2Javier Jardón2015-03-161-0/+29
| | | | | | | | | | Rename instead removal in case the user is already using a 10-dhcp.network file
| * simple-network.configure: Update documentationJavier Jardón2015-03-161-6/+9
| |
| * simple-network.configure: Generate default network config files in a functionJavier Jardón2015-03-161-6/+20
| | | | | | | | | | | | Use DHCP by defaul in the default interfaces: - for /etc/networ/interfaces: "lo:loopback;eth0:dhcp,hostname=$(hostname)" - for networkd: "e*:dhcp"
| * simple-network.configure: process pairs of parameters in a functionJavier Jardón2015-03-161-0/+29
| |
| * simple-network.configure: Add function to convert mask to cidr suffixJavier Jardón2015-03-161-0/+7
| | | | | | | | 255.255.255.0 -> 24
| * simple-network.configure: Generate networkd .network files as wellJavier Jardón2015-03-161-0/+33
| |
| * simple-network.configure: Move the generation of /etc/network/interfaces to ↵Javier Jardón2015-03-161-1/+6
| | | | | | | | a function
| * Use the modern way of the GPL copyright header: URL instead real addressJavier Jardón2015-03-16234-664/+429
| | | | | | | | Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
* | Merge "Use the modern way of the GPL copyright header: URL instead real address"Javier Jardón2015-03-16234-664/+429
|\ \ | |/ |/|
| * Use the modern way of the GPL copyright header: URL instead real addressJavier Jardón2015-03-16234-667/+432
| | | | | | | | Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
* | Fix call to status() in commit 364455436aded34ce6f843dfa68a32c14aaf01eaSam Thursfield2015-03-161-1/+2
| | | | | | | | I was meant to do this at merge time but didn't.
* | Merge "Use python3 compatible notation for octal constants"Javier Jardón2015-03-165-10/+10
|\ \
| * | Use python3 compatible notation for octal constantsJavier Jardón2015-03-135-10/+10
| | | | | | | | | | | | Change-Id: I771c3de9cecda7a503f4d36ae5d9fabc040892e4
* | | Merge "print: use function instead the statement one"Javier Jardón2015-03-161-1/+2
|\ \ \ | |/ /
| * | print: use function instead the statement oneJavier Jardón2015-03-131-1/+2
| |/ | | | | | | Change-Id: I7c6f618d5d19e03d906798a6f799d74ac55b0d09
* | Merge branch 'baserock/richardipsum/cache-exp'Sam Thursfield2015-03-161-19/+55
|\ \ | |/ |/| | | | | | | | | Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk> Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk> Reviewed-By: Richard Maw <richard.maw@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
| * Minimise repo cache fetchesRichard Ipsum2015-03-071-21/+49
| | | | | | | | | | | | | | If we know the build system for a chunk is cached then we also know that it doesn't have a chunk morph, so we don't need to look for one. (We only cache the build systems of chunks that don't have chunk morphs)
| * Fix bug in build system cache accessRichard Ipsum2015-03-071-3/+11
| | | | | | | | | | | | | | | | | | This fixes a bug that causes morph to run build system detection even though the build system has already been cached. The cache is accessed before the key has been computed (absref isn't known until after we've called resolve_ref) so it always misses.
* | Merge branch 'baserock/lauren/morph-version-message-fix'Pedro Alvarez2015-03-111-2/+2
|\ \ | | | | | | | | | | | | Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk> Reviewed-By: Javier Jardón <javier.jardon@codethink.co.uk>
| * | Fix how the morph protocol version error message is displayedLauren Perry2015-03-111-2/+2
|/ /
* | Merge branch 'sam/remove-foreach-test'Sam Thursfield2015-03-112-25/+2
|\ \ | | | | | | | | | | | | Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk> Reviewed-By: Francisco Redondo Marchena <francisco.marchena@codethink.co.uk>
| * | yarns: Remove test for `morph foreach`Sam Thursfield2015-03-112-25/+2
|/ / | | | | | | | | | | | | | | | | | | This test fails with latest Busybox. Since we plan on removing workspaces anyway, I don't see a reason to fix it. The `morph foreach` command does actually still work as expected. Morph's ./check test suite now passes again in a 'build' reference system built from commit 88eface4c72dab689bc409c77e209833a0acd038 or newer.
* | Merge branch 'sam/distbuild-build-logs'Sam Thursfield2015-03-1110-129/+143
|\ \ | |/ |/| | | | | Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk> Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
| * distbuild: Log in build-step-xx.log files when initiator cancels buildSam Thursfield2015-02-183-16/+31
| | | | | | | | | | This makes it easier to spot if an incomplete build was due to the user cancelling, or if it represents a dropped connection or internal error.
| * distbuild: Remove the build-steps messageSam Thursfield2015-02-185-53/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This message was hundreds of kilobytes in size, as it contained a recursive list of dependencies for each artifact in the build graph. It was used in the initiator only to print this message: Build steps in total: 592 This message is now gone. The 'Need to build %d artifacts' build-progress message now indicates the total build steps instead: Need to build 300 artifacts, of 592 total This is a compatible change to the distbuild protocol: old initiators will continue to work as normal with new controllers that don't send the build-steps message.