Hello community,

here is the log from the commit of package python-oslo.messaging for 
openSUSE:Factory checked in at 2015-10-30 13:42:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.messaging (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.messaging.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.messaging"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-oslo.messaging/python-oslo.messaging.changes  
    2015-09-02 07:54:02.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.messaging.new/python-oslo.messaging.changes
 2015-10-30 13:42:07.000000000 +0100
@@ -1,0 +2,18 @@
+Sat Sep 19 06:33:11 UTC 2015 - [email protected]
+
+- update to 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
+- Adjust Requires according to requirements.txt
+
+-------------------------------------------------------------------

Old:
----
  oslo.messaging-2.4.0.tar.gz

New:
----
  oslo.messaging-2.5.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-oslo.messaging.spec ++++++
--- /var/tmp/diff_new_pack.VGvh28/_old  2015-10-30 13:42:08.000000000 +0100
+++ /var/tmp/diff_new_pack.VGvh28/_new  2015-10-30 13:42:08.000000000 +0100
@@ -16,9 +16,9 @@
 #
 
 
-%define component oslo
+%define component oslo_messaging
 Name:           python-oslo.messaging
-Version:        2.4.0
+Version:        2.5.0
 Release:        0
 Url:            https://launchpad.net/oslo/
 Summary:        OpenStack Messaging API
@@ -41,7 +41,7 @@
 BuildRequires:  python-oslo.utils
 BuildRequires:  python-oslosphinx
 BuildRequires:  python-pbr
-BuildRequires:  python-qpid
+##BuildRequires:  python-qpid
 BuildRequires:  python-six
 Requires:       python-PyYAML >= 3.1.0
 Requires:       python-WebOb >= 1.2.3
@@ -52,13 +52,13 @@
 Requires:       python-futurist >= 0.1.2
 Requires:       python-greenlet >= 0.3.2
 Requires:       python-kombu >= 3.0.7
-Requires:       python-oslo.config >= 2.1.0
+Requires:       python-oslo.config >= 2.3.0
 Requires:       python-oslo.context >= 0.2.0
 Requires:       python-oslo.i18n >= 1.5.0
 Requires:       python-oslo.log >= 1.8.0
-Requires:       python-oslo.middleware >= 2.4.0
+Requires:       python-oslo.middleware >= 2.8.0
 Requires:       python-oslo.serialization >= 1.4.0
-Requires:       python-oslo.service >= 0.6.0
+Requires:       python-oslo.service >= 0.7.0
 Requires:       python-oslo.utils >= 2.0.0
 Requires:       python-six >= 1.9.0
 Requires:       python-stevedore >= 1.5.0

++++++ oslo.messaging-2.4.0.tar.gz -> oslo.messaging-2.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/AUTHORS 
new/oslo.messaging-2.5.0/AUTHORS
--- old/oslo.messaging-2.4.0/AUTHORS    2015-08-24 23:36:13.000000000 +0200
+++ new/oslo.messaging-2.5.0/AUTHORS    2015-09-08 18:01:43.000000000 +0200
@@ -73,6 +73,7 @@
 Sergey Lukjanov <[email protected]>
 Sergey Vilgelm <[email protected]>
 Stanislav Kudriashev <[email protected]>
+Takashi NATSUME <[email protected]>
 Thomas Goirand <[email protected]>
 Thomas Herve <[email protected]>
 Victor Sergeyev <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/ChangeLog 
new/oslo.messaging-2.5.0/ChangeLog
--- old/oslo.messaging-2.4.0/ChangeLog  2015-08-24 23:36:13.000000000 +0200
+++ new/oslo.messaging-2.5.0/ChangeLog  2015-09-08 18:01:43.000000000 +0200
@@ -1,6 +1,22 @@
 CHANGES
 =======
 
+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
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/PKG-INFO 
new/oslo.messaging-2.5.0/PKG-INFO
--- old/oslo.messaging-2.4.0/PKG-INFO   2015-08-24 23:36:14.000000000 +0200
+++ new/oslo.messaging-2.5.0/PKG-INFO   2015-09-08 18:01:44.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: oslo.messaging
-Version: 2.4.0
+Version: 2.5.0
 Summary: Oslo Messaging API
 Home-page: https://launchpad.net/oslo
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/doc/source/conf.py 
new/oslo.messaging-2.5.0/doc/source/conf.py
--- old/oslo.messaging-2.4.0/doc/source/conf.py 2015-08-24 23:33:43.000000000 
+0200
+++ new/oslo.messaging-2.5.0/doc/source/conf.py 2015-09-08 17:59:38.000000000 
+0200
@@ -12,6 +12,7 @@
     'sphinx.ext.autodoc',
     'oslosphinx',
     'stevedore.sphinxext',
+    'oslo_config.sphinxext',
 ]
 
 # autodoc generation is a bit aggressive and a nuisance when doing heavy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/doc/source/opts.rst 
new/oslo.messaging-2.5.0/doc/source/opts.rst
--- old/oslo.messaging-2.4.0/doc/source/opts.rst        2015-08-24 
23:33:43.000000000 +0200
+++ new/oslo.messaging-2.5.0/doc/source/opts.rst        2015-09-08 
17:59:38.000000000 +0200
@@ -1,6 +1,15 @@
-----------------------
-Configuration Options
-----------------------
+=======================
+ Configuration Options
+=======================
+
+oslo.messaging uses oslo.config to define and manage configuration
+options to allow the deployer to control how an application uses the
+underlying messaging system.
+
+.. show-options:: oslo.messaging
+
+API
+===
 
 .. currentmodule:: oslo_messaging.opts
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/doc/source/zmq_driver.rst 
new/oslo.messaging-2.5.0/doc/source/zmq_driver.rst
--- old/oslo.messaging-2.4.0/doc/source/zmq_driver.rst  2015-08-24 
23:33:43.000000000 +0200
+++ new/oslo.messaging-2.5.0/doc/source/zmq_driver.rst  2015-09-08 
17:59:38.000000000 +0200
@@ -181,7 +181,7 @@
 and give all openstack daemons access via group membership of 'oslo' - this
 supports using /var/run/openstack as a shared IPC directory for all openstack
 processes, allowing different services to be hosted on the same server, served
-by a single oslo-messaging-zmq-reciever process.
+by a single oslo-messaging-zmq-receiver process.
 
 The IPC runtime directory, 'rpc_zmq_ipc_dir', can be set in [DEFAULT] section.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/de/LC_MESSAGES/oslo.messaging.po 
