summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* FIXUP: WIPbaserock/richardmaw/morph-diffRichard Maw2015-05-065-19/+71
|
* WIP: morph diffRichard Maw2015-05-062-0/+164
|
* LRC: Make get_updated_repo handle multiple refsRichard Maw2015-05-061-17/+28
| | | | | | | | Passing a single ref is still accepted, but if you have multiple refs you need to check from the same repository, it is more appropriate to do it in one call to get_updated_repo, as otherwise there will be unnecessary output about it not needing to be updated in multiple places.
* MorphologyLoader: Set filename attribute at parse timeRichard Maw2015-05-061-2/+3
|
* morph anchor: Handle updating refsRichard Maw2015-05-061-5/+6
| | | | | | | | Previously it would not attempt to make commits it needed locally available if the commit was available on the remote repo cache. Now it will do the update if the commit is not available locally, and will obey --no-git-update.
* morphlib.util: add word_join_listRichard Maw2015-05-061-0/+10
| | | | | This is useful for representing lists of items in status or exception messages.
* Update distbuild protocol version to 3Sam Thursfield2015-05-051-1/+1
| | | | | | | | | Commit 84096556ea54d4af236f1fe5f7ccf61c1343016f changed the protocol without changing the protocol version. Versions of Morph between that one and this one may hang forever in 'morph distbuild' if trying to build on an incompatible distbuild network. Change-Id: I9194657f59a4b4a61a6fde7bd85105b56ca1a78d
* Add yarns for basic `morph anchor` functionalityRichard Maw2015-05-011-0/+131
| | | | Change-Id: I77a8a3aab887f5d14a372690502df3fdeba6db10
* Add `morph anchor` commandRichard Maw2015-05-012-0/+227
| | | | Change-Id: If9d92d7c75b9c4276b69c482c076c6fc1d4ccbbf
* yarns: Fix typo in system branch creation yarnRichard Maw2015-04-291-1/+1
| | | | Change-Id: I1df58c33987597d4aa5a8eb241b4de4ac72fe250
* yarns: Fix get-repo test falsely checking exit resultRichard Maw2015-04-291-6/+3
| | | | | | | "the user gets the repo" does not set exit-morph, so it is not valid to check whether it exited successfully. Change-Id: I05e2d5c1919eee6b714269642eb9c39bcf578bbc
* RemoteRefManager: Fail all ref updates when one failsRichard Maw2015-04-291-1/+27
| | | | | | | There's no API to do it in one push yet, but we can send a delete for all the branches that *did* commit. Change-Id: I671e9384b84657a3e9034d62818caa0ac0d8de1e
* GitDir: Set the fetch or push url when the other is setRichard Maw2015-04-291-0/+4
| | | | Change-Id: I500cb81fd0f133bd9f4e76d46bc0ff8a4f57fe50
* yarns: Have non-bogus trove configRichard Maw2015-04-291-7/+9
| | | | Change-Id: I5dec13df6c28eeb4e8c83ec41fb4bd119e2eebb1
* CachedRepo: Fix reference to _gitdirRichard Maw2015-04-291-1/+1
| | | | | | | 87f8dbefda89bf6cb9e4b88f23a5317b054da0d4 added a method that used _gitdir, but the patch to change it to gitdir was merged afterwards. Change-Id: Ibd9bff73a0fe69b3c1c2ff6acd02df6cea4a13de
* install-files.configure: make possible to overwrite symlinksJavier Jardón2015-04-301-1/+10
| | | | | | os.symlink will fail if the origin file/link already exist Change-Id: I8175c8dce699e55c3e39e35dfd45c0c19b8bd96d
* Add a test for partial deploymentAdam Coldrick2015-04-302-1/+54
| | | | Change-Id: Iaab620f3d9ebc037fe024db933b03e8f40ca40a4
* Allow the deployment of individual chunks/strata from systemsAdam Coldrick2015-04-302-40/+219
| | | | | | | | | | | | | 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. Change-Id: I04ac58af57216335d9257f6620d09f18f61ea714
* morphlib: Add command to get build-log for a given chunk and system fileLauren Perry2015-04-302-0/+91
| | | | Change-Id: I09e9b17ef2e0fb94dbf5a96dca91062d64433add
* Add ssh keys conf extRichard Ipsum2015-04-301-0/+25
| | | | Change-Id: I4e7888cbff2e4708154538f8f0a48aeaa1a8a811
* Fix partial distbuilds of non-existant componentsAdam Coldrick2015-04-301-8/+9
| | | | | | | | | | Currently, attempting to distbuild a component which is not in the given system or doesn't exist at all will cause the full system to be built, rather than an error raised. This is because the logic which checks that all components were found is completely nonsensical. This commit makes it actually check the right thing. Change-Id: Ide4d7e3fa5f71e433f3a7b7c8c387fe594c92e43
* Add a CSV manifest generator.Adam Coldrick2015-04-304-3/+340
| | | | | | | | | | | | | | | | This adds a `morph generate-manifest-csv` command which creates a CSV manifest for a system containing license information, upstream URL and a guess at the version of each component in a system. The existing `morph generate-manifest` is also renamed to `morph generate-manifest-genivi` to improve the distinction between the two commands which generate a manifest. The basis of this commit was done by Michael Drake <michael.drake@codethink.co.uk>. Change-Id: I712de11eaa6e1564c5bae5f5f396e5e77484972f
* Check number of args given to build commandsRichard Ipsum2015-04-301-5/+38
| | | | Change-Id: I501632c4d7acde06e391df3752275a3afc334ba6
* Improve 'Deploy failed as system is not yet build' error.Sam Thursfield2015-04-301-4/+5
| | | | | | | | | | If a user had the wrong setting for artifact-cache-server then they could build a system with 'morph distbuild', then be told it wasn't built by 'morph deploy'. The logs do not show any info about which cache server was used, so it looks like a Morph bug. This change should make such a configuration problem much easier to spot. Change-Id: I932ca3c5caa46990f9bcd77d75b3862f49e0dfb8
* GitDirectory: Add a store_commit methodRichard Maw2015-04-301-4/+17
| | | | | | | commit-tree is usually sufficient, but I have a need to be able to create a commit directly. Change-Id: I80ba63eb9601aa1190554bb07522465ffb2cb5d9
* gitdir.PushFailureError: Show why pushes failedRichard Maw2015-04-301-3/+4
| | | | Change-Id: Ife3a809cbf241d8d5a283d7f010ccb5e4d7ea292
* CachedRepo: Expose the internal gitdir objectRichard Maw2015-04-302-27/+27
| | | | | | It's useful to be able to use this. Change-Id: Ib32d27ddb637f1b8ed683bdd8ec1db108529a163
* morph help: Expand upon the importance of the first trove-idRichard Maw2015-04-301-1/+3
| | | | Change-Id: I048687305054f08b0d8e01daa1366170b3eec323
* Install licensecheck.pl with morphlibAdam Coldrick2015-04-294-7/+618
| | | | Change-Id: If1b156a309236956d7a35136db35a8fd0ab3ad71
* Ignore BuildProgress messagesRichard Ipsum2015-04-291-1/+0
| | | | | | | | | | | | | | | | | | | | Once building starts we close the json machine on the initiator, but we may have received build progress events between processing our build-started event and closing the json machine, since there is not a nice way to tell the different types of build progress apart (they all use BuildProgress) we will ignore all BuildProgress messages for now. A possible fix for this is to introduce GraphProgress messages so that we can report the building of the graph without reporting other types of BuildProgress ("Waiting for worker" or "Transferring artifact to cache") that we're not interested in. Note that we will still report build failures or build success, so if there's a mistake in the definitions this will be reported before the detach can occur, similarly if the system is already built this will be reported before the detach happens. Change-Id: Ia006ccfba826d2c91f4dea6c028ecdcb5a2b02d6
* Remove n_state_machines_of_type functionRichard Ipsum2015-04-292-4/+2
| | | | Change-Id: Icfc3d1aa125196e208d7ac35f43f06c5f5a21ba4
* distbuild: Add distbuild status commandLauren Perry2015-04-297-10/+147
| | | | | | | | | Adds a command to get the status of all recently ran distbuilds for a given server (e.g. Running, Finished, Failed, Cancelled), so as to tell if a build running via distbuild-start has finished or otherwise exited without going through the server's log files Change-Id: I5ce9fe54ae7b1bd8fe3e0d629f615042be8827ed
* distbuild: Add distbuild start and cancel functionalityLauren Perry2015-04-298-11/+301
| | | | | | | | | | | Add command for distbuild-start to build_plugin in morphlib, and create a boolean parameter to inform the initiator whether to disconnect the controller and leave the build running remotely. Add distbuild-cancel command to parse currently-running distbuild build-request IDs and cancel the one matching the given argument Change-Id: I458a5767bb768ceb2b4d8876adf1c86075d452bd
* distbuild: Add protocol version checking for list-jobs commandLauren Perry2015-04-293-15/+30
| | | | | | | | | | | | | | | Currently, the distbuild-list-jobs command will fail if morph is outdated (i.e. protocol version for client and distbuild network don't match); a protocol_version field has been added to the list-jobs request message to fix this. Moved version check outside build-request message to reduce duplication in new functions. Generalised the list-request output to reduce duplication for any further additions that may require a message output. Change-Id: I28e733cbfe8c89e8c11427df5d40ab275abd313c
* Bump supported definitions format version to 3baserock-definitions-v3Javier Jardón2015-04-291-1/+1
| | | | | | | | | | | | Since commit 154a760fb884cee14c2604b8bfbe52b0e7c0d4b1 morph suports a new architecture (armv5) This is effectivly a change in the definitions format, as old morph doesnt recognizse this architecture and will fail if a system with this architecture is added to definitions Change-Id: I2adc3a4b103b35c8ca5ec6d4034b797fd10f2485
* Fix lines bigger than 79 characters in install-essential-files.configure.helpFrancisco Redondo Marchena2015-04-281-2/+2
| | | | | | This fixes morph check. Change-Id: I5f9c8f5e73c1976b623f9a75f97b5e9aa1887c44
* morphlib/builder.py: Add comment, os-release is now generated as an extensionJavier Jardón2015-04-281-0/+2
| | | | | | | | Do not remove this code for now as its possible that new versions of morph build old sytems without the install-essential-files extension Change-Id: I5e49d0bc6baee73bedf16469d922822e76286bc1
* Add install-essential-files configuration extensionJavier Jardón2015-04-282-0/+62
| | | | | | | This is meant to add essential system files like /etc/profile, /etc/os-release ... Change-Id: I3d67b3a452b32205c5d3c7303d128bda80ce75de
* distbuild: Fix NameError when worker disconnectsSam Thursfield2015-04-281-1/+1
| | | | Change-Id: Ifdaa92c209a4ca488c4447911bef9b1bf7d61438
* Add version guessing function to gitdir and cached repo.Michael Drake2015-04-282-0/+15
| | | | Change-Id: I1c79ce68a7a7534d36a9e83210e18a58e7b648e8
* get-repo: Delete partially cloned repo on errorsSam Thursfield2015-04-281-2/+9
| | | | | | | | | If a `morph get-repo` command hits an error or is interrupted while the 'git clone' operation is in progress, the partial clone is left around. When the user tries to run the command again, they hit an error saying the directory already exists. Change-Id: Id4bb57f2136049ede0ea900e7e359255617427ec
* Add armv5l to list of valid architecturesJavier Jardón2015-04-284-1/+11
| | | | | | | | Also add support to allow building compatible architectures on armv7 machines, as per the rationale in the comment in _validate_architecture(). Change-Id: Ie0fe4002523f1f92f576bac8b654d4ea6fad5cf2
* Add a test for `morph get-repo`Adam Coldrick2015-04-272-0/+67
| | | | Change-Id: Ie0ac708946c3b1d65d2022638c02d6a2d288ad9d
* Add a `morph get-repo` command to clone repositories from the cacheAdam Coldrick2015-04-272-0/+150
| | | | Change-Id: I0c175649bd98067ea69d471ebe6880aac5a25598
* Fix regression that caused original_ref to be lost in some buildsSam Thursfield2015-04-271-2/+3
| | | | | | | | | | Commit bd788c7219d8b ("Implement partial builds") caused the original_ref metadata to be lost in some cases. This meant that the metadata for built systems would have original_ref set to a SHA1 hex string, instead of the original named ref that the system was built from. Change-Id: Id31654ad60b411206ccc7ee70b46f005baa209ef
* morphlib: Add example use to morph certify and fix spelling errorLauren Perry2015-04-271-1/+6
| | | | Change-Id: I3c4b4f687703ab665841a3527044d0f669135513
* Rename help file to work with 'help-extensions' subcommandPedro Alvarez2015-04-241-0/+0
| | | | Change-Id: Ibf7cf1f81998678f9354d77f52e54344294e89f7
* Calculate the build graph in worker-buildAdam Coldrick2015-04-241-5/+25
| | | | | | | Calculate the build graph and find the artifact which is referred to by the ArtifactReference which was deserialised. Change-Id: Icbef90932979fc1a18daf0dedac16f4429f56349
* Make distbuild use an ArtifactReference not an Artifact internally when buildingAdam Coldrick2015-04-242-28/+30
| | | | | | | | We no longer serialise entire artifacts, so the output of deserialise_artifact is an ArtifactReference. This commit changes stuff in distbuild to know how to deal with that rather than an Artifact. Change-Id: I79b40d041700a85c25980e3bd70cd34dedd2a113
* Don't serialise the entire build graphAdam Coldrick2015-04-242-219/+131
| | | | | | | | | | The controller no longer needs to know everything about an artifact as the workers can calculate the build graph themselves quickly. This reduces the amount of data which needs to be serialised by serialise-artifact, making the yaml dump quicker. Change-Id: I6bd0bed14c2efb2f499e9d6f0a97e6188353121a