Properly reconnect subscribing clients when QPID broker restarts

When the QPID broker is restarted (or fails over), subscribed clients
will attempt to re-establish their connections.  In the case of fanout
subscriptions, this reconnection functionality is broken. For version
1 topologies, the clients attempt to reconnect twice to the same
exclusive address - which is illegal.  In the case of version 2
topologies, the address parsing is broken and an illegal address is
created on reconnect.  This fix avoids the problem by removing the
special-case reconnect code that manages UUID addresses; it is
unnecessary as the QPID broker will generate unique queue names
automatically when the clients reconnect.

Closes-bug: #1251757
Change-Id: I6051fb503663bb8c7c5468db6bcde10f6cf1b318
Ensure context type is handled when using to_dict

Handle the case where the context passed into def pack_context() is a
dictionary. If a dictionary is passed in, we don't need to call to_dict
before updating the msg.

Closes-Bug: #1208971
Change-Id: I2ce0b28f97634e717868e0ee5525189338d4981c
Add release notes for 1.3.0a2

Change-Id: If4cf83d605801047053530ca5c7970e30132b4b0
Fixed misspellings of common words

Fixed misspelling of common words found by the misspellings tool.

Change-Id: I4dfa38e84e09fc08fdecf025663351ca62e09fd8
Closes-Bug: #1257531
Merge "Properly reconnect subscribing clients when QPID broker restarts"
Merge "Ensure context type is handled when using to_dict"
Remove the partial implementation of ack_on_error

The ack_on_error is not used by the abstraction layer, and only the
rabbitmq implements it.

This commit remove this feature, and next commit will add a new way for
this.

Partial implements blueprint notification-subscriber-server

Change-Id: I17eb23f2e3e374630251576438011f186e5b2150
Merge "Add release notes for 1.3.0a2"
Merge "Remove the partial implementation of ack_on_error"
Add transport aliases

We need to support deprecated transport driver configurations like:

 rpc_backend = nova.rpc.impl_kombu

i.e. 'nova.rpc.impl_kombu' is a deprecated alias for 'rabbit'.

Initially, we supported this by adding the aliases to each project's
setup.cfg:

oslo.messaging.drivers =
    nova.rpc.impl_kombu = oslo.messaging._drivers.impl_rabbit:RabbitDriver

However, this means that code like this:

  url = str(TransportURL(conf))

generates a bogus URL string like:

  nova.rpc.impl_kombu://...

We need to apply these transport aliases when we load drivers, but also
when we create transport URLs from configuration containing potentially
deprecated aliases.

To enable that, add an aliases parameter to TransportURL(),
TransportURL.parse() and get_transport().

blueprint: transport-aliases
Change-Id: Ifce68ff62746c2a363c719417a2bd0a78ee025dd
Merge "Fixed misspellings of common words"
Merge "Add transport aliases"
Use six.moves.queue instead of Queue

The Queue module has been renamed to queue in Python 3.
Use six.moves.queue to fit the change.

http://docs.python.org/2/library/queue.html#module-Queue

Change-Id: I2940f34d161b2e3cbc5464619f76e6adea4ef9f6
Avoid creating qpid connection twice in initialization

In current logic, class impl_qpid.Connnection constructor calls
method connection_create twice indirectly. Let us avoid this.

Change-Id: I7618cf3506d857579dc37b338690d05179ba272d
Replace data structures' attribute with six module

In Python 3, some data structures' attribute is different in Python 2.
See http://pythonhosted.org/six/#object-model-compatibility
This is change mapping:

   six               Python 2           Python 3
six.next(it)         it.next()          next(it)
six.iterkeys(dict)   dict.iterkeys()    dict.keys()
six.itervalues(dict) dict.itervalues()  dict.values()

Implements: blueprint make-python3-compatible
Change-Id: Ida48f39ff230860feee7305b93b134c625a21663
Unify different names between Python2 and Python3

Some modules have different names in Python2 and Python3. This patch
make them compatible with Python 3.

 * Use six.moves.filter instead of itertools.ifilter() in Python 2.
 * Use common.py3kcompat.urlutils instead of urllib and urlparse.

Change-Id: Ia27ebf6057d91d0e129fbe90f995cfdaa89efa8a
Merge "Replace data structures' attribute with six module"
Merge "Unify different names between Python2 and Python3"
Merge "Avoid creating qpid connection twice in initialization"
Updated from global requirements

Change-Id: I79a5e54f094fc219d1f5f12745811c3824966309