Gnocchi performs better if measurements are write in batch
When Ceilometer is used with Gnocchi, this is not possible.
This change introduce a new notification listener that allows that.
On the driver side, a default batch implementation is provided.
It's just call the legacy poll method many times.
Driver can override it to provide a better implementation.
For example, kafka handles batch natively and take benefit of this.
Change-Id: I16184da24b8661aff7f4fba6196ecf33165f1a77
Back in liberty we marked this driver as deprecated. This patch removes
it from the tree. The patch also removes tests, options and other
references in the documentation. Note that one script is being kept
because it's required by the amqp driver.
Depends-On: If4b1773334e424d1f4a4e112bd1f10aca62682a9
Change-Id: I4a9cba314c4a2f24307504fa7b5427424268b114
This builds a stripped down tox target for pep8 that doesn't need a
giant venv with all the things. Works fast and lean, and makes julien
fries.
Change-Id: Id5b7671fb7f2b8cbf88745fd12f9238b3c0bb2dd
This will allow us to find potential security issues, such as those fixed by
52e624891fc500c8ab9f3f10ef45258ce740916a and
c4a7ac0b653543e8a3ba10060cabdb114fb6672b .
Change-Id: I21aa0ca79232784069e55da46920eb43250d8939
In this patch new driver implementation added and registered
in setup.cfg, integrated ith tox functional tests.
Implements: bp rabbit-pika
Depends-On: I7bda78820e657b1e97bf888d4065a917eb317cfb
Change-Id: I40842a03ce73d171644c362e3abfca2990aca58a
Previously, the AMQP 1.0 driver did not pass the proper hostname to
pyngus. This prevented GSSAPI authentication from working properly.
Change-Id: Ibc6678e7cbae6dd5108d1650dbb8ddf837aa3648
Closes-Bug: #1503258
Pyngus 2.0 includes a new API for configuring SASL credentials.
Previous versions of Pyngus did not provide this API - the driver had
to invoke Proton APIs in order to configure user credentials. Moving
to the Pyngus API will preserve compatibility with older versions of
Proton, since the next release of Proton wil be changing its SASL API.
Pyngus 2.0 also adds strict enforcement of callback re-entrancy
constrants. This patch fixes some bad driver reentrancy violations.
Closes-bug: #1473515
Change-Id: Iddccefd3ee3c9092c086fc54e3810f78d5df9338
The Oslo libraries have moved all of their code out of the 'oslo'
namespace package into per-library packages. The namespace package was
retained during kilo for backwards compatibility, but will be removed by
the liberty-2 milestone. This change removes the use of the namespace
package, replacing it with the new package names. It also adds a local
hacking check to prevent regressions, while disabling style checks in
the "tests" directory, which will be deleted in a subsequent patch.
The patches in the libraries will be put on hold until application
patches have landed, or L2, whichever comes first. At that point, new
versions of the libraries without namespace packages will be released as
a major version update.
Please merge this patch, or an equivalent, before L2 to avoid problems
with those library releases.
Blueprint: remove-namespace-packages
https://blueprints.launchpad.net/oslo-incubator/+spec/remove-namespace-packages
Change-Id: Iad2ae13c771c99861ca9493c6ab10edcfbd8684a
Now that python-qpid-proton has taken an approach similar to zmq's, it's
possible to install it in boxes where the C libraries are not present in
the system. This patch takes advantage of that to enable amqp protocol's
tests everywhere.
Change-Id: Ibce4c791aafadf45fa876d6a4f5373fde94769ff
This adds a setup script for each tox functional target to start a
rabbitmq-server, qpidd or redis daemon dedicated for the functional
testing.
This script is responsible to spawn a preconfigured daemon needed for
the functional tests.
This also changes the gate script to just install the required packages
instead of setup a devstack.
This also fixes the zmq config options loading in tests
Closes-bug: #1442612
Change-Id: I27eb2c1d3d0ca67aa361c83e41372138e03d9bdd
Coverage is a little bit confused by oslo.messaging as the pypi package
name. So we have to be explicit here or we get no data collection.
Adding a .coveragerc helps give the report more context as we don't
care about coverage in the tests or oslo-incubator.
Change-Id: I3d24187890efd7aecad7fcb7a2974b87e89ef6ff
This change increases the version of python-qpid-proton to works
on fedora21.
It also installs qpid-tools to ensure authentification works before
starting the tests.
Change-Id: Ic8eb3b80ef4af6ca8cecbb6fba71cb69c0af3101
set DEVSTACK_GATE_NO_SERVICES=1 to not setup a whole openstack
when we need only a messaging broker.
Add of the zeromq gate job.
Fix the amqp1.0 password
Change-Id: If1332d97c4d4e92bf920fed4de2795461d9feb22
This removes the functionnal tests from the legacy
directory and run the ones in the new directory with tox.
Change-Id: Ibbfd6c946e25435ff37e459bf5e82565a1e21778
Move the public API out of oslo.messaging to oslo_messaging. Retain
the ability to import from the old namespace package for backwards
compatibility for this release cycle.
bp/drop-namespace-packages
Co-authored-by: Mehdi Abaakouk <mehdi.abaakouk@enovance.com>
Change-Id: Ia562010c152a214f1c0fed767c82022c7c2c52e7
This change adds two targets for qpid and amqp to
be able to run the functional tests suite on them in gate
This also run only functional tests for the functional tox testenv
Change-Id: Ibf1db3fe55f82dd6dc02f2e57d73608fcad80d0e
Remove the specification in tox.ini that _ is a builtin so that
it will no longer assume that _ does not need to be imported.
This helps ensure that the _ from i18n is used.
Activating this check did not flag any violations.
Change-Id: I077b9b2060e618823ef6dd6f95ce9fe7dcc52a06
Add driver independent functional tests of the messaging API
The url used to select (and configure) the driver is specified as an
environment variable named TRANSPORT_URL.
Change-Id: I867001a15ffaca06ae831cfd0240ed3397bf6503
The key driver interfaces are implemented in the ProtonDriver class in
driver.py. The logic for interfacing with Pyngus in order to
send/receive messages, manage AMQP connections and links, and handle
protocol events is in controller.py. eventloop.py is a fairly generic
socket connection and I/O processor which runs in its own thread.
controller.py uses the eventloop.py thread to schedule subscription
and message send requests from the driver, as well as handle all
protocol event callbacks coming from Pyngus.
Included in this patch are a set of functional tests that can be run
under tox (tox -eamqp1). These tests fully exercise the new driver,
from the driver API down to the 'wire' - nothing in the driver is
mocked out. The functional tests implement a simple loopback test
broker, which allows the driver to send and receive messages via the
local network. All RPC call patterns, RPC timeouts, and even broker
failover are verified by the included functional tests.
This driver uses the Pyngus module, which is a pure-python client API
built on the Proton AMQP 1.0 protocol engine library from the Apache
Qpid project. Pyngus is available via pypi.python.org.
This driver introduces a dependency on the Proton AMQP 1.0 protocol
library, which is a platform-dependent library that must be installed
in order to use this driver and run the functional tests.
Change-Id: I871703e4cdc04cee3e6c214e911c9df464ede2ed
Implements: blueprint amqp10-driver-implementation
This patch enables running all the unit tests (except the qpid ones that
are skipped) under Python 3.3 and Python 3.4.
Change-Id: I711663b4eedfb3cdeea7e6da7d28c6b92663e611
The sync includes change that makes sure we get unicode-only dicts from
jsonutils no matter which json module implementation is selected.
The latest commit in oslo-incubator:
- 2e1214b74b5448825d3db26e1308a51b468d3d5c
Included commits:
* gettextutils.py:
- de4adbc4: pep8: fixed multiple violations
- 9912e5df: Add API for creating translation functions
- 6cc96d05: Fix test_gettextutils on Python 3
- fd33d1ea: Fix gettextutil.Message handling of deep copy failures
- 047b2e4e: Change lazy translation to retain complete dict
- 6d55e26a: Add support for translating log levels separately
* importutils.py:
- 1173e469: Remove ValueError when accessing sys.modules
- 885828af: Deleted duplicated method in cliutils.
* jsonutils.py:
- 0d7296f6: Add kwargs to jsonutils.load(s) functions
- 18f2bc1b: Enforce unicode json output for jsonutils.load[s]()
- 9e5a3938: jsonutils.load() accepts file pointer, not string
* timeutils.py:
- 250cd88c: Fixed a new pep8 error and a small typo
The sync adds new module: strutils.
Disabled pep8 import checks for gettextutils to avoid raising 'H302:
import only modules.'
Change-Id: Ic815ca3df94c33edec9104172048b2cd94b92e3f
Closes-Bug: 1314129
In order to keep this patch to just a requirements bump, ignore new and
stricter hacking rules that are being triggered. Fixing up the code and
turning these on is out of scope of this patch and is for future patches.
Change-Id: I5711e066da1076486d291bc4f45359ecb26e1b1a
Remove py33 from the list of environments used when someone
runs "tox" without any arguments. The python 3.3 tests do
not pass yet, and the expected failure is confusing to new
contributors.
Change-Id: I1f1307153c4a32e59bcffbf340c31dbf3e70173c
Inspired by tulip, have every module define a __all__ list and import *
from the top-level module.
Rename transport.set_defaults() since we don't want this to be a
top-level set_defaults() function as there may be multiple.
Also, rather than configuring flake8 to allow star imports, just exclude
the __init__.py files from flake8 checks.