new/oslo.messaging-2.5.0/oslo.messaging/locale/de/LC_MESSAGES/oslo.messaging.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/de/LC_MESSAGES/oslo.messaging.po 
    2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/de/LC_MESSAGES/oslo.messaging.po 
    1970-01-01 01:00:00.000000000 +0100
@@ -1,34 +0,0 @@
-# German translations for oslo.messaging.
-# Copyright (C) 2015 ORGANIZATION
-# This file is distributed under the same license as the oslo.messaging
-# project.
-#
-# Translators:
-# Andreas Jaeger <[email protected]>, 2014
-# Ettore Atalan <[email protected]>, 2014
-msgid ""
-msgstr ""
-"Project-Id-Version:  oslo.messaging\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-08-04 06:29+0000\n"
-"PO-Revision-Date: 2015-08-03 21:07+0000\n"
-"Last-Translator: openstackjenkins <[email protected]>\n"
-"Language-Team: German (http://www.transifex.com/openstack/oslomessaging/";
-"language/de/)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.0\n"
-
-#, python-format
-msgid "Exception during message handling: %s"
-msgstr "Exception während Messagebehandlung: %s"
-
-#, python-format
-msgid "Failed to load any notifiers for %s"
-msgstr "Es konnten keine Notifiers für %s geladen werden"
-
-#, python-format
-msgid "Routing '%(event)s' notification to '%(driver)s' driver"
-msgstr "'%(event)s' Notfikation wird zum Treiber '%(driver)s' geroutet."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-error.po
 
new/oslo.messaging-2.5.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-error.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-error.po
        2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-error.po
        2015-09-08 17:59:38.000000000 +0200
@@ -4,13 +4,13 @@
 # project.
 #
 # Translators:
-# Andi Chandler <[email protected]>, 2014
+# Andi Chandler <[email protected]>, 2014-2015
 msgid ""
 msgstr ""
 "Project-Id-Version: oslo.messaging\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-08-04 06:29+0000\n"
-"PO-Revision-Date: 2014-11-03 23:02+0000\n"
+"POT-Creation-Date: 2015-08-27 06:15+0000\n"
+"PO-Revision-Date: 2015-08-27 00:47+0000\n"
 "Last-Translator: Andi Chandler <[email protected]>\n"
 "Language-Team: English (United Kingdom) (http://www.transifex.com/openstack/";
 "oslomessaging/language/en_GB/)\n"
@@ -24,3 +24,7 @@
 #, python-format
 msgid "An exception occurred processing the API call: %s "
 msgstr "An exception occurred processing the API call: %s "
+
+#, python-format
+msgid "Exception during message handling: %s"
+msgstr "Exception during message handling: %s"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-info.po
 
new/oslo.messaging-2.5.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-info.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-info.po
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-info.po
 2015-09-08 17:59:38.000000000 +0200
@@ -0,0 +1,26 @@
+# Translations template for oslo.messaging.
+# Copyright (C) 2015 ORGANIZATION
+# This file is distributed under the same license as the oslo.messaging
+# project.
+#
+# Translators:
+# Andi Chandler <[email protected]>, 2014-2015
+msgid ""
+msgstr ""
+"Project-Id-Version: oslo.messaging\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2015-08-27 06:15+0000\n"
+"PO-Revision-Date: 2015-08-27 00:47+0000\n"
+"Last-Translator: Andi Chandler <[email protected]>\n"
+"Language-Team: English (United Kingdom) (http://www.transifex.com/openstack/";
+"oslomessaging/language/en_GB/)\n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#, python-format
+msgid "Routing '%(event)s' notification to '%(driver)s' driver"
+msgstr "Routing '%(event)s' notification to '%(driver)s' driver"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-warning.po
 
new/oslo.messaging-2.5.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-warning.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-warning.po
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-warning.po
      2015-09-08 17:59:38.000000000 +0200
@@ -0,0 +1,36 @@
+# Translations template for oslo.messaging.
+# Copyright (C) 2015 ORGANIZATION
+# This file is distributed under the same license as the oslo.messaging
+# project.
+#
+# Translators:
+# Andi Chandler <[email protected]>, 2014-2015
+msgid ""
+msgstr ""
+"Project-Id-Version: oslo.messaging\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2015-08-27 06:15+0000\n"
+"PO-Revision-Date: 2015-08-27 00:55+0000\n"
+"Last-Translator: Andi Chandler <[email protected]>\n"
+"Language-Team: English (United Kingdom) (http://www.transifex.com/openstack/";
+"oslomessaging/language/en_GB/)\n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#, python-format
+msgid "Failed to load any notifiers for %s"
+msgstr "Failed to load any notifiers for %s"
+
+msgid "start/stop/wait must be called in the same thread"
+msgstr "start/stop/wait must be called in the same thread"
+
+msgid ""
+"wait() should be called after stop() as it waits for existing messages to "
+"finish processing"
+msgstr ""
+"wait() should be called after stop() as it waits for existing messages to "
+"finish processing"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging.po
 
new/oslo.messaging-2.5.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging.po
  2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging.po
  1970-01-01 01:00:00.000000000 +0100
@@ -1,33 +0,0 @@
-# English (United Kingdom) translations for oslo.messaging.
-# Copyright (C) 2015 ORGANIZATION
-# This file is distributed under the same license as the oslo.messaging
-# project.
-#
-# Translators:
-# Andi Chandler <[email protected]>, 2014-2015
-msgid ""
-msgstr ""
-"Project-Id-Version:  oslo.messaging\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-08-04 06:29+0000\n"
-"PO-Revision-Date: 2015-08-03 21:07+0000\n"
-"Last-Translator: openstackjenkins <[email protected]>\n"
-"Language-Team: English (United Kingdom) (http://www.transifex.com/openstack/";
-"oslomessaging/language/en_GB/)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.0\n"
-
-#, python-format
-msgid "Exception during message handling: %s"
-msgstr "Exception during message handling: %s"
-
-#, python-format
-msgid "Failed to load any notifiers for %s"
-msgstr "Failed to load any notifiers for %s"
-
-#, python-format
-msgid "Routing '%(event)s' notification to '%(driver)s' driver"
-msgstr "Routing '%(event)s' notification to '%(driver)s' driver"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-error.po
 
new/oslo.messaging-2.5.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-error.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-error.po
   2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-error.po
   2015-09-08 17:59:38.000000000 +0200
