summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* morphlib/sourceresolver.py: Fail if morph doesnt support the version of ↵baserock-definitions-v1Javier Jardón2015-03-171-8/+12
| | | | | | | | | | | | | | | | | | | | | definitions format This patch will add the following restriction: if VERSION exist and its a YAML file and its a dict and has the key 'version' and the type stored in the 'version' key is an int and that int is not in the supported format, then fail. So, if someone is using 'version: 4' in VERSION, morph will fail (as opposed to current morph, that will not fail in the check but will likely fail when it tries to compile) Change-Id: I555f7e6018b9bdf18c80039df92a253acbd51c8c
* 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.
| * distbuild: Create a new directory to store build logs for each build.Sam Thursfield2015-02-182-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | It gets messy having hundreds of build-step-xx.log files in the current directory, and if two builds are run in parallel from the same directory the logs for a given chunk will be mixed together in one file. Now, a new directory named build-0, build-1, build-2 etc is created for each new build. If the user passes --initiator-step-output-dir the logs will be placed in that directory, instead. This behaviour is the same as before.
| * distbuild: Use source name, not artifact name, for build step logsSam Thursfield2015-02-181-1/+1
| | | | | | | | | | | | | | | | Users build sources, not artifacts. So the log files should be called build-step-systemd.log and not build-step-systemd-misc.log. Note strata are a kind of special case so you will still see build-step-foundation-runtime.log, build-step-foundation-devel.log etc.
| * distbuild: Fix build logs being sent to the wrong log filesSam Thursfield2015-02-181-54/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For a while we have seen an issue where output from build A would end up in the log file of some other random chunk. The problem turns out to be that the WorkerConnection class in the controller-daemon assumes cancellation is instantaneous. If a build was cancelled, the WorkerConnection would send a cancel message for the job it was running, and then start a new job. However, the worker-daemon process would have a backlog of exec-output messages and a delayed exec-response message from the old job. The controller would receive these and would assume that they were for the new job, without checking the job ID in the messages. Thus they would be sent to the wrong log file. To fix this, the WorkerConnection class now tracks jobs by job ID, and the code should be generally more robust when unexpected messages are received.
| * Update copyright yearsSam Thursfield2015-02-184-4/+4
| |
* | Merge branch 'jjardon/no_build_depends'Javier Jardón2015-03-064-55/+11
|\ \ | | | | | | | | | | | | | | | 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>
| * | Do not fail if a chunk doesnt have a 'build-depends' parameter definedjjardon/no_build_dependsJavier Jardón2015-03-042-20/+10
| | |
| * | morphlib/morphloader_tests.py: Remove test to require 'build-depends'Javier Jardón2015-03-041-21/+1
| | |
| * | morphlib/sourceresolver_tests.py: Remove test to require 'build-depends'Javier Jardón2015-03-041-14/+0
| | |
| * | morphlib/sourceresolver.py: Check and parse VERSION fileJavier Jardón2015-03-041-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only fail if: - VERSION file exists - and its a yaml file - and its a dict - and has the key 'version' - and the contents of the key 'version' is an int - and that int is in the list of non_supported_versions (empty at the moment)
| * | morphlib/sourceresolver.py: Remove not used functionsJavier Jardón2015-03-041-16/+0
| | | | | | | | | | | | _get_morphology_from_definitions() and _get_morphology_from_repo()
| * | morphlib/sourceresolver.py: Do not duplicate what is already done in ↵Javier Jardón2015-03-041-8/+3
| | | | | | | | | | | | load_from_string()
| * | morphlib/morphloader.py: Add a check to load_from_string()Javier Jardón2015-03-041-1/+5
| | |
| * | morphlib/morphloader.py: Update copyrigthJavier Jardón2015-03-041-1/+1
| | |
| * | morphlib/sourceresolver.py: Add _get_file_contents()Javier Jardón2015-03-041-12/+23
| | | | | | | | | | | | And make _get_morphology() use it
| * | morphlib/sourceresolver.py: Add _get_file_contents_from_definitions()Javier Jardón2015-03-041-1/+10
| | | | | | | | | | | | And make _get_morphology_from_definitions() use it
| * | morphlib/sourceresolver.py: Add _get_file_contents_from_repo()Javier Jardón2015-03-041-5/+11
| | | | | | | | | | | | And make _get_morphology_from_repo() use it
| * | Add check for virtual networksRichard Ipsum2015-03-041-0/+48
| | | | | | | | | | | | An exception will be raised if any needed networks are not started
| * | Check file can be created at locationRichard Ipsum2015-03-041-1/+22
| | |
| * | distbuild: Be more robust when a worker disconnectsSam Thursfield2015-03-041-8/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | The logic to handle a worker disconnecting was broken. The WorkerConnection object would remove itself from the main loop as soon as the worker disconnected. But it would not get removed from the list of available workers that the WorkerBuildQueue maintains. So the controller would continue sending messages to this dead connection, and the builds it sent would hang forever for a response.
| * | Only update Git submodules in cache when necessarySam Thursfield2015-03-043-66/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This saves a duplicate `git remote update origin` that was being run as part of each chunk build. For any repos that have submodules, it also avoids updating repos if the SHA1 we need to build is already present locally. As well as speeding up builds slightly, this means Morph can now build without being connected to a network, as long as the local Git cache all of the necessary repos and commits in the build, without needing the '--no-git-update' option. The code is also now in a more logical place than before.
| * | Fix copyright yearsSam Thursfield2015-03-041-1/+1
| | |