CHANGES
=======

2.7.0
-----

* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Small grammar messaging fix
* Use a condition (and/or a dummy one) instead of a lock
* Updated from global requirements

2.6.1
-----

* Fix failures when zmq is not available

2.6.0
-----

* AMQP1.0: Turn off debug tracing when running tox
* Fix typo in rpc/server.py and notify/listener.py
* Fix a typo in server.py
* Use the hostname from the Transport for GSSAPI Authentication
* Adapt functional tests to pika-driver
* ConfFixture should work even when zmq/redis is not present
* Added matchmaker timeouts and retries
* AMQP 1.0: Properly initialize AMQP 1.0 configuration options
* Updated from global requirements
* Workaround test stream corruption issue
* Skip Redis specific tests when it is not installed
* Port the AMQP 1.0 driver to Python 3
* rabbit: shuffle hosts before building kombu URL
* Updated from global requirements
* Remove unnecessary rpc_zmq_port option
* Non-blocking outgoing queue was implemented
* Allow custom notification drivers
* Fix the home-page value with Oslo wikipage
* Include changelog/history in docs
* Fix spelling typo in output
* Change ignore-errors to ignore_errors
* Unsubscribe target listener when leaving
* Add SASL configuration options for AMQP 1.0 driver
* Updated from global requirements
* Fix a few leaks in the AMQP 1.0 driver
* Disable ACL if authentication cannot be performed
* Imported Translations from Zanata
* Enhance start/stop concurrency race condition fix
* Updated from global requirements
* Extend logging in amqpdriver
* Remove useless additional requirement file
* Fix AMQP 1.0 functional and unit test failures
* Provide the executor 'wait' function a timeout and use it

2.5.0
-----

* Imported Translations from Transifex
* Update path to subunit2html in post_test_hook
* Fix typos in a document and a comment
* Updated from global requirements
* Imported Translations from Transifex
* Updated from global requirements
* Port the AMQP1 driver to new Pyngus SASL API
* Updated from global requirements
* Imported Translations from Transifex
* Updated from global requirements
* Add config options to the documentation
* Updated from global requirements

2.4.0
-----

* Mask passwords when logging messages
* Updated from global requirements
* Use proper translating helper for logging
* Improve simulator.py

2.3.0
-----

* Imported Translations from Transifex
* Added trace logging for debuggability
* Log warning instead of raising RuntimeError
* Use pickle instead of jsonutils for serialization
* Updated from global requirements
* Acknowledgements implementation
* Replace 'M' with 'Mitaka'
* Add if condition for random.shuffle
* Fix message missing after duplicated message error
* Fix fork-related issues
* FIx CPU time consuming in green_poller poll()
* Documenting main driver classes
* Notifier implementation
* Imported Translations from Transifex
* Fix BaseDriver.listen_for_notifications() signature
* ZMQ: Minor matchmaker improvement
* Imported Translations from Transifex
* Updated from global requirements
* Add unit tests for zmq_async

2.2.0
-----

* Imported Translations from Transifex
* ZMQ: `Lazify` driver code
* Ensures that some assumptions are true
* Remove oslo namespace package
* Register matchmaker_redis_opts in RedisMatchMaker
* Imported Translations from Transifex
* Updated from global requirements
* ZMQ: Removed unused code and tests
* ZMQ: Run more functional tests
* Get rid of proxy process in zmq
* Fully use futurist code-base to abstract concurrent.futures away

2.1.0
-----

* Imported Translations from Transifex
* Updated from global requirements
* Close sockets properly
* add plugin documentation for executors and notifiers
* Allows to change defaults opts
* Target direct usage
* Move zmq tests into a subdirectory

2.0.0
-----

* Allow a forward slash as a part of the user/password
* Update 'impl_eventlet' docstring to reflect actual impl
* Updated from global requirements
* tests: adjusts an expected time for gate
* Updated from global requirements
* Ensure callback variable capture + cleanup is done correctly
* Remove oslo namespace package
* ZMQ: Initial matchmaker implementation
* Updated from global requirements
* Fix threading zmq poller and proxy
* Don't install pyngus on Python 3
* Fix amqp connection pool leak in ConnectionContext
* Executor docstring & attribute tweaks