@@ -5,13 +5,14 @@
 #
 # Translators:
 # Adriana Chisco Landazábal <[email protected]>, 2015
+# Miriam Godinez <[email protected]>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: oslo.messaging\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-08-04 06:29+0000\n"
-"PO-Revision-Date: 2015-06-22 20:34+0000\n"
-"Last-Translator: Adriana Chisco Landazábal <[email protected]>\n"
+"POT-Creation-Date: 2015-09-08 06:18+0000\n"
+"PO-Revision-Date: 2015-09-07 22:46+0000\n"
+"Last-Translator: Miriam Godinez <[email protected]>\n"
 "Language-Team: Spanish (http://www.transifex.com/openstack/oslomessaging/";
 "language/es/)\n"
 "Language: es\n"
@@ -24,3 +25,7 @@
 #, python-format
 msgid "An exception occurred processing the API call: %s "
 msgstr "Se ha producido una excepción al prcesar la llamada API: %s"
+
+#, python-format
+msgid "Exception during message handling: %s"
+msgstr "Excepción durante el manejo del mensaje: %s"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-warning.po
 
new/oslo.messaging-2.5.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-warning.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-warning.po
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-warning.po
 2015-09-08 17:59:38.000000000 +0200
@@ -0,0 +1,26 @@
+# Translations template for oslo.messaging.
+# Copyright (C) 2015 ORGANIZATION
+# This file is distributed under the same license as the oslo.messaging
+# project.
+#
+# Translators:
+# Adriana Chisco Landazábal <[email protected]>, 2015
+# Lucía Pradillos <[email protected]>, 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: oslo.messaging\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2015-08-26 06:33+0000\n"
+"PO-Revision-Date: 2015-08-26 03:46+0000\n"
+"Last-Translator: Lucía Pradillos <[email protected]>\n"
+"Language-Team: Spanish (http://www.transifex.com/openstack/oslomessaging/";
+"language/es/)\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "start/stop/wait must be called in the same thread"
+msgstr "empezar/parar/esperar debe ser llamado en el mismo hilo"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging.po 
new/oslo.messaging-2.5.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging.po 
    2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging.po 
    1970-01-01 01:00:00.000000000 +0100
@@ -1,33 +0,0 @@
-# Spanish translations for oslo.messaging.
-# Copyright (C) 2015 ORGANIZATION
-# This file is distributed under the same license as the oslo.messaging
-# project.
-#
-# Translators:
-# Adriana Chisco Landazábal <[email protected]>, 2015
-msgid ""
-msgstr ""
-"Project-Id-Version:  oslo.messaging\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-08-04 06:29+0000\n"
-"PO-Revision-Date: 2015-08-03 21:07+0000\n"
-"Last-Translator: openstackjenkins <[email protected]>\n"
-"Language-Team: Spanish (http://www.transifex.com/openstack/oslomessaging/";
-"language/es/)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.0\n"
-
-#, python-format
-msgid "Exception during message handling: %s"
-msgstr "Excepción durante el manejo de mensaje: %s"
-
-#, python-format
-msgid "Failed to load any notifiers for %s"
-msgstr "No se puede cargar notificadores para %s"
-
-#, python-format
-msgid "Routing '%(event)s' notification to '%(driver)s' driver"
-msgstr "Notificación de enrutamiento '%(event)s' para controlador '%(driver)s'"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/fr/LC_MESSAGES/oslo.messaging.po 
new/oslo.messaging-2.5.0/oslo.messaging/locale/fr/LC_MESSAGES/oslo.messaging.po
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/fr/LC_MESSAGES/oslo.messaging.po 
    2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/fr/LC_MESSAGES/oslo.messaging.po 
    1970-01-01 01:00:00.000000000 +0100
@@ -1,42 +0,0 @@
-# French translations for oslo.messaging.
-# Copyright (C) 2015 ORGANIZATION
-# This file is distributed under the same license as the oslo.messaging
-# project.
-#
-# Translators:
-# Jonathan Dupart <[email protected]>, 2014
-# Lucas Mascaro <[email protected]>, 2015
-# Maxime COQUEREL <[email protected]>, 2014-2015
-msgid ""
-msgstr ""
-"Project-Id-Version:  oslo.messaging\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-08-18 06:33+0000\n"
-"PO-Revision-Date: 2015-08-17 15:20+0000\n"
-"Last-Translator: openstackjenkins <[email protected]>\n"
-"Language-Team: French (http://www.transifex.com/openstack/oslomessaging/";
-"language/fr/)\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.0\n"
-
-#, python-format
-msgid "Exception during message handling: %s"
-msgstr "Exception lors de la manipulation du message: %s"
-
-#, python-format
-msgid "Failed to load any notifiers for %s"
-msgstr "Echec de chargement des notifications pour %s"
-
-#, python-format
-msgid "Routing '%(event)s' notification to '%(driver)s' driver"
-msgstr "Routage '%(event)s' notification du pilote %(driver)s'"
-
-msgid ""
-"wait() should be called after stop() as it waits for existing messages to "
-"finish processing"
-msgstr ""
-"wait() devrai être appelé après stop() vu qu'il attend que les messages "
-"existants aient fini d'être traités"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/oslo.messaging-log-error.pot 
new/oslo.messaging-2.5.0/oslo.messaging/locale/oslo.messaging-log-error.pot
--- old/oslo.messaging-2.4.0/oslo.messaging/locale/oslo.messaging-log-error.pot 
2015-08-24 23:33:43.000000000 +0200
+++ new/oslo.messaging-2.5.0/oslo.messaging/locale/oslo.messaging-log-error.pot 
2015-09-08 17:59:38.000000000 +0200
@@ -7,9 +7,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.messaging 2.1.0\n"
+"Project-Id-Version: oslo.messaging 2.4.1.dev1\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-07-29 06:39+0000\n"
+"POT-Creation-Date: 2015-08-26 06:33+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -23,3 +23,8 @@
 msgid "An exception occurred processing the API call: %s "
 msgstr ""
 
