Subscription options returned by the controller get methods was not
unserialized propertly, still containing msgpack data.
It also changes so that mongo doesn't connect before forking, and fix
uwsgi persistent connections (non) support.
Finally, it changes how keystone options are registered to use a more
robust and supported mechanism.
Change-Id: I917a893c0d7175e3a465cf08c5e0375d9944fd16
MongoDB can't start, if mongodb.conf has duplicate parameters.
When using Zaqar as plugin in DevStack on debian-like system,
each run of stack.sh adds a new line to etc/mongodb.conf:
"smallfiles=true"
So eventually mongodb.conf will contain duplicate parameters.
It means that stack.sh will be able to execute successfully only once,
on subsequent executions it will fail,
because of Zaqar which will fail to start,
because of MongoDB which will fail to start,
because of corrupted mongodb.conf
which will be corrupted by zaqar/devstack/plugin.sh
This commit will make sure that "smallfiles=true" line will be added to
mongodb.conf only if mongodb.conf doesn't contain this line already.
Change-Id: Ieba5abb970ff7565f3a837778e402ea8d5c5c463
Closes-Bug: 1507391
When using Zaqar as plugin in DevStack, after executing unstack.sh,
there's still Zaqar uwsgi master process with it's workers running:
/usr/local/bin/uwsgi --ini /etc/zaqar/uwsgi.conf
This process must be stopped.
Also running uwsgi process will prevent Zaqar to start on the next
execution of stack.sh.
The problem occurs, because of the nature of uwsgi container.
It just can't be stopped like that:
https://github.com/openstack/zaqar/blob/master/devstack/plugin.sh#L253
It must be stopped as described in uwsgi documentation:
https://uwsgi-docs.readthedocs.org/en/latest/Management.html
This commit will make uwsgi container process stop correctly on
unstack.sh execution by using PID of the process as described in uwsgi
documentation.
Change-Id: I2f39ea5880c2153fa14a8308d8710969ef6a1a5e
Closes-Bug: 1504854
This change allows running either tempest or zaqarclient as testsuite in
Zaqar's gate. Ideally, we should focus on bringing as much tests as
possible to zaqarclient. However, we can't just give up on maintaining
tempest tests update. If anything, we should work harder on bringing
these in-tree or just contribute to the project.
Related-to: I1ba10b18560f35f48a7258eaa2a57727617760bd
Depends-on: Ifcf54fa2d4a5bf49b6757b593bb70cdeda8edb2a
Related-to: Idbc2c9fbd5c63db01ce28e4a52d1a917e4360363
Depends-On: I0f1fd4374125d4b489f3804b79a672b39c714421
Change-Id: I36ac3833ad55123fba0ea71259be6d56353d53e1
1.) Corrected headings according to rules of migrations by
placing "=======" on headings in the files
2.) Some headings have extra "====", they are removed
3.) Launchpad url have '~' which makes error: page not found
,so it is removed
Change-Id: I99581025d579f18da9ebe57267fb002cbcba28dd
This commit adds support for RBAC using oslo.policy. This allows Zaqar
for having a fine-grained access control to the resources it exposes.
As of this patch, the implementation allows to have access control in
a per-operation basis rather than specific resources.
Co-Authored-by: Thomas Herve <therve@redhat.com>
Co-Authored-by: Flavio Percoco <flaper87@gmail.com>
blueprint: fine-grained-permissions
Change-Id: I90374a11815ac2bd9d31768588719d2d4c4e7f5d
Now that the sqlalchemy management backend is complete, make sure it's
enabled for the redis gate since redis doesn't have support for the
managment API.
Change-Id: I65d6c38ec13026251a8aeb346d5248cf81de39e5
We create keystone accounts conditionally depending on whether keystone
was enabled or not. Do the same when configuring the auth strategy in
Zaqar.
Change-Id: Ic3a99e24099dbe32a4435dbb092d09a7fae7dc2f
Instead of daemonizing processes ourselves, let devstack take care of
that so that logging goes to the right place and then it'll be exported
and shown in the gate logs.
Closes-bug: #1493036
Change-Id: I532ad70dbf20985b8f4d16ea19799d4b832902ae
Add a sample configuration for running the wsgi transport using uwsgi,
and make devstack uses it, while running zaqar-server with websocket
transport.
This allows running both websockets and wsgi transports on devstack.
Change-Id: Ifac7461ec6b0501b1b9021030d9c173cf368a59b
Zaqar can be installed in two ways using devstack:
- using old approach called "hooks"
- using new approach called "devstack plugin"
So, if we try to install it using only devstack plugin enabling it as following:
"enable_plugin zaqar https://github.com/openstack/zaqar"
in localrc file, then we get nothing in a result. Because Devstack plugin tries
to enable zaqar using 'enable_service zaqar' [1].
But, then, devstack performs action verifying that 'zaqar-server' is
enabled. [2]
This leads to that zaqar is not installed at all.
For the moment, Zaqar installation works in CI because 'zaqar-server' is
enabled by other means using hooks.
[1]: https://github.com/openstack/zaqar/blob/bfcc60c1/devstack/settings#L4
[2]: https://github.com/openstack/zaqar/blob/bfcc60c1/devstack/plugin.sh#L246
Change-Id: I3c55756171e772d5c9e69066e0434ace5da0f852
Closes-Bug: #1476583
We recently enabled default pools creation, which will use the default
`message_storage` if present. This patch extends that to queue's
creation where we try to register a queue in the catalogue but we fail
if no pools were found.
With this patch, the failure will happen after checking if there's a
default pool that can be used.
In addition to the above, this commit adds a new option
`enable_virtual_pool` that makes default pools registration optional.
This is to avoid breaking backwards compatibility on the deployments
already running Zaqar.
DocImpact
Closes-bug: #1462008
Closes-bug: #1463110
Change-Id: Ieb8d2671066fc909f422bd74fd20070bc0f9cf11
We split both, data and control, planes and we were diligent in
splitting the configuration sections. However, we forgot to split the
`storage` option in the `drivers` section.
This patch does that and marks the old option as deprecated.
Closes-bug: #1462025
Change-Id: I692c35dcf217bede557ac463b2388f9a60d96c79
This patch marks v1 as deprecated. It'll be removed in the next cycle
and we won't be fixing things for it anymore. This change should be
reflected in the client library as well.
In this patch, devstack has been switched to use v2 directly, which is
the current developed/maintained version.
APIImpact
Change-Id: I2f32828835b3329b37bf7bac04024c46c161054a
This patch enables pooling by default. Pooling has become a central
piece for Zaqar, therefore, we ought to test on it always.
The patch also changes the behavior for pools in Zaqar. That is,
whenever a default pool is not found and a `message_store` section has
been configured, such section will be used as the default store. No
pools will be created out of this configurations so that users can still
configure their default store using zaqarclient.
Change-Id: I820ac017ee44b806dead9bc484664228d4022f81
Depends-On: If5c91ebe136017cea2eeecf62a580d050e49617d
We won't likely have a reliable cluster set up in devstack in the short
term. Set unreliable=True as the default for now.
Change-Id: Ifc8f9d49edc09b736699fc14e06481d1552a6e9b
Add gate hooks to be able to control the gate workflow easily. This adds
a hook that runs before the test and one that runs after the test.
Change-Id: I1c45a76b2bc0bdec83e5d21aa9657848f069d958
Add devstack function dispatchers so that these functions will be
actually called when stack.sh is executed.
Change-Id: Ia9a6ecef8dfff93e39c507bbbb25fbc544dfaf48
We recently split the data plane from the control plane. This patch
updates those sections in devstack.
Change-Id: Idfa1325cf5732b408cb717e8b6162b18e1618985
Depends-On: If5c91ebe136017cea2eeecf62a580d050e49617d
Zaqar doesn't support sqlalchemy for the dataplane anymore. This patch
removes it. Future patches will bring it back to support the management
plane.
Change-Id: If464f1b6ba5bda84654ff70f19ea891c99ba92e3
Depends-On: If5c91ebe136017cea2eeecf62a580d050e49617d
Instead of using `zaqar-server` as the service name in devstack, use
zaqar. This will allow for future services to be added.
Change-Id: I65667da3783130876ed781b2659000b82fa15e37
Depends-On: If5c91ebe136017cea2eeecf62a580d050e49617d
The plugin installs redis packages when needed but it doesn't do the
same for mongodb. This patch makes sure the required mongodb packages
are installed.
Change-Id: Ifef3d043cc05323a964ac3f3eac2f3505b267b82
Depends-On: 9643dcbf073d187d1ec32253c039ede6ba8b4d59
This, besides making devstack slimner, will give us more control on
what's in the plugin and it'll allow us to experiment with different
configurations.
Change-Id: I38c6cf71e2ae73f60e4494d853fee5796aa1f0f8