1.17.1
------

* Use the warn_eventlet_not_patched util function
* Drop use of 'oslo' namespace package

1.17.0
------

* Updated from global requirements
* Add unit tests for zmq_serializer
* Updated from global requirements
* Fix work with timeout in CallRequest.receive_reply()
* Fix mock use for mock 1.1.0
* Make heartbeat the default
* ZMQ: Allow to raise remote exception
* Local Fanout implementation
* Drop use of 'oslo' namespace package
* Use oslo.log in the zmq receiver
* Imported Translations from Transifex
* Remove usage of contentmanager for executors
* Verify that version in 'prepare' is valid

1.16.0
------

* Fix qpid's functional gate
* Don't reply when we known that client is gone
* Remove py26 artefacts from oslo.messaging code
* Remove 2.6 classifier
* Imported Translations from Transifex
* Add WebOb and greenlet to requirements
* Use ServiceBase from oslo.service as a parent class
* Manual update the requirements
* Deprecated impl_qpid
* Add a missed `raise` statement
* Remove qpid-config call
* Initial commit for new zmq driver implementation
* Add tox target to find missing requirements
* Fix qpid's functional gate
* Imported Translations from Transifex
* fix typo
* Correct RPCVersionCapError message

1.15.0
------

* Drop use of 'oslo' namespace package
* Update .gitreview for feature/zmq
* Use `inferred=True` by default
* Enable amqp's protocol unit tests everywhere
* Switch badges from 'pypip.in' to 'shields.io'
* Don't use devstack to setup our functional env
* Switch to warnings module instead of versionutils
* Updated from global requirements
* Get mox from mox3, not from six.moves
* rabbit: Add logging on blocked connection
* Provide better detection of failures during message send

1.14.0
------

* Reduce `magic` conf attribute usage
* Imported Translations from Transifex
* Remove leftover oslo.config reference
* replace rpc_response_timeout use in rabbit driver
* Enable `fanout_target` scenarios in test_impl_rabbit
* Add drivers to the documentation

1.13.0
------

* Ensure rpc_response_timeout is registered before using it
* rabbit: test for new reply behavior

1.12.0
------