+#: oslo_messaging/rpc/dispatcher.py:150
+#, python-format
+msgid "Exception during message handling: %s"
+msgstr ""
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/oslo.messaging-log-info.pot 
new/oslo.messaging-2.5.0/oslo.messaging/locale/oslo.messaging-log-info.pot
--- old/oslo.messaging-2.4.0/oslo.messaging/locale/oslo.messaging-log-info.pot  
2015-08-24 23:33:43.000000000 +0200
+++ new/oslo.messaging-2.5.0/oslo.messaging/locale/oslo.messaging-log-info.pot  
2015-09-08 17:59:38.000000000 +0200
@@ -7,9 +7,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.messaging 2.1.0\n"
+"Project-Id-Version: oslo.messaging 2.4.1.dev1\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-07-29 06:39+0000\n"
+"POT-Creation-Date: 2015-08-26 06:33+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -18,3 +18,8 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 2.0\n"
 
+#: oslo_messaging/notify/_impl_routing.py:117
+#, python-format
+msgid "Routing '%(event)s' notification to '%(driver)s' driver"
+msgstr ""
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/oslo.messaging-log-warning.pot 
new/oslo.messaging-2.5.0/oslo.messaging/locale/oslo.messaging-log-warning.pot
--- 
old/oslo.messaging-2.4.0/oslo.messaging/locale/oslo.messaging-log-warning.pot   
    2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo.messaging/locale/oslo.messaging-log-warning.pot   
    2015-09-08 17:59:38.000000000 +0200
@@ -7,9 +7,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.messaging 2.2.1.dev10\n"
+"Project-Id-Version: oslo.messaging 2.4.1.dev1\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-08-18 06:33+0000\n"
+"POT-Creation-Date: 2015-08-26 06:33+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -18,7 +18,18 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 2.0\n"
 
-#: oslo_messaging/server.py:146
+#: oslo_messaging/server.py:145
 msgid "start/stop/wait must be called in the same thread"
 msgstr ""
 
+#: oslo_messaging/server.py:178
+msgid ""
+"wait() should be called after stop() as it waits for existing messages to"
+" finish processing"
+msgstr ""
+
+#: oslo_messaging/notify/_impl_routing.py:80
+#, python-format
+msgid "Failed to load any notifiers for %s"
+msgstr ""
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging/locale/oslo.messaging.pot 
new/oslo.messaging-2.5.0/oslo.messaging/locale/oslo.messaging.pot
--- old/oslo.messaging-2.4.0/oslo.messaging/locale/oslo.messaging.pot   
2015-08-24 23:33:43.000000000 +0200
+++ new/oslo.messaging-2.5.0/oslo.messaging/locale/oslo.messaging.pot   
2015-09-08 17:59:38.000000000 +0200
@@ -7,9 +7,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: oslo.messaging 2.2.1.dev10\n"
+"Project-Id-Version: oslo.messaging 2.4.1.dev1\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2015-08-18 06:33+0000\n"
+"POT-Creation-Date: 2015-08-26 06:32+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -18,24 +18,3 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 2.0\n"
 
-#: oslo_messaging/server.py:179
-msgid ""
-"wait() should be called after stop() as it waits for existing messages to"
-" finish processing"
-msgstr ""
-
-#: oslo_messaging/notify/_impl_routing.py:80
-#, python-format
-msgid "Failed to load any notifiers for %s"
-msgstr ""
-
-#: oslo_messaging/notify/_impl_routing.py:117
-#, python-format
-msgid "Routing '%(event)s' notification to '%(driver)s' driver"
-msgstr ""
-
-#: oslo_messaging/rpc/dispatcher.py:150
-#, python-format
-msgid "Exception during message handling: %s"
-msgstr ""
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging.egg-info/PKG-INFO 
new/oslo.messaging-2.5.0/oslo.messaging.egg-info/PKG-INFO
--- old/oslo.messaging-2.4.0/oslo.messaging.egg-info/PKG-INFO   2015-08-24 
23:36:13.000000000 +0200
+++ new/oslo.messaging-2.5.0/oslo.messaging.egg-info/PKG-INFO   2015-09-08 
18:01:43.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: oslo.messaging
-Version: 2.4.0
+Version: 2.5.0
 Summary: Oslo Messaging API
 Home-page: https://launchpad.net/oslo
 Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging.egg-info/SOURCES.txt 
new/oslo.messaging-2.5.0/oslo.messaging.egg-info/SOURCES.txt
--- old/oslo.messaging-2.4.0/oslo.messaging.egg-info/SOURCES.txt        
2015-08-24 23:36:14.000000000 +0200
+++ new/oslo.messaging-2.5.0/oslo.messaging.egg-info/SOURCES.txt        
2015-09-08 18:01:44.000000000 +0200
@@ -49,14 +49,13 @@
 oslo.messaging/locale/oslo.messaging-log-info.pot
 oslo.messaging/locale/oslo.messaging-log-warning.pot
 oslo.messaging/locale/oslo.messaging.pot
-oslo.messaging/locale/de/LC_MESSAGES/oslo.messaging.po
 oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-error.po
-oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging.po
+oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-info.po
+oslo.messaging/locale/en_GB/LC_MESSAGES/oslo.messaging-log-warning.po
 oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-error.po
-oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging.po
+oslo.messaging/locale/es/LC_MESSAGES/oslo.messaging-log-warning.po
 oslo.messaging/locale/fr/LC_MESSAGES/oslo.messaging-log-error.po
 oslo.messaging/locale/fr/LC_MESSAGES/oslo.messaging-log-warning.po
-oslo.messaging/locale/fr/LC_MESSAGES/oslo.messaging.po
 oslo.messaging/locale/ru/LC_MESSAGES/oslo.messaging-log-error.po
 oslo_messaging/__init__.py
 oslo_messaging/_i18n.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging.egg-info/pbr.json 
