From c35fb276ce75479792dc3d4b8e89cfb62aed06ae Mon Sep 17 00:00:00 2001
From: Kenneth Giusti <kgiusti@gmail.com>
Date: Fri, 26 May 2017 13:05:52 -0400
Subject: [PATCH] Mark the Pika driver as deprecated

The Pika driver was intended to be a more stable and performant
replacement for the default rabbit driver.  However due to lack of
both maintainers and compelling evidence that pika is superior to the
existing rabbit driver in either performance or stability it has been
deprecated for removal.

See:
http://lists.openstack.org/pipermail/openstack-dev/2017-May/116679.html

Change-Id: I98e0123edd3248be665325833283689fc3a897f7
---
 doc/source/pika_driver.rst                       |  4 ++++
 oslo_messaging/_drivers/impl_pika.py             | 16 +++++++++++-----
 ...ver-has-been-deprecated-e2407fa53c91fe5c.yaml |  8 ++++++++
 3 files changed, 23 insertions(+), 5 deletions(-)
 create mode 100644 releasenotes/notes/pika-driver-has-been-deprecated-e2407fa53c91fe5c.yaml

diff --git a/doc/source/pika_driver.rst b/doc/source/pika_driver.rst
index 646fe92b8..b89fabd28 100644
--- a/doc/source/pika_driver.rst
+++ b/doc/source/pika_driver.rst
@@ -4,6 +4,10 @@ Pika Driver Deployment Guide
 
 .. currentmodule:: oslo_messaging
 
+.. warning:: the Pika driver is no longer maintained and will be
+   removed from Oslo.Messaging at a future date.  It is recommended that
+   all users of the Pika driver transition to using the Rabbit driver.
+
 ============
 Introduction
 ============
diff --git a/oslo_messaging/_drivers/impl_pika.py b/oslo_messaging/_drivers/impl_pika.py
index 0d413b41a..65e7b48da 100644
--- a/oslo_messaging/_drivers/impl_pika.py
+++ b/oslo_messaging/_drivers/impl_pika.py
@@ -12,6 +12,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+from debtcollector import deprecate
 from oslo_config import cfg
 from oslo_log import log as logging
 from oslo_utils import timeutils
@@ -127,15 +128,20 @@ rpc_opts = [
 class PikaDriver(base.BaseDriver):
     """Pika Driver
 
-    The ``pika`` driver is the successor to the existing rabbit/kombu driver.
-    It is based on the Pika client library and supports the RabbitMQ broker as
-    the messaging back end.
-
-    See :doc:`pika_driver` for details.
+    **Warning**: The ``pika`` driver has been deprecated and will be removed in
+    a future release.  It is recommended that all users of the ``pika`` driver
+    transition to using the ``rabbit`` driver.
     """
 
     def __init__(self, conf, url, default_exchange=None,
                  allowed_remote_exmods=None):
+
+        deprecate("The pika driver is no longer maintained. It has been"
+                  " deprecated",
+                  message="It is recommended that all users of the pika driver"
+                  " transition to using the rabbit driver.",
+                  version="pike", removal_version="rocky")
+
         opt_group = cfg.OptGroup(name='oslo_messaging_pika',
                                  title='Pika driver options')
         conf.register_group(opt_group)
diff --git a/releasenotes/notes/pika-driver-has-been-deprecated-e2407fa53c91fe5c.yaml b/releasenotes/notes/pika-driver-has-been-deprecated-e2407fa53c91fe5c.yaml
new file mode 100644
index 000000000..b4257780d
--- /dev/null
+++ b/releasenotes/notes/pika-driver-has-been-deprecated-e2407fa53c91fe5c.yaml
@@ -0,0 +1,8 @@
+---
+deprecations:
+  - The pika driver has been deprecated for removal in Rocky.  This
+    driver was developed as a replacement for the default rabbit
+    driver. However testing has not shown any appreciable improvement
+    over the default rabbit driver in terms of performance and
+    stability.
+