According to Openstack summit session [1],
stestr is maintained project to which all Openstack projects should migrate.
Let's switch to stestr as other projects have already moved to it.
[1] https://etherpad.openstack.org/p/YVR-python-pti
Change-Id: I89b785c91738ab62e3f42da42c431b9df8ccfd70
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: I02ef155ef47a5eaddf9de902ad3608bee677fbcf
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Set the default python to python3 except for the py27 specific test
environments. Set Python 2.7 as the python version to use for these
tests.
Temporarily ignore optional driver requirements for now. This will be
addressed in a later update.
Change-Id: Iea8e48b72234bb9a580f2345396cf60fe2022618
Create a tox environment for running the unit tests against the lower
bounds of the dependencies.
Create a lower-constraints.txt to be used to enforce the lower bounds
in those tests.
Add openstack-tox-lower-constraints job to the zuul configuration.
See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html
for more details.
Change-Id: I8991c2ab1c880c401fd807e38565258403af05e8
Depends-On: https://review.openstack.org/555034
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
It is recommended that all users of the Pika driver transition to
using the Rabbit driver instead. Typically this is done by changing
the prefix of the transport_url configuration option from "pika://..."
to "rabbit://...". There are no changes required to the RabbitMQ
server configuration.
Change-Id: I52ea5ccb7e7c247abd95e2d8d50dac4c4ad11246
Closes-Bug: #1744741
The pip_missing_reqs tool is abandoned and now incompatible with
recent versions of pip. It has been supplanted by the pip_check_reqs
tool which provides the same pip-missing-reqs entrypoint (plus some
others), effectively renamed.
This is the same as https://review.openstack.org/#/c/453208/ and
the commit message above is copied here.
Change-Id: Ibd02fda9c3f96034c96c7bf4abb9248219e0662c
Emulate vhost support by adding the virtual host name to the
topic created on the kafka server. Also, update connection
management for producer/consumer.
This patch:
* updates target to topic generation
* add consumer and producer connection classes
* remove connection pool
* update driver test
Change-Id: Idd164444c04e9f465a43ee909af840a41bb090c0
This patch addresses a number of issues that prevented the functional
tests from running. The functional tests now execute and can complete
succesfully. At times, the test will fail (noticiably in CI) indicating
an underlying issue with consumer interaction with the kafka server.
It would be beneficial to merge this patch as it provides repeatability
and visibility for driver-kafka server integration to facilitate
additional debugging and testing.
This patch:
* removes use of deprecated get_transport
* override consumer_group for each test
* changed to synchronous send
* update to kafka 1.0.0 server
Depends-On: Ib552152e841a9fc0bffdcb7c3f7bc75613d0ed62
Change-Id: I7009a3b96ee250c177c10f5121eb73d908747a52
We do not need tox_install.sh, pip can handle constraints itself
and install the project correctly. Thus update tox.ini and remove
the now obsolete tools/tox_install.sh file.
This follows https://review.openstack.org/#/c/508061 to remove
tools/tox_install.sh.
Change-Id: Ifaaf656effff20ef08214f111645a3b5fc8b4d28
Some of the available checks are disabled by default, like:
[H106] Don’t put vim configuration in source files
[H203] Use assertIs(Not)None to check for None
Change-Id: I54b4b950dfcd2ce5a64f38b5d5b5cbe95846a8fa
The 'list-modules' directive used in some docs does not appear to be
Python 3 compatible, yielding the following error:
TypeError: unorderable types: NoneType() < str()
Simply use Python 2.7 until such a time as someone wants to investigate
why this happens.
Change-Id: I0be19b056e1c2272df3666626fbd17ec78017bce
kafka doesn't play well with //, each times a new partition/topic is
created, kafka rebalances things across brokers and messages are not
delivered at the expected time.
So this change disable the parallelizism for functional tests for kafka
only.
Change-Id: Ia497334efcd4685850ac1529a7fc38073dae7cd1
- kombu4 wraps recoverable errors as OperationalErrors rather than
raising amqp errors
- also, raise a recoverable error and redeclare if for some reason a
message is double acknowledged... previously, this was hidden.
- ensure socket is not none
- use connect method to ensure connection
Depends-On: I9f980b51901ac31599b9651633956ad2eea6a1ac
Change-Id: I73958c8057353a2eefe1baaa7a41148193d507f7
Now that there exists only a gate job for Python 3.5 and not 3.4,
we should remove those references to the 3.4 that is untested.
Change-Id: I2a00ead626d9eced96487ee82b5d7857126d8355
Currently Kafka driver for an oslo.messaging uses kafka-python==0.9.5
and mostly broken. This package version supports only low level Kafka
producer and consumer API which are marked as deprecated now [1]. Using
of these interfaces bring a big concern to the message processing,
because current KafkaConsumer has not any consuming coordination. This
fact causes a message duplication for the several consumers of one
topic. This behavior is specific to Ceilometer and services which read
and process notifications from other services.
New version of kafka-python allows to use async thread safe message
producers and coordinated consumers [1].
[1] http://kafka-python.readthedocs.io/en/master/changelog.html#feb-15-2016
The driver is currently experimental, python-kafka<1.0.0 API have major
issue described above that can't make the oslo.messaging driver works,
so we prefer having a working driver with a non-synced dependencies, that the
reverse.
Co-Authored-By: Mehdi Abaakouk <sileht@redhat.com>
Change-Id: I29862ed7bf56b9d8878fa8e9fb1cbd9d643908a4
The current zeromq target name are too long and reach the limitation
of 127 chars of the sheband of the virtualenv binary.
A target name must not be more than 22 chars to run in gate with
the tox job template.
This renames them to a shorter one.
It also creates aliases for the legacy jobs that we will remove
when the tox jobs are ready.
Change-Id: I5cbc368e7ea252f8c0c949c8e7ee3a70a560db22
Restore static direct connections which may be useful
for services running RPC on controllers only and talking
to agents via other means (ssh for example).
Change-Id: Icbe45978cb4a8ba5db74e5593ea7be23cba3f44e
The kafka functional tests don't use our setup framework but hardcode
the kafka url.
The kafka driver is broken and currently try to be loaded with other
driver tests (and break py3 gate job).
This change remove the hardcoded stuff and uses the normal functional
tests setup to check kafka.
This avoids kafka tests to be ran on other driver tests job.
It also creates the tox target for functional tests and use
pifpaf to setup kafka.
As today, the functional test suite doesn't work all.
Change-Id: Ie6af35321905a04b38e549bf7268dd40543d9e3a
During the tox refactoring for the constraint stuffs [1], we pass
all target timeout from 60s to 30s, making functional tests to fail.
This change just restore the default, even the py27 job doesn't need
such small timeout.
[1] 78f113780510b741bc974c69eb9b0718cd657c1d
Change-Id: I515786a2e8b7cf8d17b5ee970b13a68f565965ea
Adding constraints support to libraries is slightly more complex than
services as the libraries themselves are listed in upper-constraints.txt
which leads to errors that you can't install a specific version and a
constrained version.
This change adds constraints support by also adding a helper script to
edit the constraints to remove oslo.messaging.
Change-Id: I8be883215f27abb58d15b85e8542cbdf32000bac
This commit updates the setup environment for the driver functional
tests to support either a qpidd (broker) or qdrouterd (router)
backend.
This patch:
* configures and runs either qpidd or qdrouterd backend
* removes support of older qpidd versions
* skips batch notification test for qdrouterd backend
Change-Id: Ifcdc187bae4a28dd29c1faa73e239d7e4d77015d
Now that there is a passing gate job, we can claim support for
Python 3.5 in the classifier. This patch also adds the convenience
py35 venv.
Change-Id: I8871f4e17ab806c00661d0c960a216d0a3fc5449