new/oslo.messaging-2.5.0/oslo.messaging.egg-info/pbr.json
--- old/oslo.messaging-2.4.0/oslo.messaging.egg-info/pbr.json   2015-08-24 
23:36:13.000000000 +0200
+++ new/oslo.messaging-2.5.0/oslo.messaging.egg-info/pbr.json   2015-09-08 
18:01:43.000000000 +0200
@@ -1 +1 @@
-{"git_version": "b02dd25", "is_release": true}
\ No newline at end of file
+{"is_release": true, "git_version": "e9a1492"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo.messaging.egg-info/requires.txt 
new/oslo.messaging-2.5.0/oslo.messaging.egg-info/requires.txt
--- old/oslo.messaging-2.4.0/oslo.messaging.egg-info/requires.txt       
2015-08-24 23:36:13.000000000 +0200
+++ new/oslo.messaging-2.5.0/oslo.messaging.egg-info/requires.txt       
2015-09-08 18:01:43.000000000 +0200
@@ -1,21 +1,21 @@
-pbr<2.0,>=1.4
-futurist>=0.1.2 # Apache-2.0
-oslo.config>=2.1.0 # Apache-2.0
-oslo.context>=0.2.0 # Apache-2.0
-oslo.log>=1.8.0 # Apache-2.0
-oslo.utils>=2.0.0 # Apache-2.0
-oslo.serialization>=1.4.0 # Apache-2.0
-oslo.service>=0.6.0 # Apache-2.0
-oslo.i18n>=1.5.0 # Apache-2.0
-stevedore>=1.5.0 # Apache-2.0
+pbr<2.0,>=1.6
+futurist>=0.1.2
+oslo.config>=2.3.0
+oslo.context>=0.2.0
+oslo.log>=1.8.0
+oslo.utils>=2.0.0
+oslo.serialization>=1.4.0
+oslo.service>=0.7.0
+oslo.i18n>=1.5.0
+stevedore>=1.5.0
 six>=1.9.0
-cachetools>=1.0.0 # MIT License
+cachetools>=1.0.0
 eventlet>=0.17.4
 greenlet>=0.3.2
 WebOb>=1.2.3
 PyYAML>=3.1.0
 amqp>=1.4.0
 kombu>=3.0.7
-oslo.middleware!=2.6.0,>=2.4.0 # Apache-2.0
+oslo.middleware>=2.8.0
 aioeventlet>=0.4
 trollius>=1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo_messaging/_drivers/protocols/amqp/controller.py 
new/oslo.messaging-2.5.0/oslo_messaging/_drivers/protocols/amqp/controller.py
--- 
old/oslo.messaging-2.4.0/oslo_messaging/_drivers/protocols/amqp/controller.py   
    2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo_messaging/_drivers/protocols/amqp/controller.py   
    2015-09-08 17:59:38.000000000 +0200
@@ -444,7 +444,7 @@
             conn_props["x-ssl-ca-file"] = self.ssl_ca_file
         if self.ssl_cert_file:
             # assume this connection is for a server.  If client authentication
-            # support is developed, we'll need an explict flag (server or
+            # support is developed, we'll need an explicit flag (server or
             # client)
             conn_props["x-ssl-server"] = True
             conn_props["x-ssl-identity"] = (self.ssl_cert_file,
@@ -575,15 +575,16 @@
             self._socket_connection.connection.close()
 
     def sasl_done(self, connection, pn_sasl, outcome):
-        """This is a Pyngus callback invoked by Pyngus when the SASL handshake
-        has completed.  The outcome of the handshake will be OK on success or
-        AUTH on failure.
-        """
-        if outcome == proton.SASL.AUTH:
-            LOG.error("Unable to connect to %s:%s, authentication failure.",
-                      self.hosts.current.hostname, self.hosts.current.port)
-            # requires user intervention, treat it like a connection failure:
-            self._handle_connection_loss()
+        """This is a Pyngus callback invoked when the SASL handshake
+        has completed.  The outcome of the handshake is passed in the outcome
+        argument.
+        """
+        if outcome == proton.SASL.OK:
+            return
+        LOG.error("AUTHENTICATION FAILURE: Cannot connect to %s:%s as user %s",
+                  self.hosts.current.hostname, self.hosts.current.port,
+                  self.hosts.current.username)
+        # connection failure will be handled later
 
     def _complete_shutdown(self):
         """The AMQP Connection has closed, and the driver shutdown is complete.
@@ -607,19 +608,18 @@
             if not self._reconnecting:
                 self._reconnecting = True
                 self._replies = None
-                if self._delay == 0:
-                    self._delay = 1
-                    self._do_reconnect()
-                else:
-                    d = self._delay
-                    LOG.info("delaying reconnect attempt for %d seconds", d)
-                    self.processor.schedule(lambda: self._do_reconnect(), d)
-                    self._delay = min(d * 2, 60)
+                d = self._delay
+                LOG.info("delaying reconnect attempt for %d seconds", d)
+                self.processor.schedule(lambda: self._do_reconnect(), d)
+                self._delay = 1 if self._delay == 0 else min(d * 2, 60)
 
     def _do_reconnect(self):
         """Invoked on connection/socket failure, failover and re-connect to the
         messaging service.
         """
+        # note well: since this method destroys the connection, it cannot be
+        # invoked directly from a pyngus callback.  Use processor.schedule() to
+        # run this method on the main loop instead.
         if not self._closing:
             self._reconnecting = False
             self._senders = {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo_messaging/_drivers/protocols/amqp/eventloop.py 
new/oslo.messaging-2.5.0/oslo_messaging/_drivers/protocols/amqp/eventloop.py
--- 
old/oslo.messaging-2.4.0/oslo_messaging/_drivers/protocols/amqp/eventloop.py    
    2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo_messaging/_drivers/protocols/amqp/eventloop.py    
    2015-09-08 17:59:38.000000000 +0200
@@ -54,9 +54,7 @@
         # Currently it is the Controller object.
         self._handler = handler
         self._container = container
-        c = container.create_connection(name, handler, self._properties)
-        c.user_context = self
-        self.connection = c
+        self.connection = None
 
     def _get_name_and_pid(self):
         # helps identify the process that is using the connection
@@ -72,37 +70,31 @@
         while True:
             try:
                 rc = pyngus.read_socket_input(self.connection, self.socket)
-                if rc > 0:
-                    self.connection.process(time.time())
+                self.connection.process(time.time())
                 return rc
-            except socket.error as e:
-                if e.errno == errno.EAGAIN or e.errno == errno.EINTR:
-                    continue
-                elif e.errno == errno.EWOULDBLOCK:
-                    return 0
-                else:
-                    self._handler.socket_error(str(e))
-                    return pyngus.Connection.EOS
+            except (socket.timeout, socket.error) as e:
+                # pyngus handles EAGAIN/EWOULDBLOCK and EINTER
+                self.connection.close_input()
+                self.connection.close()
+                self._handler.socket_error(str(e))
+                return pyngus.Connection.EOS
 
     def write(self):
         """Called when socket is write-ready."""
         while True:
             try:
                 rc = pyngus.write_socket_output(self.connection, self.socket)
-                if rc > 0:
-                    self.connection.process(time.time())
+                self.connection.process(time.time())
                 return rc
-            except socket.error as e:
-                if e.errno == errno.EAGAIN or e.errno == errno.EINTR:
-                    continue
-                elif e.errno == errno.EWOULDBLOCK:
-                    return 0
-                else:
-                    self._handler.socket_error(str(e))
-                    return pyngus.Connection.EOS
+            except (socket.timeout, socket.error) as e:
+                # pyngus handles EAGAIN/EWOULDBLOCK and EINTER
+                self.connection.close_output()
+                self.connection.close()
+                self._handler.socket_error(str(e))
+                return pyngus.Connection.EOS
 
     def connect(self, host):
-        """Connect to host:port and start the AMQP protocol."""
+        """Connect to host and start the AMQP protocol."""
         addr = socket.getaddrinfo(host.hostname, host.port,
                                   socket.AF_INET, socket.SOCK_STREAM)
         if not addr:
@@ -124,31 +116,46 @@
                 return
         self.socket = my_socket
 
-        # determine the proper SASL mechanism: PLAIN if a username/password is
-        # present, else ANONYMOUS
-        pn_sasl = self.connection.pn_sasl
-        if host.username:
-            password = host.password if host.password else ""
-            pn_sasl.plain(host.username, password)
-        else:
-            pn_sasl.mechanisms("ANONYMOUS")
-            # TODO(kgiusti): server if accepting inbound connections
-            pn_sasl.client()
+        props = self._properties.copy()
+        if pyngus.VERSION >= (2, 0, 0):
+            # configure client authentication
+            #
+            props['x-server'] = False
+            if host.username:
+                props['x-username'] = host.username
+                props['x-password'] = host.password or ""
+
+        c = self._container.create_connection(self.name, self._handler, props)
+        c.user_context = self
+        self.connection = c
+
+        if pyngus.VERSION < (2, 0, 0):
+            # older versions of pyngus requires manual SASL configuration:
+            # determine the proper SASL mechanism: PLAIN if a username/password
+            # is present, else ANONYMOUS
+            pn_sasl = self.connection.pn_sasl
+            if host.username:
+                password = host.password if host.password else ""
+                pn_sasl.plain(host.username, password)
+            else:
+                pn_sasl.mechanisms("ANONYMOUS")
+                # TODO(kgiusti): server if accepting inbound connections
+                pn_sasl.client()
+
         self.connection.open()
 
     def reset(self, name=None):
         """Clean up the current state, expect 'connect()' to be recalled
         later.
         """
+        # note well: since destroy() is called on the connection, do not invoke
+        # this method from a pyngus callback!
         if self.connection:
             self.connection.destroy()
+            self.connection = None
         self.close()
         if name:
             self.name = name
-        c = self._container.create_connection(self.name, self._handler,
-                                              self._properties)
-        c.user_context = self
-        self.connection = c
 
     def close(self):
         if self.socket:
@@ -325,7 +332,6 @@
             for r in readable:
                 r.read()
 
-            self._schedule.process()  # run any deferred requests
             for t in timers:
                 if t.deadline > time.time():
                     break
@@ -334,6 +340,8 @@
             for w in writable:
                 w.write()
 
+            self._schedule.process()  # run any deferred requests
+
         LOG.info("eventloop thread exiting, container=%s",
                  self._container.name)
         self._container.destroy()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo_messaging/tests/functional/gate/post_test_hook.sh 
new/oslo.messaging-2.5.0/oslo_messaging/tests/functional/gate/post_test_hook.sh
--- 
old/oslo.messaging-2.4.0/oslo_messaging/tests/functional/gate/post_test_hook.sh 
    2015-08-24 23:33:43.000000000 +0200
+++ 
new/oslo.messaging-2.5.0/oslo_messaging/tests/functional/gate/post_test_hook.sh 
    2015-09-08 17:59:38.000000000 +0200
@@ -20,7 +20,7 @@
     if [ -f .testrepository/0 ]; then
         sudo .tox/py27-func-${RPC_BACKEND}/bin/testr last --subunit > 
$WORKSPACE/testrepository.subunit
         sudo mv $WORKSPACE/testrepository.subunit 
$BASE/logs/testrepository.subunit
-        sudo .tox/py27-func-${RPC_BACKEND}/bin/python 
/usr/local/jenkins/slave_scripts/subunit2html.py 
$BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
+        sudo /usr/os-testr-env/bin/subunit2html 
$BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
         sudo gzip -9 $BASE/logs/testrepository.subunit
         sudo gzip -9 $BASE/logs/testr_results.html
         sudo chown jenkins:jenkins $BASE/logs/testrepository.subunit.gz 
$BASE/logs/testr_results.html.gz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.messaging-2.4.0/oslo_messaging/tests/test_amqp_driver.py 
new/oslo.messaging-2.5.0/oslo_messaging/tests/test_amqp_driver.py
--- old/oslo.messaging-2.4.0/oslo_messaging/tests/test_amqp_driver.py   
2015-08-24 23:33:43.000000000 +0200
+++ new/oslo.messaging-2.5.0/oslo_messaging/tests/test_amqp_driver.py   
2015-09-08 17:59:38.000000000 +0200
@@ -15,13 +15,17 @@
 import logging
 import os
 import select
+import shutil
 import socket
+import subprocess
+import tempfile
 import threading
 import time
 import uuid
 
 from oslo_utils import importutils
 from six import moves
+from string import Template
 import testtools
 
 import oslo_messaging
@@ -295,9 +299,10 @@
         driver.cleanup()
 
 
[email protected](pyngus, "proton modules not present")
[email protected](pyngus and pyngus.VERSION < (2, 0, 0),
+                      "pyngus module not present")
 class TestAuthentication(test_utils.BaseTestCase):
-
+    """Test user authentication using the old pyngus API"""
     def setUp(self):
         super(TestAuthentication, self).setUp()
         # for simplicity, encode the credentials as they would appear 'on the
@@ -349,6 +354,89 @@
         driver.cleanup()
 
 
[email protected](pyngus and pyngus.VERSION >= (2, 0, 0),
+                      "pyngus module not present")
+class TestCyrusAuthentication(test_utils.BaseTestCase):
+    """Test the driver's Cyrus SASL integration"""
+
+    def setUp(self):
+        """Create a simple SASL configuration. This assumes saslpasswd2 is in
+        the OS path, otherwise the test will be skipped.
+        """
+        super(TestCyrusAuthentication, self).setUp()
+        # Create a SASL configuration and user database,
+        # add a user 'joe' with password 'secret':
+        self._conf_dir = tempfile.mkdtemp()
+        db = os.path.join(self._conf_dir, 'openstack.sasldb')
+        _t = "echo secret | saslpasswd2 -c -p -f ${db} joe"
+        cmd = Template(_t).substitute(db=db)
+        try:
+            subprocess.call(args=cmd, shell=True)
+        except Exception:
+            shutil.rmtree(self._conf_dir, ignore_errors=True)
+            self._conf_dir = None
+            raise self.SkipTest("Cyrus tool saslpasswd2 not installed")
+
+        # configure the SASL broker:
+        conf = os.path.join(self._conf_dir, 'openstack.conf')
+        mechs = "DIGEST-MD5 SCRAM-SHA-1 CRAM-MD5 PLAIN"
+        t = Template("""sasldb_path: ${db}
+mech_list: ${mechs}
+""")
+        with open(conf, 'w') as f:
+            f.write(t.substitute(db=db, mechs=mechs))
+
+        self._broker = FakeBroker(sasl_mechanisms=mechs,
+                                  user_credentials=["\0joe\0secret"],
+                                  sasl_config_dir=self._conf_dir,
+                                  sasl_config_name="openstack")
+        self._broker.start()
+
+    def tearDown(self):
+        super(TestCyrusAuthentication, self).tearDown()
+        if self._broker:
+            self._broker.stop()
+        if self._conf_dir:
+            shutil.rmtree(self._conf_dir, ignore_errors=True)
+
+    def test_authentication_ok(self):
+        """Verify that username and password given in TransportHost are
+        accepted by the broker.
+        """
+
+        addr = "amqp://joe:secret@%s:%d" % (self._broker.host,
+                                            self._broker.port)
+        url = oslo_messaging.TransportURL.parse(self.conf, addr)
+        driver = amqp_driver.ProtonDriver(self.conf, url)
+        target = oslo_messaging.Target(topic="test-topic")
+        listener = _ListenerThread(driver.listen(target), 1)
+        rc = driver.send(target, {"context": True},
+                         {"method": "echo"}, wait_for_reply=True)
+        self.assertIsNotNone(rc)
+        listener.join(timeout=30)
+        self.assertFalse(listener.isAlive())
+        driver.cleanup()
+
+    def test_authentication_failure(self):
+        """Verify that a bad password given in TransportHost is
+        rejected by the broker.
+        """
+
+        addr = "amqp://joe:badpass@%s:%d" % (self._broker.host,
+                                             self._broker.port)
+        url = oslo_messaging.TransportURL.parse(self.conf, addr)
+        driver = amqp_driver.ProtonDriver(self.conf, url)
+        target = oslo_messaging.Target(topic="test-topic")
+        _ListenerThread(driver.listen(target), 1)
+        self.assertRaises(oslo_messaging.MessagingTimeout,
+                          driver.send,
+                          target, {"context": True},
+                          {"method": "echo"},
+                          wait_for_reply=True,
+                          timeout=2.0)
+        driver.cleanup()
+
+
 @testtools.skipUnless(pyngus, "proton modules not present")
 class TestFailover(test_utils.BaseTestCase):
 
@@ -429,19 +517,33 @@
             """A single AMQP connection."""
 
             def __init__(self, server, socket_, name,
-                         sasl_mechanisms, user_credentials):
+                         sasl_mechanisms, user_credentials,
+                         sasl_config_dir, sasl_config_name):
                 """Create a Connection using socket_."""
                 self.socket = socket_
                 self.name = name
                 self.server = server
-                self.connection = server.container.create_connection(name,
-                                                                     self)
-                self.connection.user_context = self
                 self.sasl_mechanisms = sasl_mechanisms
                 self.user_credentials = user_credentials
-                if sasl_mechanisms:
-                    self.connection.pn_sasl.mechanisms(sasl_mechanisms)
-                    self.connection.pn_sasl.server()
+                properties = {'x-server': True}
+                if self.sasl_mechanisms:
+                    properties['x-sasl-mechs'] = self.sasl_mechanisms
+                    if "ANONYMOUS" not in self.sasl_mechanisms:
+                        properties['x-require-auth'] = True
+                if sasl_config_dir:
+                    properties['x-sasl-config-dir'] = sasl_config_dir
+                if sasl_config_name:
+                    properties['x-sasl-config-name'] = sasl_config_name
+
+                self.connection = server.container.create_connection(
+                    name, self, properties)
+                self.connection.user_context = self
+                if pyngus.VERSION < (2, 0, 0):
+                    # older versions of pyngus don't recognize the sasl
+                    # connection properties, so configure them manually:
+                    if sasl_mechanisms:
+                        self.connection.pn_sasl.mechanisms(sasl_mechanisms)
+                        self.connection.pn_sasl.server()
                 self.connection.open()
                 self.sender_links = set()
                 self.closed = False
@@ -506,7 +608,8 @@
                                         link_handle, addr)
 
             def sasl_step(self, connection, pn_sasl):
