summaryrefslogtreecommitdiff
path: root/requirements.txt
Commit message (Collapse)AuthorAgeFilesLines
* Temporarily pin yarl while aiohttp is brokenJames E. Blair2018-01-151-0/+1
| | | | | | | | Aiohttp had an open requirement specification on yarl which has released a 1.0 that is backwards incompatible. Pin to <1.0 until https://github.com/aio-libs/aiohttp/issues/2662 is fixed. Change-Id: I4e750900501ed92bdbb616f5664f7e8ab7fa99c3
* Drop local fork of GitPython for 2.1.8 releaseClint Byrum2017-12-111-5/+1
| | | | | | | | 2.1.8 incorporates the noted fixes. Story: 2001393 Task: 5982 Change-Id: I828506bd7c1a1f7ce088e958361782b6cbc71f5a
* Remove -e from requirementsJames E. Blair2017-10-131-2/+2
| | | | | | | | | | We don't need these unreleased requirements to be editable. Doing so means that they are installed into the user's home directory. That doesn't work if you install them as root. Instead, install them in the normal, non-editable manner. Change-Id: Iab7b946d03db8e80ac296485bb8de3f9c89cb8b5
* Add comment explaining gitpython requirementJames E. Blair2017-10-101-0/+4
| | | | | | Also clean up some tabs. Change-Id: If641a164c21dc7b13d48548558ea16e0c0a0b400
* Add git timeoutJames E. Blair2017-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | Timeout remote git operations after 300 seconds. Because it could be in an invalid state, delete the local repo if a timeout occurs (subsequent operations will recreate it). This replaces our use of the clone_from() and fetch() methods from GitPython with lower-level equivalents. The high-level methods do not currently permit the hard timeout. The GitPython requirement is changed to a temporary fork until both https://github.com/gitpython-developers/GitPython/pull/682 and https://github.com/gitpython-developers/GitPython/pull/686 end up in a release. Change-Id: I7f680472a8d67ff2dbe7956a8585fb3714119e65
* Add netaddr requirements for running ipv4|ipv6 filtersDavid Moreau-Simard2017-09-151-0/+1
| | | | | | | | | | | Running the ipv4 and ipv6 filters [1] requires the netaddr python library to be installed on the Ansible *control node*, which ends up being the executor. These filters are very useful to determine if an IP is ipv4 or ipv6. [1]: http://docs.ansible.com/ansible/latest/playbooks_filters_ipaddr.html Change-Id: I800c7512fc60f9a302fb77cb061610430fcf8e49
* Pin Ansible to <2.4David Moreau-Simard2017-08-291-1/+1
| | | | | | | | | | | | | Ansible 2.4 is scheduled for release in september [1] and changes a lot of things we might not be ready for. Let's just make sure we control when we want to upgrade to 2.4. The latest release of ARA, 0.14.2, does not currently support Ansible 2.4. The support for Ansible 2.4 will likely come in 1.0. [1]: https://github.com/ansible/ansible/blob/b3f2d1befe509614febc28d1bf1734cb2cc50ac0/docs/docsite/rst/roadmap/ROADMAP_2_4.rst Change-Id: Icd9b847d4e75c509aba0c3a060bb6eedfd9be257
* Add web-based console log streamingMonty Taylor2017-07-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | zuul now provides socket-based console streaming, which is super cool. In order to have jenkins parity with web streaming, we need to provide a websocket (javascript in browsers can't really connect to random ports on servers) After surveying the existing python websocket options, basically all of them are based around twisted, eventlet, gevent or asyncio. It's not just a thing we can easily deal with from our current webob/paste structure, because it is a change to the fundamental HTTP handling. While we could write our own websocket server implementation that was threaded like the rest of zuul, that's a pretty giant amount of work. Instead, we can run an async-based server that's just for the websockets, so that we're not all of a sudden putting async code into the rest of zuul and winding up frankensteined. Since this is new code, using asyncio and python3 seems like an excellent starting place. aiohttp supports running a websocket server in a thread. It also supports doing other HTTP/REST calls, so by going aiohttp we can set ourselves up for a single answer for the HTTP tier. In order to keep us from being an open socket relay, we'll expect two parameters as the first message on the websocket - what's the zuul build uuid, and what log file do we want to stream. (the second thing, multiple log files, isn't supported yet by the rest of zuul, but one can imagine a future where we'd like to support that too, so it's in the protocol) The websocket server will then ask zuul over gearman for the IP and port associated with the build and logfile and will start streaming it to the socket. Ultimately we'll want the status page to make links of the form: /console.html?uuid=<uuid>&logfile=console.log and we'll want to have apache map the websocket server to something like /console. Co-Authored-By: Monty Taylor <mordred@inaugust.com> Change-Id: Idd0d3f9259e81fa9a60d7540664ce8d5ad2c298f
* requirements: update ansible versionTristan Cacqueray2017-06-221-1/+1
| | | | | | The zuul_stream callback needs ansible>=2.3 for the _handle_exception method. Change-Id: I9130aaacc036c2e67fea31efe54c4cbaf7193f50
* Remove use of six libraryMonty Taylor2017-06-191-1/+0
| | | | | | | | | | | | | It exists only for py2/py3 compat. We do not need it any more. This will explicitly break Zuul v3 for python2, which is different than simply ceasing to test it and no longer declaring we support it. Since we're not testing it any longer, it's bound to degrade overtime without us noticing, so hopefully a clean and explicit break will prevent people from running under python2 and it working for a minute, then breaking later. Change-Id: Ia16bb399a2869ab37a183f3f2197275bb3acafee
* requirements: remove ordereddictTristan Cacqueray2017-06-191-1/+0
| | | | | | OrderedDict is included in python3 collections module. Change-Id: I63c91e22a8f03a5e2598a224f0b1018c2951d67b
* Merge "Use app_id with github" into feature/zuulv3Jenkins2017-05-301-0/+2
|\
| * Use app_id with githubJamie Lennox2017-05-301-0/+2
| | | | | | | | | | | | | | The basics of authenticating to github as an app when posting comments and cloning. This is still a WIP. Change-Id: I11fab75d635a8bcea7210945df4071bf51d7d3f2
* | Merge "Add cachecontrol to requests to github" into feature/zuulv3Jenkins2017-05-301-0/+1
|\ \ | |/
| * Add cachecontrol to requests to githubJamie Lennox2017-05-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Github is very strict about quotas per authentication. To prevent going over these quotas and to ensure we don't get marked as spam we should make sure to respect the Etags present in responses. Use cachecontrol to give us a caching layer that will fullfil requests that are cachable without going over the network. A point to consider here is that there does not appear to be a way to vary caching based on the current authentication - so any per auth requests may be mishandled or auth may expire. I don't think there is any concern here as it's simply zuul making the requests. Change-Id: I04bfc0cfec1ffc8ebdfd2d9181ac3119cc6e14ac Signed-off-by: Jamie Lennox <jamielennox@gmail.com>
* | Use https to clone Github3.pyTobias Henkel2017-05-261-1/+1
|/ | | | | | | | | Using the git protocol makes it hard to fetch the repo if internet access is only possible via a proxy. An easy fix is using the https protocol. That way the http_proxy vars on the host are automatically obeyed and the clone via proxy works. Change-Id: I18d75b5a16c809ac2d7834e91d32617017aea7f8
* Implement pipeline requirement on github reviewsJesse Keating2017-05-231-1/+3
| | | | | | | | | | | | | | | | | | | | Github reviews are a new pipeline requirement that is driver specific. Reviews can be approved, changes_requested, or comment. They can come from people with read, write, or admin access. Access is hierarchical, admin level includes write and read, and write access includes read. Review requirements model loosely the gerrit approvals, allowing filtering on username, email, newer-than, older-than, type, and permission. Brings in an unreleased Github3.py code. Further extends that code to determine if a user has push rights to a repository. Documentation is not included with this change, as the docs need restructuring for driver specific require / reject. Change-Id: I3ab2139c2b11b7dc8aa896a03047615bcf42adba Signed-off-by: Jesse Keating <omgjlk@us.ibm.com>
* Use gear Text interfaceClint Byrum2017-05-191-1/+1
| | | | | | | | This makes the transition to python3 much smoother. Change-Id: I9d8638dd98502bdd91cbe6caf3d94ce197f06c6f Depends-On: If6bfc35d916cfb84d630af59f4fde4ccae5187d4 Depends-On: I93bfe33f898294f30a82c0a24a18a081f9752354
* Merge pull requests from github reporterJan Hruban2017-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Github reporter can be configured to merge pull reqeusts. When there are multiple merges called at the same time, it leads to a situation when github returns 405 MethodNotAllowed error becuase github is checking the branch mergeability. When we encounter this situation, we try to wait a bit (2 seconds for now) and try to merge again. Pre-release version of Github3.py has to be used, because the latest released version 9.4 has a bug in merge method. Furthermore the newest merge method supports specifying exact sha to be merged, which is desirable to ensure that the exact commit that went through the pipeline gets merged. Both are already fixed in the stable branch, but not yet released on PyPi. See: https://github.com/sigmavirus24/github3.py/commit/90c6b7c2653d65ce686cf4346f9aea9cb9c5c836 https://github.com/sigmavirus24/github3.py/commit/6ef02cb33ff21257eeaf9cab186419ca45ef5806 Change-Id: I0c3abbcce476774a5ba8981c171382eaa4fe0abf
* Support GitHub PR webhooksGregory Haynes2017-05-021-0/+1
| | | | | | | | | Story: 2000774 Change-Id: I2713c5d19326213539689e9d822831a393b2bf19 Co-Authored-By: Wayne Warren <waynr+launchpad@sdf.org> Co-Authored-By: Jan Hruban <jan.hruban@gooddata.com> Co-Authored-By: Jesse Keating <omgjlk@us.ibm.com>
* Update voluptuous requirementClark Boylan2017-04-121-1/+1
| | | | | | | | Reading historical voluptuous docs it appears that the change to dict handling occurred in the new 0.10.2 release. There are no earlier 0.10 releases to check against so just require voluptuous>=0.10.2. Change-Id: I5ade4a8c2d03d5519ae1ed95e133717d5c28d0ad
* Add per-repo public and private keysRicardo Carrillo Cruz2017-03-291-0/+1
| | | | | | | | | | | | | | | | Every project should have a public and private key to encrypt secrets. Zuul expects them to already exist under /var/lib/zuul/keys on the scheduler host. If an operator manages these keys externally, they should simply be placed there. If they are not found, Zuul will create them on startup and store them there so they will be found on the next run. The test framework uses a pre-generated keypair most of the time to save time, however, a test is added to ensure that the auto-generate code path is run. Co-Authored-By: James E. Blair <jeblair@redhat.com> Change-Id: Iedf7ce6ca97fab2a8b800158ed1561e45899bc51
* Cap GitPython at 2.1.1 due to performance degradationPaul Belanger2017-03-081-1/+1
| | | | | | | | | It appears newer versions of GitPython have slowed considerably. Cap GitPython until https://github.com/gitpython-developers/GitPython/issues/605 is resolved. Change-Id: Ie6c8722e8b607bb50e77fbad59e18363616f7e0d Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* Merge branch 'master' into feature/zuulv3Joshua Hesketh2017-03-061-0/+2
|\ | | | | | | Change-Id: I37a3c5d4f12917b111b7eb624f8b68689687ebc4
| * Add support for sqlalchemy reporterJoshua Hesketh2017-02-061-0/+2
| | | | | | | | | | | | | | | | | | This will allow us to enter results from all jobs for use with the openstack-health dashboard. Depends-On: I08dbbb64b3daba915a94e455f75eef61ab392852 Change-Id: I28056d84a3f6abcd8d9038a91a6c9a3902142f90 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* | Add Zookeeper to testsJames E. Blair2016-12-201-0/+1
| | | | | | | | | | | | | | | | | | Add a requirement on kazoo and add a Zookeeper chroot to the test infrastructure. This is based on similar code in Nodepool. Change-Id: Ic05386aac284c5542721fa3dcb1cd1c8e52d4a1f
* | Merge branch 'master' into v3_mergeJoshua Hesketh2016-07-141-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Includes minor py3 fixes (for pep8 on py3). Conflicts: tests/base.py tests/test_model.py tests/test_scheduler.py tox.ini zuul/model.py zuul/reporter/__init__.py zuul/scheduler.py zuul/source/gerrit.py Change-Id: I99daf9acd746767967b42396881a2dff82134a07
| * Pin paramiko < 2.0.0Paul Belanger2016-05-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to pin parmakio until we fix an expection in zuul/connection/gerrit.py client.load_system_host_keys() Traceback (most recent call last): File "/opt/ansible-role-zuul/git/openstack-infra/zuul/zuul/connection/gerrit.py", line 168, in _run client.load_system_host_keys() File "/usr/lib/python2.7/site-packages/paramiko/client.py", line 101, in load_system_host_keys self._system_host_keys.load(filename) File "/usr/lib/python2.7/site-packages/paramiko/hostkeys.py", line 101, in load e = HostKeyEntry.from_line(line, lineno) File "/usr/lib/python2.7/site-packages/paramiko/hostkeys.py", line 331, in from_line key = RSAKey(data=decodebytes(key)) File "/usr/lib/python2.7/site-packages/paramiko/rsakey.py", line 58, in __init__ ).public_key(default_backend()) File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 35, in default_backend _default_backend = MultiBackend(_available_backends()) File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 22, in _available_backends "cryptography.backends" AttributeError: 'EntryPoint' object has no attribute 'resolve' Change-Id: Ifc12a1ec9f26c0b236ed00e128b707c6fba58b1e Signed-off-by: Paul Belanger <pabelanger@redhat.com>
* | Merge branch 'master' into feature/zuulv3Joshua Hesketh2016-03-111-1/+0
|\ \ | |/ | | | | | | | | | | | | Conflicts: zuul/model.py zuul/scheduler.py Change-Id: I2973bfae65b3658549dc13aa3ea0efe60669ba8e
| * Remove argparse from requirementsAndreas Jaeger2016-01-201-1/+0
| | | | | | | | | | | | | | | | | | | | argparse was external in python 2.6 but not anymore, remove it from requirements. This should help with pip 8.0 that gets confused in this situation. Installation of the external argparse is not needed. Change-Id: Ib7e74912b36c1b5ccb514e31fac35efeff57378d
* | Merge master into feature/zuulv3Joshua Hesketh2016-02-121-3/+3
|\ \ | |/ | | | | | | | | | | | | | | | | Conflicts: zuul/connection/gerrit.py zuul/lib/connections.py zuul/model.py zuul/scheduler.py Change-Id: If1c8ac3bf26bd8c4496ac130958b966d9937519e
| * Merge "Remove webob requirements cap"Jenkins2016-01-041-1/+1
| |\
| | * Remove webob requirements capPaul Belanger2015-12-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Looking at the library, and openstack requirements, there doesn't appear to be a reason to cap webob. So, remove the cap so we can use newer versions. Change-Id: Id19c297b540e9081bcf733dff3a334a4b0f477d8 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
| * | Merge "Bump APScheduler to >=3.0"Jenkins2016-01-041-1/+1
| |\ \
| | * | Bump APScheduler to >=3.0Paul Belanger2015-12-221-1/+1
| | |/ | | | | | | | | | | | | | | | | | | | | | This patch upgrades zuul to support APScheduler 3.0. For the most part, 3.0 was a rewrite but our changes seem to be limited. Change-Id: I0c66b5998122c3f59ed06e3e7b3ab3199f94f478 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
| * | Bump pbr minimum version, to avoid testrepository requirementDoug Wiegley2015-12-301-1/+1
| |/ | | | | | | Change-Id: I89154466cb8a0a3f777df2cea48ae1812f3de881
* | Add ansible as a dependencyJames E. Blair2016-01-151-0/+1
|/ | | | | | | | | | | | Note that ansible is licensed under the GPL which may have implications for the distribution of Zuul as a whole. Actually use ansible to launch a hello world test. Also reorganize the launcher directory to be more like the mergers: a client and server. Change-Id: I30f7ed2cadbb7d2381ec477e229d19c9c6e41743
* Constrain python-daemon < 2.1.0Joshua Hesketh2015-11-261-1/+1
| | | | | | | The latest python-deamon has broken zuul. Constrain zuul below the last release. Change-Id: I0af0dfbf684de65ee140c69cf564b4f95e05e0ba
* Update to gear 0.5.7James E. Blair2015-05-071-1/+1
| | | | | | | | | | | | | | | | There is no API or behavioral change required, but gear 0.5.7 has significant performance improvements, enough so that it is required for OpenStack's installation, so bump the requirement here. Gear 0.5.6 has a regression that causes Zuul tests (but not actual operation) to fail. Also includes an unrelated test race fix: the order in which jobs completed in the test_crd_check_git_depends test was random. Switch to releasing them in sequence for easier comparison with the build history at the end. Change-Id: I281356a620c017a546ec04a0a767cf34c1fc62bf
* Zuul sometimes fails to update remotesRamy Asselin2015-02-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes, even after cloning a new repository, zuul will fail to merge the change with a stack trace shown below. I was using GitPython==0.3.2.1. Upgrading it to >= 0.3.3 resolves the issue. 2015-01-22 08:27:48,222 ERROR zuul.Merger: Exception while merging a change: Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/zuul/merger/merger.py", line 234, in _mergeChange commit = repo.merge(item['refspec'], 'resolve') File "/usr/local/lib/python2.7/dist-packages/zuul/merger/merger.py", line 132, in merge self.fetch(ref) File "/usr/local/lib/python2.7/dist-packages/zuul/merger/merger.py", line 145, in fetch origin.fetch(ref) File "/usr/local/lib/python2.7/dist-packages/git/remote.py", line 598, in fetch return self._get_fetch_info_from_stderr(proc, progress or RemoteProgress()) File "/usr/local/lib/python2.7/dist-packages/git/remote.py", line 540, in _get_fetch_info_from_stderr for err_line, fetch_line in zip(fetch_info_lines, fetch_head_info)) File "/usr/local/lib/python2.7/dist-packages/git/remote.py", line 540, in <genexpr> for err_line, fetch_line in zip(fetch_info_lines, fetch_head_info)) File "/usr/local/lib/python2.7/dist-packages/git/remote.py", line 252, in _from_line raise ValueError("Failed to parse line: %r" % line) ValueError: Failed to parse line: 'Total 7 (delta 0), reused 7 (delta 0)' This is the more specific GitPython Commit that resolves the issue: https://github.com/gitpython-developers/GitPython/commit/d48ed95cc7bd2ad0ac36593bb2440f24f675eb59 Closes-Bug: #2000130 Change-Id: I1992b492e8c80322cc6ae01f6e2ebc181a9de813
* Merge "Remove lockfile from requirements"Jenkins2015-02-121-1/+0
|\
| * Remove lockfile from requirementsJulien Danjou2015-01-191-1/+0
| | | | | | | | | | | | It's not used anymore. Change-Id: Ie344fac126ccad610e43b5cda36d4be93e1dc82a
* | Require python-daemon version at least 2.0.4David Pursehouse2015-01-291-1/+1
|/ | | | Change-Id: I69f8bbd9d78abdebd212f2e74d46178f592fc916
* Pin python-daemon<2.0Joshua Hesketh2015-01-121-1/+1
| | | | | | | | | The latest release has a missing dependency. Upstream bug: https://alioth.debian.org/tracker/index.php?func=detail&aid=314945&group_id=100328&atid=413098 Partial-Bug: #2000107 Change-Id: Idf6ed3cb6ea34bee5252fb42ecdad1282e411409
* Fix tests for GitPython>0.3.2.RC1Mike Heald2014-11-211-1/+1
| | | | | | | Catches the GitCommandError exception when a ref does not exist. Change-Id: I9fe2e95d64eaf06537723957c6e7eaaf9282ccab
* Pin GitPython version to prevent test failureDavanum Srinivas2014-11-191-1/+1
| | | | Change-Id: I3cadf46e3b5d9264040d1a24535fa77b276f9236
* Make keystone and swift clients optional test reqsJeremy Stanley2014-09-101-2/+0
| | | | | | | | | Since keystoneclient pulls in lxml which needs various system library headers to build its bindings, and swiftclient depends on keystoneclient, and zuul handles these as optional dependencies, make them test requirements. Change-Id: I5c7db10644dcf2810cbfdfe8c11d4790909c04cf
* Bump Babel requirement to >=1.0Antoine Musso2014-08-071-1/+1
| | | | | | | | | | The Zuul client uses babel.dates.format_timedelta which was introduced with 1.0 http://babel.pocoo.org/docs/changelog/#version-1-0 Ubuntu Precise has 0.9.6 causing the Zuul client to abort because of the missing method. Change-Id: I60ed0d61c97091c17a926770ed1a02f1156ec5e0
* replace dict.iteritems() with six.iteritems(dict)Christian Berendt2014-06-061-0/+1
| | | | | | | | | According to https://wiki.openstack.org/wiki/Python3 dict.iteritems() should be replaced with six.iteritems(dict). Added six >= 1.6.0 as new requirement. Removed six from test requirements. Change-Id: Ifba282b1bde9681268e6e46ffd024c96c6b9be05
* Add support to list running jobs to zuul clientJoshua Hesketh2014-03-311-0/+2
| | | | Change-Id: I16ccc02aa1a3b0cd8648b6ea05fc20c89c92a571