| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
2.1.8 incorporates the noted fixes.
Story: 2001393
Task: 5982
Change-Id: I828506bd7c1a1f7ce088e958361782b6cbc71f5a
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Also clean up some tabs.
Change-Id: If641a164c21dc7b13d48548558ea16e0c0a0b400
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
The zuul_stream callback needs ansible>=2.3 for the _handle_exception method.
Change-Id: I9130aaacc036c2e67fea31efe54c4cbaf7193f50
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
OrderedDict is included in python3 collections module.
Change-Id: I63c91e22a8f03a5e2598a224f0b1018c2951d67b
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
The basics of authenticating to github as an app when posting
comments and cloning. This is still a WIP.
Change-Id: I11fab75d635a8bcea7210945df4071bf51d7d3f2
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
This makes the transition to python3 much smoother.
Change-Id: I9d8638dd98502bdd91cbe6caf3d94ce197f06c6f
Depends-On: If6bfc35d916cfb84d630af59f4fde4ccae5187d4
Depends-On: I93bfe33f898294f30a82c0a24a18a081f9752354
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| | |
Change-Id: I37a3c5d4f12917b111b7eb624f8b68689687ebc4
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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 a requirement on kazoo and add a Zookeeper chroot to the test
infrastructure.
This is based on similar code in Nodepool.
Change-Id: Ic05386aac284c5542721fa3dcb1cd1c8e52d4a1f
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Conflicts:
zuul/model.py
zuul/scheduler.py
Change-Id: I2973bfae65b3658549dc13aa3ea0efe60669ba8e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
zuul/connection/gerrit.py
zuul/lib/connections.py
zuul/model.py
zuul/scheduler.py
Change-Id: If1c8ac3bf26bd8c4496ac130958b966d9937519e
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| |\ \ |
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| |/
| |
| |
| | |
Change-Id: I89154466cb8a0a3f777df2cea48ae1812f3de881
|
|/
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
The latest python-deamon has broken zuul. Constrain zuul below
the last release.
Change-Id: I0af0dfbf684de65ee140c69cf564b4f95e05e0ba
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| | |
It's not used anymore.
Change-Id: Ie344fac126ccad610e43b5cda36d4be93e1dc82a
|
|/
|
|
| |
Change-Id: I69f8bbd9d78abdebd212f2e74d46178f592fc916
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Catches the GitCommandError exception when a ref does
not exist.
Change-Id: I9fe2e95d64eaf06537723957c6e7eaaf9282ccab
|
|
|
|
| |
Change-Id: I3cadf46e3b5d9264040d1a24535fa77b276f9236
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I16ccc02aa1a3b0cd8648b6ea05fc20c89c92a571
|