-                if self.sasl_mechanisms == 'PLAIN':
+                # only called if not using Cyrus SASL
+                if 'PLAIN' in self.sasl_mechanisms:
                     credentials = pn_sasl.recv()
                     if not credentials:
                         return  # wait until some arrives
@@ -592,7 +695,9 @@
                  address_separator=".",
                  sock_addr="", sock_port=0,
                  sasl_mechanisms="ANONYMOUS",
-                 user_credentials=None):
+                 user_credentials=None,
+                 sasl_config_dir=None,
+                 sasl_config_name=None):
         """Create a fake broker listening on sock_addr:sock_port."""
         if not pyngus:
             raise AssertionError("pyngus module not present")
@@ -602,6 +707,8 @@
         self._group_prefix = group_prefix + address_separator
         self._address_separator = address_separator
         self._sasl_mechanisms = sasl_mechanisms
+        self._sasl_config_dir = sasl_config_dir
+        self._sasl_config_name = sasl_config_name
         self._user_credentials = user_credentials
         self._wakeup_pipe = os.pipe()
         self._my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -664,7 +771,9 @@
                     name = str(client_address)
                     conn = FakeBroker.Connection(self, client_socket, name,
                                                  self._sasl_mechanisms,
-                                                 self._user_credentials)
+                                                 self._user_credentials,
+                                                 self._sasl_config_dir,
+                                                 self._sasl_config_name)
                     self._connections[conn.name] = conn
                 elif r is self._wakeup_pipe[0]:
                     os.read(self._wakeup_pipe[0], 512)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/requirements.txt 
