[new][zaqar] zaqar 3.0.0 release (newton)
We are pumped to announce the release of: zaqar 3.0.0: OpenStack Queuing and Notification Service This release is part of the newton release series. For more details, please see below. 3.0.0 ^^^^^ New Features ************ * Add a new webhook notifier using trust authentication. When using the 'trust+' URL prefix, Zaqar will create a Keystone trust for the user, and then use it when a notification happens to authenticate against Keystone and send the token to the endpoint. * Support 'post_data' and 'post_headers' options on subscribers, allowing customization of the payload when having a webhook subscriber. The 'post_data' option supports the '$zaqar_message$' string template, which will be replaced by the serialized JSON message if specified. * Queues now behave lazy in subscriptions also. So there is no need for the user to pre-create a queue before creating a subscription for this queue. Zaqar will create the queue automatically on the subscription creation request. As before, all subscriptions will continue to stay active even if the corresponding queue was deleted. * Currently Zaqar can support more built-in/reserved attributes in queue. For now there are two important attributes 'max_messages_post_size' and 'max_message_ttl'. With this feature, when user query queues Zaqar will show those two attributes (read from config file if there is no customized value from user) in queue metadata so that user can know what value it is. * Currently, the v1 API is still accessible though it has been deprecated for a while. And we're going to deprecate v1.1 soon. To keep the backward compatibility, a new config option - "enable_deprecated_api_versions" is added so that operator can totally turn off an API version or still support it by adding the API version to the list of the new config option. * Now before users send messages to subscribers through a queue, the subscribers should be confirmed first. Zaqar only sends messages to the confirmed subscribers. This feature supports "webhook" and "mailto" subscribers with mongoDB or redis backend. The "mailto" part will be done in O cycle. Set "require_confirmation = True" to enable this feature. The default value is "False" now and we will enable it by default after one or two cycles. Deprecation Notes ***************** * Zaqar API v2 has been released for several cycles and it is integrated as the default API version by most of the OpenStack services. So it is time to deprecated v1.1 in favor of v2. Now in Newton cycle, Zaqar API v1.1 is officially deprecated. Bug Fixes ********* * When access the root path of Zaqar service, for example: curl GET http://127.0.0.1:8888/, user will see 401 error. Which will cause some front end proxy (like HAProxy) to complain. Now this issue has been fixed. * Query for all subscriptions on a given queue by taking into account the returned marker, if any. Without this fix, only 10 subscriptions can be extracted from database to send notification. * In IPv6 management network environment, starting Zaqar server will run into 'Address family for hostname not support' error when use WSGI simple server. The root cause is that Python's TCPServer implementation is hard-coded to use IPv4, even in IPv6 environments. Now this issue has been fixed. Changes in zaqar 2.0.0.0rc1..3.0.0 ---------------------------------- 1c77c6e Don't check key format in mongodb 77d7b1a Update UPPER_CONSTRAINTS_FILE for stable/newton 70a72bb Update .gitreview for stable/newton 49d8dd1 Remove small duplication from message storage 3701257 Consolidate constants to a module b745146 Officially deprecate API v1.1 6767092 Fix links in devstack/README.rst f38cecf Disable DEPRECATED API versions by default da130bf Updated from global requirements 4bae6c7 Config logABug feature for zaqar api-ref 9f5b518 Clean imports in code 96f9e8b Remove openstack-doc-tools 3b6932f Use upper constraints for all jobs in tox.ini 6ff9be9 Get ready for os-api-ref sphinx theme change 69c7997 Subscription Confirmation Support-1 96aae7c Fix a minor error in API reference fb775a9 Remove the useless function cf6210d Don't check for project-id if accessing the / route 77d0567 Adding Negative tests cases to Zaqar v2 8ef5fc9 Start accepting **kwargs in service clients c7fa056 Fix errors in API reference for message resource ef50510 modify the home-page info with the developer documentation 8bdc215 Add flavors api ref 930a075 Support `messages` API ref 43765a0 Cleanup i18n marker functions to match Oslo usage 4083856 Updated from global requirements 28cc171 This patch removes extra spaces from files. 9cfa5bc Fix falcon.HTTPConflict initialization getting error 8703ead Add Python 3.5 classifier and venv 8480440 Remove docs,comments,references to Oslo Incubator 37cbe90 Fixes: Typo in comments 51604b4 Add a trust notifier task 0966c7a Ensure queue exists before get/update the claim fabc0b1 Add pools api ref 62e92fc Disable warnerrors=true in setup.cfg 18fc577 Add `Pre-signed queue' api ref 329b2d9 Config: no need to set default=None cc16004 Updated from global requirements 31d6bb6 Fix issue with subscription list in Redis 349839d Remove tempest smoke tests run d0a129f (redis)Fix the 503 error when get/delete messages ef0f8ba Add `Health` api ref 1772e66 Fix the wrong check of X-PROJECT-ID 65bf61d Add subscription api ref 87af703 Cleanup integration tests setup 228f4a6 Clean the auth app after authentication failure 721925c Add Claims for api ref 53b5954 Let v2 tempest base on the base tests 95c9c5d Fix debug log missing issue 35cc77f Remove leftovers on websocket disconnections 7c6eecd Fix config parsing in zaqar-server 18c169b Updated from global requirements d8cde2a Fix post install jobs e439b2e Relocates cli options registration from bootstrap to server 6cb3855 Delete in tree config ref b8a70e4 Add release note for bug 1590173 9a3b019 Add Queues for api ref 5134d30 Add Zaqar installation guide 069bc54 Fix incorrect message when getting non-existing claim 4c2b7e0 Make queues lazy in subscriptions e9dbb19 Add release notes 989f477 Use is_valid_ipv6 from oslo.utils d30ceae Use debug instead of warning for pipeline implement error 61100fe Fix subscription limit per queue e72dc08 Fix fail of getting claim after claim expire(Redis) c1f0ac1 Make the notifier max_workers configurable 897424a Show 'age' field in subscriptions (redis) 3b32dfb Show 'age' field in subscriptions (mongodb) 682eae0 Add reserved metadata check c5640b8 Support Tempest test as gate job 8e5be21 Avoid multi-threading problem with sql backend 48f3e9f Fix fail of claim after some message expire(Redis) 437c26a Always use pip constraints da4009d Init commit to add API ref in tree 4f1bff4 Updated from global requirements c3af668 Define context.roles with base class e007e47 Use run() wrapper instead of connection.execute() 6250cde Improve the log to avoid unexpected ERROR ebc6721 Rename notification/task to notification/tasks c3ebf0d Replace tempest-lib with tempest.lib 437c2fe Refactor zaqar/storage/utils.py to respect DRY 7e87ade remove verbose option in devstack plugin e6d975f Fix falcon confilct in requirements.txt 58e8429 Fix py34 gate job 3f15c0b Move to falcon middleware d744f81 Changed assertTrue(isinstance()) to assertIsInstance. 592304e Trivial: remove openstack/common in flake8 exclude list a066bca Fix cache decorator tests 4a9f313 Imported Translations from Zanata 4f6ac58 Updated from global requirements cae19a2 Fix wrong claim error message fc612ce Default message ttl is needed to change correctly b59c304 Fix auth issue when accessing root path "/" 8237744 Make sure use IPv6 sockets for Zaqar in IPv6 environment e4a5fd4 Show default attributes for queue e78c257 Updated from global requirements 0810e12 Added samples in multiple languages 791cc6f Updated from global requirements 82e02a1 Fix tempest tests list d5286f9 Fix service_available opt registration and extra comma b645feb expires should be checked when using pre-signed url da85355 Validate PUT of reserved queue attributes metadata 400fc6e Validate PUT of reserved queue attributes metadata 89c20fb Warn on upcoming deprecations for v1.0 and v1.1 9671738 Generate oslo.cache options via tox -e genconfig eb3dcee Warn on upcoming deprecations for v1.0 and v1.1 0a191c2 Update reno for stable/mitaka 05efac8 Update .gitreview for stable/mitaka 7f91ccc Use assertEqual/GreaterEqual/LessEqual Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + api-ref/source/claims.inc | 216 +++++++ api-ref/source/conf.py | 250 ++++++++ api-ref/source/flavors.inc | 205 +++++++ api-ref/source/health.inc | 66 +++ api-ref/source/index.rst | 27 + api-ref/source/messages.inc | 328 +++++++++++ api-ref/source/parameters.yaml | 434 ++++++++++++++ api-ref/source/pools.inc | 205 +++++++ api-ref/source/queues.inc | 311 ++++++++++ api-ref/source/samples/claim_messages_request.json | 4 + .../source/samples/claim_messages_response.json | 12 + api-ref/source/samples/claim_query_response.json | 15 + api-ref/source/samples/claim_update_request.json | 4 + api-ref/source/samples/flavor-create-request.json | 3 + api-ref/source/samples/flavor-list-response.json | 22 + api-ref/source/samples/flavor-show-response.json | 12 + api-ref/source/samples/flavor-update-request.json | 3 + api-ref/source/samples/flavor-update-response.json | 12 + api-ref/source/samples/health-response.json | 48 ++ .../samples/messages-get-byids-response.json | 15 + api-ref/source/samples/messages-get-response.json | 11 + api-ref/source/samples/messages-list-response.json | 32 + api-ref/source/samples/messages-post-request.json | 18 + api-ref/source/samples/messages-post-response.json | 6 + api-ref/source/samples/pool-create-request.json | 8 + api-ref/source/samples/pool-list-response.json | 24 + api-ref/source/samples/pool-show-response.json | 7 + api-ref/source/samples/pool-update-request.json | 8 + api-ref/source/samples/pool-update-response.json | 7 + api-ref/source/samples/queue-create-request.json | 5 + .../source/samples/queue-pre-signed-request.json | 5 + .../source/samples/queue-pre-signed-response.json | 16 + api-ref/source/samples/queue-show-response.json | 5 + api-ref/source/samples/queue-stats-response.json | 7 + api-ref/source/samples/queue-update-request.json | 7 + api-ref/source/samples/queue-update-response.json | 3 + api-ref/source/samples/queues-list-response.json | 22 + .../samples/subscription-create-request-http.json | 5 + .../samples/subscription-create-request-mail.json | 8 + .../samples/subscription-create-response.json | 3 + .../source/samples/subscription-show-response.json | 10 + .../samples/subscription-update-request.json | 7 + .../samples/subscriptions-list-response.json | 26 + api-ref/source/samples/versions-list-response.json | 55 ++ api-ref/source/subscription.inc | 225 +++++++ api-ref/source/versions.inc | 38 ++ devstack/README.rst | 12 +- devstack/gate/gate_hook.sh | 19 +- devstack/plugin.sh | 16 +- devstack/settings | 5 + .../api/zaqar.notification.tasks.webhook.rst | 7 + ...qar.openstack.common.cache._backends.memory.rst | 7 - .../api/zaqar.openstack.common.cache.backends.rst | 7 - .../api/zaqar.openstack.common.cache.cache.rst | 7 - .../api/zaqar.openstack.common.fileutils.rst | 7 - .../api/zaqar.openstack.common.gettextutils.rst | 7 - .../api/zaqar.openstack.common.lockutils.rst | 7 - .../api/zaqar.openstack.common.timeutils.rst | 7 - .../zaqar-config-ref/autogen/zaqar.flagmappings | 86 --- .../zaqar-config-ref/autogen/zaqar.headers | 10 - .../zaqar-config-ref/common/tables/zaqar-api.xml | 38 -- .../common/tables/zaqar-auth_token.xml | 145 ----- .../common/tables/zaqar-authentication.xml | 26 - .../common/tables/zaqar-drivers.xml | 30 - .../common/tables/zaqar-logging.xml | 102 ---- .../common/tables/zaqar-mongodb.xml | 70 --- .../common/tables/zaqar-pooling.xml | 26 - .../common/tables/zaqar-storage.xml | 34 -- .../common/tables/zaqar-transport.xml | 66 --- .../zaqar-config-ref/common/tables/zaqar-wsgi.xml | 30 - .../zaqar-config-ref/os-zaqar-configRef.xml | 250 -------- etc/oslo-config-generator/zaqar.conf | 2 + etc/policy.json.sample | 1 + examples/websocket.html | 309 ---------- install-guide/source/conf.py | 301 ++++++++++ install-guide/source/get_started.rst | 65 +++ install-guide/source/index.rst | 22 + install-guide/source/install-rdo.rst | 545 +++++++++++++++++ install-guide/source/install.rst | 33 ++ install-guide/source/next-steps.rst | 9 + install-guide/source/verify.rst | 36 ++ ...dd-a-notifier-using-trust-271d9cd1d2b4cdeb.yaml | 10 + .../notes/deprecate-v11-976cccc1b56a28e7.yaml | 6 + ..._auth_issue_for_root_path-b15e1c4e92e4e8b1.yaml | 7 + .../fix_subscription_limit-c3cdc9385825285a.yaml | 5 + ...y-queues-in-subscriptions-6bade4a1b8eca3e5.yaml | 8 + ...ault_attributes_for_queue-3d87333752484c87.yaml | 8 + ...rnoff-deprecated-versions-44656aeb8ebb8881.yaml | 7 + .../notes/user_ipv6_sockets-1e1b436de6b81ae3.yaml | 7 + ...subscription_confirmation-883cb7f325885ef0.yaml | 9 + releasenotes/source/conf.py | 12 +- releasenotes/source/index.rst | 3 +- releasenotes/source/mitaka.rst | 6 + requirements.txt | 20 +- .../receive_message/JsonDecoder.java | 43 ++ .../receive_message/SampleZaqarEndpoint.java | 57 ++ .../send_message/SampleZaqarEndpoint.java | 45 ++ samples/javascript/receive_message/zaqar_sample.js | 32 + samples/javascript/send_message/zaqar_sample.js | 25 + samples/javascript/websocket.html | 309 ++++++++++ .../jaxrs/receive_message/SampleZaqarServlet.java | 55 ++ samples/jaxrs/send_message/SampleZaqarServlet.java | 52 ++ samples/nodejs/receive_message/zaqar_sample.js | 34 ++ samples/nodejs/send_message/zaqar_sample.js | 27 + .../receive_message/zaqar_sample.py | 30 + .../send_message/zaqar_sample.py | 27 + samples/zaqar/subscriber_service_sample.py | 79 +++ setup.cfg | 20 +- test-requirements.txt | 15 +- tox.ini | 27 +- zaqar/api/handler.py | 27 +- zaqar/api/v1/request.py | 61 +- zaqar/api/v1/response.py | 15 +- zaqar/api/v1_1/request.py | 41 +- zaqar/api/v1_1/response.py | 19 +- zaqar/api/v2/endpoints.py | 23 +- zaqar/api/v2/request.py | 17 +- zaqar/api/v2/response.py | 19 +- zaqar/bootstrap.py | 20 +- zaqar/cmd/gc.py | 4 +- zaqar/cmd/server.py | 20 +- zaqar/common/api/request.py | 15 +- zaqar/common/auth.py | 95 +++ zaqar/common/configs.py | 11 +- zaqar/common/consts.py | 115 ++++ zaqar/common/decorators.py | 35 ++ zaqar/common/pipeline.py | 2 +- zaqar/common/transport/wsgi/helpers.py | 17 +- zaqar/common/urls.py | 14 +- zaqar/context.py | 8 +- zaqar/locale/es/LC_MESSAGES/zaqar.po | 22 +- zaqar/locale/fr/LC_MESSAGES/zaqar-log-error.po | 15 +- zaqar/locale/zaqar-log-error.pot | 54 -- zaqar/locale/zaqar.pot | 604 ------------------- zaqar/notification/notifier.py | 113 +++- zaqar/notification/task/__init__.py | 0 zaqar/notification/task/mailto.py | 53 -- zaqar/notification/task/webhook.py | 38 -- zaqar/notification/tasks/__init__.py | 0 zaqar/notification/tasks/mailto.py | 56 ++ zaqar/notification/tasks/trust.py | 63 ++ zaqar/notification/tasks/webhook.py | 49 ++ zaqar/storage/configuration.py | 48 ++ zaqar/storage/mongodb/claims.py | 2 +- zaqar/storage/mongodb/messages.py | 19 +- zaqar/storage/mongodb/subscriptions.py | 59 +- zaqar/storage/pipeline.py | 6 +- zaqar/storage/pooling.py | 11 + zaqar/storage/redis/claims.py | 15 +- zaqar/storage/redis/messages.py | 11 +- zaqar/storage/redis/models.py | 10 +- zaqar/storage/redis/scripts/claim_messages.lua | 45 +- zaqar/storage/redis/subscriptions.py | 22 +- zaqar/storage/redis/utils.py | 2 +- zaqar/storage/sqlalchemy/catalogue.py | 12 +- zaqar/storage/sqlalchemy/driver.py | 8 +- zaqar/storage/sqlalchemy/flavors.py | 14 +- zaqar/storage/sqlalchemy/pools.py | 20 +- zaqar/storage/utils.py | 7 +- .../api_schema/response/v2/queues.py | 4 +- .../services/messaging/json/messaging_client.py | 64 +- .../unit/transport/websocket/v2/test_claims.py | 51 +- .../unit/transport/websocket/v2/test_messages.py | 70 +-- .../transport/websocket/v2/test_queue_lifecycle.py | 47 +- .../transport/websocket/v2/test_subscriptions.py | 126 +++- .../unit/transport/wsgi/v1/test_validation.py | 16 + .../unit/transport/wsgi/v1_1/test_validation.py | 39 ++ .../transport/wsgi/v2_0/test_queue_lifecycle.py | 67 ++- .../unit/transport/wsgi/v2_0/test_subscriptions.py | 98 +++- zaqar/transport/auth.py | 5 + zaqar/transport/validation.py | 18 +- zaqar/transport/websocket/driver.py | 2 +- zaqar/transport/websocket/factory.py | 3 + zaqar/transport/websocket/protocol.py | 24 +- zaqar/transport/wsgi/app.py | 4 +- zaqar/transport/wsgi/driver.py | 46 +- zaqar/transport/wsgi/v1_0/__init__.py | 9 + zaqar/transport/wsgi/v1_0/metadata.py | 14 +- zaqar/transport/wsgi/v1_1/__init__.py | 17 +- zaqar/transport/wsgi/v1_1/queues.py | 16 +- zaqar/transport/wsgi/v2_0/__init__.py | 11 +- zaqar/transport/wsgi/v2_0/pools.py | 2 +- zaqar/transport/wsgi/v2_0/queues.py | 50 +- zaqar/transport/wsgi/v2_0/subscriptions.py | 103 +++- zaqar/transport/wsgi/v2_0/urls.py | 4 +- 254 files changed, 8872 insertions(+), 2902 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 0f828f5..5b913db 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6 +6 @@ pbr>=1.6 # Apache-2.0 -Babel>=1.3 # BSD +Babel>=2.3.4 # BSD @@ -9,2 +9,2 @@ jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT -iso8601>=0.1.9 # MIT -keystonemiddleware!=4.1.0,>=4.0.0 # Apache-2.0 +iso8601>=0.1.11 # MIT +keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0 @@ -14 +14 @@ WebOb>=1.2.3 # MIT -stevedore>=1.5.0 # Apache-2.0 +stevedore>=1.16.0 # Apache-2.0 @@ -17,2 +17,2 @@ oslo.cache>=1.5.0 # Apache-2.0 -oslo.config>=3.7.0 # Apache-2.0 -oslo.context>=0.2.0 # Apache-2.0 +oslo.config>=3.14.0 # Apache-2.0 +oslo.context>=2.9.0 # Apache-2.0 @@ -22,2 +22,2 @@ oslo.serialization>=1.10.0 # Apache-2.0 -oslo.utils>=3.5.0 # Apache-2.0 -oslo.policy>=0.5.0 # Apache-2.0 +oslo.utils>=3.16.0 # Apache-2.0 +oslo.policy>=1.9.0 # Apache-2.0 @@ -28,2 +28,2 @@ autobahn>=0.10.1 # MIT License -requests!=2.9.0,>=2.8.1 # Apache-2.0 -futurist>=0.11.0 # Apache-2.0 +requests>=2.10.0 # Apache-2.0 +futurist!=0.15.0,>=0.11.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index a2fb1cc..93fe258 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -8 +8 @@ hacking<0.11,>=0.10.0 -mock>=1.2 # BSD +mock>=2.0 # BSD @@ -18 +18 @@ ddt>=1.0.1 # MIT -fixtures>=1.3.1 # Apache-2.0/BSD +fixtures>=3.0.0 # Apache-2.0/BSD @@ -24 +24 @@ testtools>=1.4.0 # MIT -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD +sphinx!=1.3b1,<1.3,>=1.2.1 # BSD @@ -26 +26 @@ oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 -openstack-doc-tools>=0.23 # Apache-2.0 +openstackdocstheme>=1.5.0 # Apache-2.0 @@ -28 +28,2 @@ oslotest>=1.10.0 # Apache-2.0 -reno>=0.1.1 # Apache2 +reno>=1.8.0 # Apache2 +os-api-ref>=1.0.0 # Apache-2.0 @@ -30,2 +31,2 @@ reno>=0.1.1 # Apache2 -# Tempest Plugin -tempest-lib>=0.14.0 # Apache-2.0 +# Tempest +tempest>=12.1.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org