* Fix condition in _publish_and_retry_on_missing_exchange(
* Set places to 0 in self.assertAlmostEqual()
* Allow to remove second _send_reply() call
* Don't create a new channel in RabbitMQ Connection.reset()
* Imported Translations from Transifex
* Adding Publisher Acknowledgements/confirms
* Fix deprecated_group of rpc_conn_pool_size
* Refactor processing reply in ReplyWaiter
* rabbit: doc fixes
* consumer connections not closed properly

1.11.0
------

* rabbit: smart timeout on missing exchange
* rabbit: Fix message ttl not work
* rabbit: remove publisher classes
* rabbit: Set timeout on the underlying socket
* Remove stale copy of context.py
* Add one more functional test for MessagingTimeout
* Fix list_opts test to not check all deps
* make it possible to import amqp driver without dependencies
* Remove outdated release notes
* rabbit: smarter declaration of the notif. queue
* rabbit: redeclare consumers when ack/requeue fail
* Bump kombu and amqp requirements
* Updated from global requirements
* rabbit: fix exception path in queue redeclaration
* rabbit: fix consumers declaration
* rabbit: remove unused consumer interfaces
* rabbit: remove unused code
* rabbit: Remove unused stuffs from publisher
* Remove support for Python 3.3
* Updated from global requirements
* Add RequestContextSerializer
* Updated from global requirements
* rabbit: fixes a logging issue
* rabbit/qpid: simplify the consumer loop
* Updated from global requirements
* Imported Translations from Transifex
* Fix missing space in help text
* zmq: Add support for ZmqClient pooling
* Enable eventlet dependency on Python 3
* Add JsonPayloadSerializer serializer
* Fix test_matchmaker_redis on Python 3
* Disable and mark heartbeat as experimental

1.10.0
------

* Uncap library requirements for liberty
* Port ZMQ driver to Python 3
* Use unittest.mock on Python 3
* Enable redis test dependency on Python 3
* Remove amqp driver 'unpacked content' logging
* Updated from global requirements
* Add pypi download + version badges
* Fix TypeError caused by err_msg formatting
* Fix typo in oslo_messaging/_drivers/protocols/amqp/opts.py
* Document notification_driver possible values
* Do not skip functional test for amqp driver
* Add functional test for notify.logger
* Properly deserialize received AMQP 1.0 messages
* Make notify driver messaging play well with publish_errors
* Imported Translations from Transifex

1.9.0
-----

* Use the oslo_utils stop watch in decaying timer
* Updated from global requirements
* Remove 'UNIQUE_ID is %s' logging
* Sync with latest oslo-incubator
* rabbit: fix ipv6 support
* Create a unique transport for each server in the functional tests
* Publish tracebacks only on debug level
* Add pluggability for matchmakers
* Make option [DEFAULT]amqp_durable_queues work
* Reconnect on connection lost in heartbeat thread
* Don't raise Timeout on no-matchmaker results
* Imported Translations from Transifex
* cleanup connection pool return
* rabbit: Improves logging
* fix up verb tense in log message
* rabbit: heartbeat implementation
* Fix changing keys during iteration in matchmaker heartbeat
* Minor improvement
* ZeroMQ deployment guide
* Fix a couple typos to make it easier to read
* Tiny problem with notify-server in simulator
* Fix coverage report generation
* Add support for multiple namespaces in Targets
* tools: add simulator script
* Deprecates the localcontext API
* Update to oslo.context
* Remove obsolete cross tests script
* Fix the bug redis do not delete the expired keys

1.8.0
-----

* Updated from global requirements
* NotifyPublisher need handle amqp_auto_delete
* Fix matchmaker_redis ack_alive fails with KeyError
* Properly distinguish between server index zero and no server

1.7.0
-----

* Add FAQ entry for notifier configuration
* rabbit: Fix behavior of rabbit_use_ssl
* amqp1: fix functional tests deps
* Skip functional tests that fail due to a qpidd bug
* Use import of zmq package for test skip
* Remove unnecessary log messages from amqp1 unit tests
* Include missing parameter in call to listen_for_notifications
* Fix the import of the driver by the unit test
* Add a new aioeventlet executor
* Add missing unit test for a recent commit
* Add the threading executor setup.cfg entrypoint
* Move each drivers options into its own group
* Refactor the replies waiter code
* Imported Translations from Transifex
* Fix notifications broken with ZMQ driver
* Gate functionnal testing improvements
* Treat sphinx warnings as errors
* Move gate hooks to the oslo.messaging tree
* Set the password used in gate
* Update README.rst format to match expectations

1.6.0
-----

* Declare DirectPublisher exchanges with passive=True
* Updated from global requirements
* Expose _impl_test for designate
* Update Oslo imports to remove namespace package
* Speedup the rabbit tests
* Fix functionnal tests
* kombu: fix driver loading with kombu+qpid scheme
* Fixed docstring for Notifier
* zmq: Refactor test case shared code
* Add more private symbols to the old namespace package
* Updated from global requirements
* Adjust tests for the new namespace
* Fixes test_two_pools_three_listener
* Add TimerTestCase missing tests case
* Ensure kombu channels are closed
* fix qpid test issue with eventlet monkey patching
* Make setup.cfg packages include oslo.messaging
* Upgrade to hacking 0.10
* Implements notification-dispatcher-filter
* Add oslo.messaging._drivers.common for heat tests
* Port zmq driver to Python 3
* Make sure zmq can work with redis
* fix qpid test issue with eventlet monkey patching
* Move files out of the namespace package
* Add a info log when a reconnection occurs
* rabbit: fix timeout timer when duration is None
* Don't log each received messages
* Fix some comments in a backporting review session
* Enable IPv6-support in libzmq by default
* Add a thread + futures executor based executor
* safe_log Sanitize Passwords in List of Dicts
* Updated from global requirements
* rabbit: add some tests when rpc_backend is set
* Warns user if thread monkeypatch is not done
* Add functional and unit 0mq driver tests
* The executor doesn't need to set the timeout
* qpid: honor iterconsume timeout
* rabbit: more precise iterconsume timeout
* Workflow documentation is now in infra-manual
* Touch up grammar in warning messages

1.5.1
-----

* Reintroduces fake_rabbit config option
* Make the RPCVersionCapError message clearer
* Doc: 'wait' releases driver connection, not 'stop'
* Don't allow call with fanout target
* Imported Translations from Transifex
* Add an optional executor callback to dispatcher

1.5.0
-----

* Rabbit: Fixes debug message format
* Rabbit: iterconsume must honor timeout
* Don't use oslo.cfg to set kombu in-memory driver
* Don't share connection pool between driver object
* Show what the threshold is being increased to
* Wait for expected messages in listener pool test
* Dispath messages in all listeners in a pool
* Reduces the unit tests run times
* Set correctly the messaging driver to use in tests
* Always use a poll timeout in the executor
* Have the timeout decrement inside the wait() method
* Warn user if needed when the process is forked
* Renamed PublishErrorsHandler
* Fix reconnect race condition with RabbitMQ cluster
* Create a new connection when a process fork has been detected
* Add more TLS protocols to rabbit impl
* Remove the use of PROTOCOL_SSLv3
* Add qpid and amqp 1.0 tox targets
* Updated from global requirements
* Imported Translations from Transifex
* rabbit: uses kombu instead of builtin stuffs
* Allows to overriding oslotest environ var
* Create ZeroMQ Context per socket
* Remove unuseful param of the ConnectionContext
* Updated from global requirements
* Add basic tests for 0mq matchmakers
* Notification listener pools
* Updated from global requirements
* Fix tiny typo in server.py
* Switch to oslo.middleware
* Updated from global requirements
* Activate pep8 check that _ is imported
* Enable user authentication in the AMQP 1.0 driver
* Documentation anomaly in TransportURL parse classmethod
* Don't put the message payload into warning log
* Updated from global requirements
* Fix incorrect attribute name in matchmaker_redis
* Add pbr to installation requirements
* Updated from global requirements
* Add driver independent functional tests
* Imported Translations from Transifex
* zmq: Remove dead code
* Updated from global requirements
* Finish transition to oslo.i18n
* Imported Translations from Transifex
* Imported Translations from Transifex
* qpid: Always auto-delete queue of DirectConsumer
* Updated from global requirements
* Imported Translations from Transifex
* Enable oslo.i18n for oslo.messaging
* Switch to oslo.serialization
* Cleanup listener after stopping rpc server
* Updated from global requirements
* Track the attempted method when raising UnsupportedVersion
* fix memory leak for function _safe_log
* Stop using importutils from oslo-incubator
* Add missing deprecated group amqp1
* Updated from global requirements
* Stop using intersphinx
* Add documentation explaining how to use the AMQP 1.0 driver
* Imported Translations from Transifex
* Construct ZmqListener with correct arguments
* Message was send to wrong node with use zmq as rpc_backend
* Work toward Python 3.4 support and testing
* Ensure the amqp options are present in config file
* Add contributing page to docs
* Import notifier middleware from oslo-incubator
* Let oslotest manage the six.move setting for mox

1.4.1
-----

* Imported Translations from Transifex
* Add square brackets for ipv6 based hosts
* An initial implementation of an AMQP 1.0 based messaging driver
* warn against sorting requirements
* Improve help strings
* Switch to oslo.utils
* Fix Python 3 testing
* Import oslo-incubator context module
* Import oslo-incubator/middleware/base
* Should not send replies for cast messages
* Port to Python 3
* Sync jsonutils from oslo-incubator
* Add parameter to customize Qpid receiver capacity
* Make tests pass with random python hashseed
* Set sample_default for rpc_zmq_host
* Enable PEP8 check E714
* Enable PEP8 check E265
* Enable PEP8 check E241
* Fix error in example of an RPC server
* Replace lambda method _
* Enable check for E226
* Updated from global requirements
* Add release notes for 1.4.0.0a4
* Add release notes for stable/icehouse 1.3.1 release

1.4.0.0a4
---------

* Enabled hacking checks H305 and H307
* Bump hacking to version 0.9.2
* Fixes incorrect exchange lock in fake driver
* Imported Translations from Transifex

1.4.0.0a3
---------

* Add release notes for 1.4.0.0a2/a3
* Fix AMQPListener for polling with timeout
* Replaced 'e.g.' with 'for example'
* Use assertEqual instead of assertIs for strings

1.4.0.0a2
---------

* Fix structure of unit tests in oslo.messaging (part 3 last)
* Fix structure of unit tests in oslo.messaging (part 2)
* Fix slow notification listener tests
* encoding error in file
* Fix info method of ListenerSetupMixin

1.4.0.0a1
---------

* Add release notes for 1.4.0.0a1
* Fix formatting of TransportURL.parse() docs
* Remove duplicate docs for MessageHandlingServer
* Add missing docs for list_opts()
* Add 'docs' tox environment
* Replace usage of str() with six.text_type
* Fix structure of unit tests in oslo.messaging (part 1)
* Synced jsonutils and its dependencies from oslo-incubator
* Ensures listener queues exist in fake driver
* RPC server doc: use the blocking executor
* Fix the notifier example
* Removes the use of mutables as default args
* Set correct group for matchmaker_redis options
* replace string format arguments with function parameters
* Removes contextlib.nested
* Transport reconnection retries for notification
* Disable connection pool in qpid interfaces tests
* Updated from global requirements
* Add check credentials to log message if rabbmitmq closes socket
* Fix the notify method of the routing notifier
* Handle unused allowed_remote_exmods in _multi_send
* rabbit/qpid: remove the args/kwargs from ensure()
* Add an example usage of RPCClient retry parameter
* Add transport reconnection retries
* Add an optional timeout parameter to Listener.poll
* Bump hacking to 0.9.x series
* Removes unused config option
* fixed pep8 issue E265
* Setup for translation
* Updated from global requirements
* Remove amqp default exchange hack
* remove default=None for config options
* Cleaned up references to executor specific RPCServer types
* Make the TransportUrl hashable
* debug level logs should not be translated
* Explicitly name subscription queue for responses
* Fix passing envelope variable as timeout
* Updated from global requirements
* Synced jsonutils from oslo-incubator
* Remove str() from LOG.* and exceptions
* Remove dependent module py3kcompat
* Enable log messages to handle exceptions containing unicode
* Updated from global requirements
* Fix typo in docstring of notify/notifier
* Full support of multiple hosts in transport url
* Logical error in blockless fanout of zmq
* Select AMQP message broker at random
* Use a for loop to set the defaults for __call__ params
* Update ensure()/reconnect() to catch MessagingError
* Remove old drivers dead code
* Import run_cross_tests.sh from oslo-incubator
* Remove rendundant parentheses of cfg help strings
* zmq: switch back to not using message envelopes
* Trival:Fix assertEqual arguments order
* Oslo-messaging-zmq-receiver cannot recive any messages

1.3.0
-----

* Add release notes for 1.3.0
* Ensure routing key is specified in the address for a direct producer
* Fix wrong parameter description in docstring
* Fixed inconsistent EventletContextManagerSpawnTest failures
* Use messaging_conf fixture configuration by default
* Fixed possible pep8 failure due to pyflakes bug
* Refactor AMQP message broker selection
* Add unit test to check the order of Qpid hosts on reconnect
* Fixed the issue for pop exception
* Clean up for qpid tests
* Add kombu driver library to requirements.txt
* Use driver's notify_send() method again
* Remove vim header
* Updated from global requirements
* Fixed spelling error - runnung to running
* Build log_handler documentation
* Add release notes up to 1.3.0a9

1.3.0a9
-------

* Remove use of sslutils

1.3.0a8
-------

* Expose PublishErrorsHandler through oslo.messaging
* Use mock's call assert methods over call_args_list
* notify listener: document the metadata callback parameter
* Add missing data into the notif. endpoint callback
* notification listener: add allow_requeue param
* Adds unit test cases to impl_qpid
* Do not leak _unique_id out of amqp drivers
* Add multiple exchange per listerner in fake driver
* Allow to requeue the notification message
* Slow down Kombu reconnect attempts
* Don't run python 3 tests by default
* Gracefully handle consumer cancel notifications
* Updated from global requirements
* Convert to oslo.test
* Add log_handler to oslo.messaging
* Add a link to the docs from the README
* Pass the session to QpidMessage constructor
* User a more accurate max_delay for reconnects
* Make the dispatcher responsible of the message ack
* Don't reply to notification message
* Abstract the acknowledge layer of a message
* Implements notification listener and dispatcher
* Switch over to oslosphinx
* Improve help strings
* Update ExpectedException handling
* Ignore any egg and egg-info directories
* Qpid: advance thru the list of brokers on reconnect
* RabbitMQ: advance thru the list of brokers on reconnect

1.3.0a7
-------

* Make the dispatcher responsible to listen()
* Allow fake driver to consume multiple topics
* Allow different login methods to be used with kombu connections

1.3.0a6
-------

* Use stevedore's make_test_instance
* Expose an entry point to list all config options
* Fix test case name typo
* Fix UnboundLocalError error

1.3.0a5
-------

* Fix help strings
* Add release notes for 1.3.0a3
* python3: Switch to mox3 instead of mox
* Remove dependencies on pep8, pyflakes and flake8
* Routing notifier

1.3.0a4
-------

* Removes use of timeutils.set_time_override
* Fix spelling errors in comments
* Fix test_notifier_logger for Python 3
* Minor Python 3 fixes
* Remove copyright from empty files
* Fix duplicate topic messages for Qpid topology=2
* Replace dict.iteritems() with six.iteritems()
* Remove unused eventlet/greenlet from qpid/rabbit
* fix test_rabbit for Python 3
* Fix try/except syntax for Python 3
* Fix exception deserialiation on Python 3
* Add Sample priority
* sysnchronize oslo-incubator modules
* Remove eventlet related code in amqp driver
* Fix syntax of relative imports for Python3
* Updated from global requirements
* Updated from global requirements
* Unify different names between Python2 and Python3
* Replace data structures' attribute with six module
* Avoid creating qpid connection twice in initialization
* Use six.moves.queue instead of Queue
* Add transport aliases
* Remove the partial implementation of ack_on_error
* Fixed misspellings of common words
* Add release notes for 1.3.0a2
* Unify different names between Python2/3 with six.moves
* Remove vim header
* Ensure context type is handled when using to_dict
* Refactors boolean returns

1.3.0a2
-------

* Simplify common base exception prototype
* Properly reconnect subscribing clients when QPID broker restarts
* Remove useless global vars / import
* Avoid storing configuration in notifier
* Implement a log handler using notifier
* notifier: add audit level
* Add 'warning' as an alias to 'warn'
* Decouple from Oslo uuidutils module
* Supply missing argument to raise_invalid_topology_version()
* Support a new qpid topology
* Remove hosts as property in TransportURL
* Remove property on virtual_host in TransportURL
* Updated from global requirements
* Fix some typos and adjust capitalization
* Changes driver method for notifications

1.3.0a1
-------

* Properly handle transport URL config on the client
* Updated from global requirements
* Updated from global requirements
* Replace assertEquals with assertEqual
* Properly handle transport:///vhost URL
* Updated from global requirements
* Make rpc_backend default to 'rabbit'
* Apply six for metaclass
* Add third element to RPC versions for backports
* Fix rpc client docs
* Updated from global requirements
* Remove cruft from setup.cfg
* Updated from global requirements
* Fixes a typo in the address string syntax
* Implement the server side of ZmqDriver
* Add zmq-receiver
* Implement the client side of ZmqDriver
* Import zmq driver code with minimal modifications

1.2.0a11
--------

* Fix race-condition in rabbit reply processing
* Fix error message if message handler fails
* Don't include msg_id or reply_q in casts
* Remove check_for_lock support in RPCClient

1.2.0a10
--------

* Add a Notifier.prepare(

1.2.0a9
-------

* Fix dictionary changed size during iteration

1.2.0a8
-------

* Fix transport URL parsing bug

1.2.0a7
-------

* Fix rabbit driver handling of None, etc. replies

1.2.0a6
-------

* Remove ConfFixture from toplevel public API
* Fix fake driver handling of failure replies
* Bumps hacking to 0.7.0
* Fix transport URL ipv6 parsing support

1.2.0a5
-------

* Fix handling of None, etc. replies

1.2.0a4
-------


1.2.0a3
-------

* Add a unit testing configuration fixture
* Add a TransportURL class to the public API

1.2.0a2
-------

* Ensure namespace package is installed

1.2.0a1
-------

* Add transport URL support to rabbit driver
* Kill ability to specify exchange in transport URL
* Fix capitalization, it's OpenStack
* Fix handling expected exceptions in rabbit driver
* Add thread-local store of request context
* Add a context serialization hook
* Removes a redundant version_is_compatible function
* Document how call() handles remote exceptions
* Add a per-transport allow_remote_exmods API
* Expose RemoteError exception in the public API
* Implement failure replies in the fake driver
* Add API for expected endpoint exceptions
* Add a driver method specifically for sending notifications
* Enforce target preconditions outside of drivers
* Add comments to ReplyWaiter.wait()
* Remove some FIXMEs and debug logging
* Remove unused IncomingMessage.done()
* Implement wait_for_reply timeout in rabbit driver
* Use testtools.TestCase assertion methods
* Implement failure replies in rabbit driver
* Add test with multiple waiting sender threads
* Fix race condition in ReplyWaiters.wake_all()
* Add rabbit unit test for sending and receiving replies
* Add some docs on target version numbers
* Add tests for rabbit driver wire protcol
* Pop _unique_id when checking for duplicates
* Add a transport cleanup() method
* Remove my notes and test scripts
* Add initial qpid driver
* Move most new rabbit driver code into amqpdriver
* Move rpc_conn_pool_size into amqp
* Add simple rabbit driver unit test
* Temporarily add eventlet to requirements
* Add missing gettextutils
* Add unit tests for object pool
* Remove only_free param to Pool.get()
* Connection pool bugfix
* Remove unused file
* Add exception serialization tests
* Don't call consume() each time iterconsume() is called
* Add test code for the rabbit driver
* Remove use of gettextutils
* Add initial rabbit driver
* Remove use of openstack.common.local
* Use stdlib logging
* Don't register options with cfg.CONF at module import
* Port away from some eventlet infrastructure
* Adjust imports in rabbit/qpid drivers
* Import some needed modules from oslo-incubator
* Add oslo-incubator code unmodified
* Make executor threads more robust
* Allow use of hacking 0.6.0 and fix min version
* Include docstrings in published docs
* Use oslo.sphinx and remove local copy of doc theme
* Add some notes
* Unit tests for notifier
* Make test notifier useful
* Use lowercase priority in log notifier
* Use lowercase priority in notifications topic
* Handle case where no drivers configured
* Fix buglet in v2 messaging notifier
* Make LOG private in notifier
* Require a transport to construct a Notifier
* Add serializer support to notifier
* Rename context to ctxt in serializer API
* Rename context to ctxt in notify API
* Make Notifier public at top-level
* Docstrings for notifier API
* Fix notify drivers namespace
* Remove backwards compat entry point aliases
* Simplify public symbol exports
* Use assertEqual() rather than assertEquals()
* Remove accidental use of messaging.rpc_server
* Make exchange_from_url() use parse_url()
* Unit tests for URL parsing code
* Fix parse_urls() buglets
* Move url utils into messaging._urls
* Don't use common logging
* Update example scripts for recent API changes
* Fix fake driver with eventlet
* Use log.warning() instead of log.warn()
* Fix some pep8 issues
* Don't translate exception messages
* Knock off a few TODOs
* Add can_send_version() to RPCClient
* Check start() does nothing on a running server
* Remove unused statements in base serializer
* Fix thinko in exchange_from_url()
* Call wait() in server tests
* Add docstrings for base executor class
* Remove a fixed fixme
* Add a client call timeout test
* Don't raise a driver-specific error on send
* Add some docstrings to driver base
* Test a bunch more RPC server scenarios
* Make it possible to call prepare() on call context
* Rework how queues get created in fake driver
* Use testscenarios
* Move files to new locations for oslo.messaging
* Import stuff from oslo-incubator
* Add oslo.messaging project infrastructure
* Add some RPC server tests
* More gracefully handle "no listeners" in fake driver
* Better error handling in server.start()
* Re-work server API to eliminate server subclasses
* Add license header to _executors/__init__.py
* Add RPCDispatcher tests
* Check for return value in client serializer test
* Add note about can_send_version()
* More client unit tests
* Make RPCClient.check_for_lock a callable
* Apply version cap check when casting
* Make RPCVersionCapError extend base exception
* Remove a bogus param from client.prepare() docs
* pep8 fixes for serializer code
* Simple RPCClient test
* Unit tests
* Move some stuff into doc/
* Implement Target.__eq__()
* Fix bug in exchange_from_url()
* pep8 fixes for fake driver
* Make utils.parse_url() docstring pep8 compliant
* Don't translate exceptions
* Misc pep8 fixes
* pep8 fixes for toplevel package
* Some error handling improvements
* Recommend wrapping the client class rather than subclassing
* Document how to use RPCClient directly
* Document the public RPC API
* Fix defaults for client.prepare() args
* Fix client.cast() typo
* Fix version_cap typo
* Allow all target attributes in client.prepare()
* Expose Serializer from top-level namespace
* Allow specifying a serializer when creating a server
* Make endpoint.target optional
* Dispatch methods in their own greenthreads
* Make rpc.dispatcher private
* Make the base RPCServer class private
* Fix typo with the serializer work
* Update use of stevedore
* Require topics and target in notify driver constructors
* Add generic serialization support
* Support namespace in RPCClient.prepare()
* Add parse_url to _utils
* Remove entry point lists from the public API
* Support capping message versions in the client
* Fix RPCClient check_for_lock()
* First cut at the notifier API
* Add some notes
* Add IncomingMessage abstraction
* Pass a context dict
* Fix docstring
* Implement a fake driver
* Adding reply infrastructure
* Add some exceptions
* Fix buglet with default timeout
* Fix target/namespace target buglet
* Fix rpc client buglets
* Fix 'Blockinging' typos
* Missing self parameter to server start()
* Fix default_exchange typo
* Add forgotten piece of eventlet executor
* It's _executors not _executor
* Make poll() just return the message
* Make drivers list public again
* Add top-level convenience aliases
* Prefix the executors module with underscore
* Prefix the messaging.server module with an underscore
* Prefix the drivers module with an underscore
* Make transport methods private
* Fix little typo in server exception class name
* Add missing utils module
* Add convenience RPC server classes
* Update changes.txt for recent API changes
* Use : for loading classes in entry_points
* Split the dispatcher from the executor and server
* Make driver and transport methods public
* Pass the driver instance to the listener instead of config
* Try out replacing "executor" for "dispatcher"
* Fix host vs server typo
* Initial framework
