summaryrefslogtreecommitdiff
path: root/zuul
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge "Send open CORS header for jobs and builds" into feature/zuulv3Zuul2017-12-131-1/+4
|\
| * Send open CORS header for jobs and buildsMonty Taylor2017-12-131-1/+4
| | | | | | | | | | | | | | We don't have any precious data yet, so keep builds and jobs open like status. This lets us use built artifacts as preview from CI jobs. Change-Id: I81cad00d2d8f0b763601fc67a4863faa96037fc7
* | Merge "Serve keys from canonical project name" into feature/zuulv3Zuul2017-12-132-6/+5
|\ \
| * | Serve keys from canonical project nameJames E. Blair2017-12-082-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than asking users to know the 'source' name in order to retrieve the project's public key, use the tenant and canonical project name. The tenant already appears in most web urls, and the project name should be known to the user. Change-Id: Icd1269ffdd8879bd177fd452978a2c88b2f1b205
* | | Merge "Add finger gateway" into feature/zuulv3Zuul2017-12-135-108/+462
|\ \ \ | |_|/ |/| |
| * | Add finger gatewayDavid Shrewsbury2017-12-135-108/+462
| |/ | | | | | | | | | | | | | | | | | | | | | | | | This adds the zuul-fingergw app that should be run as root (so that it can connect to the standard finger port 79), but changes user privs immediately after binding that port. Common streaming functions have been moved to streamer_utils.py to be shared among modules. Support for CommandSocket has been included. Change-Id: Ia35492fe951e7b9367eeab0b145d96189d72c364
* | Merge "Support table prefix for sql reporter" into feature/zuulv3Zuul2017-12-129-29/+51
|\ \
| * | Support table prefix for sql reporterTobias Henkel2017-12-099-29/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some environments zuul operators may have to rely on external database providers. In this case it can be cumbersome to get extra databases for each test environment. Adding an optional prefix to the table names makes it possible to gracefully run several zuul deployments against the same database and ensure they're still isolated against each other. Change-Id: Ib9948d6d74f4dc2453738f5d441e233e39e7f944
* | | Merge "Remove unused setup_tables" into feature/zuulv3Zuul2017-12-121-1/+0
|\ \ \
| * | | Remove unused setup_tablesJoshua Hesketh2017-12-111-1/+0
| |/ / | | | | | | | | | | | | | | | Setup tables was called twice. Change-Id: Idd937e1844689edfadbfeb2e180a8ab497c29ec9
* | | Merge "Error on duplicate YAML keys" into feature/zuulv3Zuul2017-12-111-0/+42
|\ \ \
| * | | Error on duplicate YAML keysJames E. Blair2017-12-111-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should help avoid a situation where a dictionary value is silently overwritten. This is in accordance with the YAML spec, and it is a great mystery why pyyaml doesn't do this already. Change-Id: I130f2b7e9c9fb8bd4176fd658f378e249a6a3b3f
* | | | Merge "Add more job selection debug lines" into feature/zuulv3Zuul2017-12-111-0/+7
|\ \ \ \ | |/ / /
| * | | Add more job selection debug linesJames E. Blair2017-12-111-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Even if a global variant matches, a project pipeline variant must still match. This is important information to know when debugging. Change-Id: Iaaff183c62457f9d264111002371f5f44ced867b
* | | | Merge "Debug job selection" into feature/zuulv3Zuul2017-12-111-0/+7
|\ \ \ \ | |/ / / | | / / | |/ / |/| |
| * | Debug job selectionJames E. Blair2017-12-111-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add some (well, a lot, more than likely) debug lines for each job variant which is considered when freezing the job graph. This will help admins determine why a job doesn't run. Change-Id: Ia3b140db2a5d5117f96c2fec9ae1cc9ddd28b2d0
* | | Merge "Add stackdumphandler to zuul-web" into feature/zuulv3Zuul2017-12-091-0/+2
|\ \ \
| * | | Add stackdumphandler to zuul-webTobias Henkel2017-12-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The stackdumphandler could also be useful for zuul-web from times to times. Change-Id: Icf788391fcf7df94b136ea2d78f72c8d7e5e5778
* | | | Merge "Make all zuul-web urls relative" into feature/zuulv3Zuul2017-12-094-13/+13
|\ \ \ \
| * | | | Make all zuul-web urls relativeTobias Henkel2017-12-084-13/+13
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently some static files are retrieved with relative and some with absolute paths. This requires hacks (e.g. ProxyHTMLURLMap) if zuul runs under a sub url and makes url rewriting much harder. Switch them all to relative paths. Change-Id: I3350faf760af7b5bd92dbc344a1110dde3a35863
* | | | Remove large status header and taglineMonty Taylor2017-12-081-2/+0
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | With the dashboard navbar above, the words "Zuul Status" aren't really neeed. Also, "Real-time status monitor of Zuul, the pipeline manager between Gerrit and Workers." seems like text that's a little out of place now. Change-Id: I5741f1e7edf721eec3a445c054f036a1d17bb172
* | | Web: Drop some columns from build listJames E. Blair2017-12-081-6/+0
|/ / | | | | | | | | | | | | | | | | | | The newrev, node name, and end time are not as useful as the other columns, and can be found by following links to the change or logs. In the future, we can redesign the display so that the user can select extra details for a change, but for now, improve the ability to scan the results quickly by removing these less-used columns. Change-Id: I17179178b5486101c9134f8684c6e69f35e1ea7c
* | Merge "Remove implied playbook extensions" into feature/zuulv3Zuul2017-12-071-7/+5
|\ \
| * | Remove implied playbook extensionsJames E. Blair2017-12-051-7/+5
| | | | | | | | | | | | | | | | | | | | | We deprecated this a while ago, and most changes to OpenStack projects implementing the change have landed. Change-Id: Ie2519f2b4144761b8e4d17ec3299cf4238e16f08
* | | Merge "Rename ssh_port to connection_port" into feature/zuulv3Zuul2017-12-072-2/+2
|\ \ \
| * | | Rename ssh_port to connection_portTobias Henkel2017-12-062-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the upcoming windows support we don't have ssh as the only connection type. As a preparation for this generalize ssh_port to connection_port. Change-Id: Ie505fedea7b641a860b7ac4f834d96ce5351dd74 Depends-On: Ic1939054f0604411e0122db8dbd7e9886ceaa974
* | | | Merge "Add command socket support to zuul-scheduler" into feature/zuulv3Zuul2017-12-072-10/+59
|\ \ \ \
| * | | | Add command socket support to zuul-schedulerPaul Belanger2017-12-062-10/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring online commandsocket support for the scheduler. Change-Id: Ia1719650623e79d40f239776eb770550bb73169b Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* | | | | Merge "Move send_command() into ZuulApp" into feature/zuulv3Zuul2017-12-073-21/+10
|\ \ \ \ \ | |/ / / /
| * | | | Move send_command() into ZuulAppPaul Belanger2017-12-063-21/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can start to remove some duplicate code and make it easier to add commandsocket support to other processes. Change-Id: I605ca36b6627ac4fbea960205b9a88abdeed67f5 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* | | | | Merge "Add command_socket setting to executor section" into feature/zuulv3Zuul2017-12-072-6/+9
|\ \ \ \ \ | |/ / / /
| * | | | Add command_socket setting to executor sectionPaul Belanger2017-12-062-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like the merger, add support for setting command_socket path via zuul.conf. Change-Id: I88aa47870d98b0906dfb733f68af663c2dc00993 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* | | | | Merge "Add command socket support to zuul-merger" into feature/zuulv3Zuul2017-12-072-9/+69
|\ \ \ \ \ | |/ / / /
| * | | | Add command socket support to zuul-mergerPaul Belanger2017-12-062-9/+69
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like we have in zuul-executor, add command socket support for zuul-merger. Change-Id: I66a2cb2ba3f55bdd03e884f47648278e30d2f6ab Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* | | | Merge "Correctly stream the remaining buffer" into feature/zuulv3Zuul2017-12-071-1/+1
|\ \ \ \ | |/ / / |/| | |
| * | | Correctly stream the remaining bufferTobias Henkel2017-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case ansible crashes while executing a command module we loose the last line of the log. This is caused because we don't stream the remaining buffer but the last line we split out of the buffer. I wasn't able to construct a test case which makes the original code break thus this change is without a test case. Change-Id: I10ffe248c756e0a77f39f6e075dd3615c53f1b03
* | | | Merge "Add support for shared ansible_host in inventory" into feature/zuulv3Zuul2017-12-063-9/+13
|\ \ \ \
| * | | | Add support for shared ansible_host in inventoryPaul Belanger2017-11-183-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Today it is possible to create the following ansible inventory file: [foo] foo01 ansible_host=192.168.1.1 [bar] bar01 ansible_host=192.168.1.1 Which allows a user to create multiple host aliases for a single connection. This could be done with ansible groups, however there is some functional differences on how ansible runs in that configuration. We could also request 2 nodes from nodepool, however in this case, it would be a waste of CI resources because every alias would need a new node from nodepool. Now, a user is able to alias multiple host names to a single node from nodepool by doing the following: nodeset: nodes: - name: - foo - bar label: ubuntu-xenial This would result in a single node request from nodepool, but create an inventory file with 2 alaises sharing and single ansible_host variable. Change-Id: I674d6baac26852ee1503feb1ed16c279bf773688 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* | | | | Merge "Convert zuul.projects to a dict" into feature/zuulv3Zuul2017-12-061-9/+6
|\ \ \ \ \
| * | | | | Convert zuul.projects to a dictIan Wienand2017-12-011-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follows-on from I4476b9d4915d107e29b91229287865bff0ada305 where we are converting zuul.projects to a dict for easier access. With the dependent changes, there should be no in-tree users of zuul.projects so we can do this switch. We will then convert zuul._project users back to zuul.projects for the final removal (I283e66293110aa3bc99acb1cbc6eb3e0cc11f750). This updates documentation, and also gives some samples of how to use the variables (the "| list" is a bit of a gotcha trick -- python3's values() returns a view, so it is necessary for iteration). Depends-On: Id9a7c137ca5bed25d81087201091157c8401576a Depends-On: I9d88f405f34d1c5f75ebf4f52cedfaaab20c3bda Change-Id: I3c011f72933e98ccbf8badf0e9197c8659766c51
* | | | | | Merge "Changes for Ansible 2.4" into feature/zuulv3Zuul2017-12-062-2/+2
|\ \ \ \ \ \
| * | | | | | Changes for Ansible 2.4David Shrewsbury2017-11-302-2/+2
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed changes: - Use 'inventory' instead of 'hostfile' in ansible.cfg. 'hostfile' is deprecated. - Use 'os.environ.copy()' in zuul_return.py since this causes 2.4 to throw an exception now deep within module.exit_json(). Change-Id: I0a52c9e169a54d24a7b361010045fb10211418b7
* | | | | | Merge "Fix mixed canonical/non-canonical project merge" into feature/zuulv3Zuul2017-12-062-4/+15
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | |
| * | | | | Fix mixed canonical/non-canonical project mergeTobias Henkel2017-11-292-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When defining multiple project stanzas for the same project the resulting job graphs get merged. This should also work if they are given as a mixture of canonical and non-canonical project names like the following stanza. - project: name: review.example.com/org/project1 check: jobs: - common-config-job - project: name: org/project1 check: jobs: - project1-job However currently only one of the stanzas are effective depending on which was processed last. This can be fixed by canonicalizing the project names when extending the unparsed config. Change-Id: Icaf8fca3aa4577b009d691f9a67adcb43ea040f5
* | | | | | web: add /{source}/{project}.pub routeTristan Cacqueray2017-12-062-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds key:get function to the scheduler gearman worker so that zuul-web can request project's public key. Change-Id: I7ae16f27ccd9efd68c8cf10df7ff0ff5b7b7aa13
* | | | | | web: make console-stream tenant scopedTristan Cacqueray2017-12-064-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change replaces /console-stream route by /{tenant}/console-stream. Change-Id: Ib5ecbaf2e8a115bb1edebe71696c565b72e7c481 Co-Authored-By: Tobias Henkel <tobias.henkel@bmw.de>
* | | | | | web: add /{tenant}/builds routeTristan Cacqueray2017-12-064-1/+271
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds a SqlHandler to query the sql reporter database from zuul-web through the /{tenant}/builds.json controller. This change also adds a /{tenant}/builds.html basic web interface. Change-Id: I423a37365316cc96ed07ad0895c7198d9cff8be5
* | | | | | web: add /{tenant}/jobs routeTristan Cacqueray2017-12-066-0/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds the 'job:list' job to the scheduler gearman worker to expose the tenant jobs list. This change also adds the /{tenant}/jobs.json endpoint to the zuul-web as well as a /{tenant}/jobs.html web interface and command line client: zuul show jobs $tenant Change-Id: I950cb6a809a360867b2daccded9a8a45ac46359c
* | | | | | Correct exception for missing job dependenciesJeremy Stanley2017-12-051-2/+2
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a job dependency is not configured to run, the emitted error should be clear that's the problem. Change-Id: I8f696e6d3e82fc88853a7b00f191cc7d458e6a81 Co-Authored-By: James E. Blair <corvus@inaugust.com>
* | | | | Fix implied branch matchers and tagsJames E. Blair2017-12-013-37/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding an implied branch matcher to jobs on in-repo project defs works great when an item *has* a branch. But some items, such as tags, don't. With recent changes, it is now impossible for a project to add a job in-repo that runs in a tag pipeline. To correct this, we need to drop some of the optimizations which assumed we could match the implied branch against existing branch matchers, and instead, when adding a job in-repo, simply add a new kind of branch matcher, an ImpliedBranchMatcher, that is evaluated in a boolean 'and' with any existing branch matchers. The ImpliedBranchMatcher only fails if the item has a branch, and the branch doesn't match. If the item doesn't have a branch, it always succeeds. This means that when a project adds a job to a tag pipeline in-repo, it will most likely only have the ImpliedBranchMatcher, which will simply succeed. It also means that the multiple project configurations present in the project's multiple branches can all add jobs to tag pipelines, and so to remove such a job, changes may need to be made to all branches of a project. However, there's not much that can be done about that at the moment. Change-Id: Id51ddfce7ef0a6d5e3273da784e407ac72a669db