new/oslo.messaging-2.5.0/requirements.txt
--- old/oslo.messaging-2.4.0/requirements.txt   2015-08-24 23:33:43.000000000 
+0200
+++ new/oslo.messaging-2.5.0/requirements.txt   2015-09-08 17:59:38.000000000 
+0200
@@ -2,15 +2,15 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-pbr<2.0,>=1.4
+pbr<2.0,>=1.6
 
 futurist>=0.1.2 # Apache-2.0
-oslo.config>=2.1.0 # Apache-2.0
+oslo.config>=2.3.0 # Apache-2.0
 oslo.context>=0.2.0 # Apache-2.0
 oslo.log>=1.8.0 # Apache-2.0
 oslo.utils>=2.0.0 # Apache-2.0
 oslo.serialization>=1.4.0 # Apache-2.0
-oslo.service>=0.6.0 # Apache-2.0
+oslo.service>=0.7.0 # Apache-2.0
 oslo.i18n>=1.5.0 # Apache-2.0
 stevedore>=1.5.0 # Apache-2.0
 
@@ -35,7 +35,7 @@
 kombu>=3.0.7
 
 # middleware
-oslo.middleware!=2.6.0,>=2.4.0 # Apache-2.0
+oslo.middleware>=2.8.0 # Apache-2.0
 
 # needed by the aioeventlet executor
 aioeventlet>=0.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/setup-test-env-qpid.sh 
new/oslo.messaging-2.5.0/setup-test-env-qpid.sh
--- old/oslo.messaging-2.4.0/setup-test-env-qpid.sh     2015-08-24 
23:33:43.000000000 +0200
+++ new/oslo.messaging-2.5.0/setup-test-env-qpid.sh     2015-09-08 
17:59:38.000000000 +0200
@@ -1,4 +1,8 @@
 #!/bin/bash
+#
+# Usage: setup-test-env-qpid.sh PROTOCOL <command to run>
+# where PROTOCOL is the version of the AMQP protocol to use with
+# qpidd.  Valid values for PROTOCOL are "1", "1.0", "0-10", "0.10"
 set -e
 
 # require qpidd, qpid-tools sasl2-bin/cyrus-sasl-plain+cyrus-sasl-lib
@@ -8,6 +12,34 @@
 DATADIR=$(mktemp -d /tmp/OSLOMSG-QPID.XXXXX)
 trap "clean_exit $DATADIR" EXIT
 
+QPIDD=$(which qpidd 2>/dev/null)
+
+# which protocol should be used with qpidd?
+# 1 for AMQP 1.0, 0.10 for AMQP 0.10
+#
+PROTOCOL=$1
+case $PROTOCOL in
+    "1" | "1.0")
+        PROTOCOL="1"
+        shift
+        ;;
+    "0.10" | "0-10")
+        PROTOCOL="0-10"
+        shift
+        ;;
+    *)
+        # assume the old protocol
+        echo "No protocol specified, assuming 0.10"
+        PROTOCOL="0-10"
+        ;;
+esac
+
+# ensure that the version of qpidd does support AMQP 1.0
+if [ $PROTOCOL == "1" ] && ! `$QPIDD --help | grep -q "queue-patterns"`; then
+    echo "This version of $QPIDD does not support AMQP 1.0"
+    exit 1
+fi
+
 [ -f "/usr/lib/qpid/daemon/acl.so" ] && 
LIBACL="load-module=/usr/lib/qpid/daemon/acl.so"
 
 cat > ${DATADIR}/qpidd.conf <<EOF
@@ -18,12 +50,22 @@
 mgmt-enable=yes
 auth=yes
 log-to-stderr=no
+EOF
 
+if [ $PROTOCOL == "1" ]; then
+    cat >> ${DATADIR}/qpidd.conf <<EOF
 # Used by AMQP1.0 only
 queue-patterns=exclusive
 queue-patterns=unicast
 topic-patterns=broadcast
 EOF
+    # some versions of qpidd require this for AMQP 1 and SASL:
+    if `$QPIDD --help | grep -q "sasl-service-name"`; then
+        cat >> ${DATADIR}/qpidd.conf <<EOF
+sasl-service-name=amqp
+EOF
+    fi
+fi
 
 cat > ${DATADIR}/qpidd.acl <<EOF
 group admin stackqpid@QPID
@@ -41,8 +83,6 @@
 
 echo secretqpid | saslpasswd2 -c -p -f ${DATADIR}/qpidd.sasldb -u QPID 
stackqpid
 
-QPIDD=$(which qpidd 2>/dev/null)
-
 mkfifo ${DATADIR}/out
 $QPIDD --log-enable info+ --log-to-file ${DATADIR}/out --config 
${DATADIR}/qpidd.conf &
 wait_for_line "Broker .*running" "error" ${DATADIR}/out
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.messaging-2.4.0/tox.ini 
new/oslo.messaging-2.5.0/tox.ini
--- old/oslo.messaging-2.4.0/tox.ini    2015-08-24 23:33:43.000000000 +0200
+++ new/oslo.messaging-2.5.0/tox.ini    2015-09-08 17:59:38.000000000 +0200
@@ -26,7 +26,7 @@
 
 [testenv:py27-func-qpid]
 setenv = TRANSPORT_URL=qpid://stackqpid:[email protected]:65123//
-commands = {toxinidir}/setup-test-env-qpid.sh python setup.py testr --slowest 
--testr-args='oslo_messaging.tests.functional'
+commands = {toxinidir}/setup-test-env-qpid.sh 0-10 python setup.py testr 
--slowest --testr-args='oslo_messaging.tests.functional'
 
 [testenv:py27-func-rabbit]
 commands = {toxinidir}/setup-test-env-rabbit.sh python setup.py testr 
--slowest --testr-args='oslo_messaging.tests.functional'
@@ -34,7 +34,7 @@
 [testenv:py27-func-amqp1]
 setenv = TRANSPORT_URL=amqp://stackqpid:[email protected]:65123//
 # NOTE(flaper87): This gate job run on fedora21 for now.
-commands = {toxinidir}/setup-test-env-qpid.sh python setup.py testr --slowest 
--testr-args='oslo_messaging.tests.functional'
+commands = {toxinidir}/setup-test-env-qpid.sh 1.0 python setup.py testr 
--slowest --testr-args='oslo_messaging.tests.functional'
 
 [testenv:py27-func-zeromq]
 commands = {toxinidir}/setup-test-env-zmq.sh python setup.py testr --slowest 
--testr-args='oslo_messaging.tests.functional'



Reply via email to