From f9e53e2c6e9a739494655bb1d557d2a07989b0b4 Mon Sep 17 00:00:00 2001
From: Julia Kreger <juliaashleykreger@gmail.com>
Date: Fri, 15 Feb 2019 10:07:24 -0800
Subject: [PATCH] Deprecate Cisco drivers

Due to a lack of operating third party CI and a lack
of maintenance of the drivers, the cisco drivers are
being deprecated by the ironic community.
More information can be found on the mailing list[0].

[0]: http://lists.openstack.org/pipermail/openstack-discuss/2019-February/002460.html

Change-Id: I3e7ee9728fba2bf6a779adfb5fa0ddf1fb369c49
Task: 29521
Story: 2005033
---
 ironic/drivers/cisco_ucs.py                           |  8 ++++++++
 ironic/drivers/modules/cimc/management.py             |  4 ++++
 ironic/drivers/modules/cimc/power.py                  |  4 ++++
 ironic/drivers/modules/ucs/management.py              |  4 ++++
 ironic/drivers/modules/ucs/power.py                   |  3 +++
 .../deprecate-cisco-drivers-3ae79a24b76ff963.yaml     | 11 +++++++++++
 6 files changed, 34 insertions(+)
 create mode 100644 releasenotes/notes/deprecate-cisco-drivers-3ae79a24b76ff963.yaml

diff --git a/ironic/drivers/cisco_ucs.py b/ironic/drivers/cisco_ucs.py
index 7de186ee9c..730d5ccb6f 100644
--- a/ironic/drivers/cisco_ucs.py
+++ b/ironic/drivers/cisco_ucs.py
@@ -24,6 +24,10 @@ from ironic.drivers.modules.ucs import power as ucs_power
 class CiscoUCSStandalone(ipmi.IPMIHardware):
     """Cisco UCS in standalone mode"""
 
+    # NOTE(TheJulia): Deprecated due to a lack of operating third party
+    # CI, which stopped reporting during the Stein development cycle.
+    supported = False
+
     @property
     def supported_management_interfaces(self):
         """List of supported management interfaces."""
@@ -40,6 +44,10 @@ class CiscoUCSStandalone(ipmi.IPMIHardware):
 class CiscoUCSManaged(CiscoUCSStandalone):
     """Cisco UCS under UCSM management"""
 
+    # NOTE(TheJulia): Deprecated due to a lack of operating third party
+    # CI, which stopped reporting during the Stein development cycle.
+    supported = False
+
     @property
     def supported_management_interfaces(self):
         """List of supported management interfaces."""
diff --git a/ironic/drivers/modules/cimc/management.py b/ironic/drivers/modules/cimc/management.py
index 0e5b6cd7e3..f773cdd9f0 100644
--- a/ironic/drivers/modules/cimc/management.py
+++ b/ironic/drivers/modules/cimc/management.py
@@ -40,6 +40,10 @@ IRONIC_TO_CIMC_BOOT_DEVICE = {
 
 class CIMCManagement(base.ManagementInterface):
 
+    # NOTE(TheJulia): Deprecated due to a lack of operating third party
+    # CI, which stopped reporting during the Stein development cycle.
+    supported = False
+
     def get_properties(self):
         """Return the properties of the interface.
 
diff --git a/ironic/drivers/modules/cimc/power.py b/ironic/drivers/modules/cimc/power.py
index ccb01e76f0..765c41842a 100644
--- a/ironic/drivers/modules/cimc/power.py
+++ b/ironic/drivers/modules/cimc/power.py
@@ -81,6 +81,10 @@ def _wait_for_state_change(target_state, task):
 
 class Power(base.PowerInterface):
 
+    # NOTE(TheJulia): Deprecated due to a lack of operating third party
+    # CI, which stopped reporting during the Stein development cycle.
+    supported = False
+
     def get_properties(self):
         """Return the properties of the interface.
 
diff --git a/ironic/drivers/modules/ucs/management.py b/ironic/drivers/modules/ucs/management.py
index 17f99b123f..07bf3ea621 100644
--- a/ironic/drivers/modules/ucs/management.py
+++ b/ironic/drivers/modules/ucs/management.py
@@ -44,6 +44,10 @@ UCS_TO_IRONIC_BOOT_DEVICE = {
 
 class UcsManagement(base.ManagementInterface):
 
+    # NOTE(TheJulia): Deprecated due to a lack of operating third party
+    # CI, which stopped reporting during the Stein development cycle.
+    supported = False
+
     def get_properties(self):
         return ucs_helper.COMMON_PROPERTIES
 
diff --git a/ironic/drivers/modules/ucs/power.py b/ironic/drivers/modules/ucs/power.py
index c19d332626..28ea1bfb9e 100644
--- a/ironic/drivers/modules/ucs/power.py
+++ b/ironic/drivers/modules/ucs/power.py
@@ -74,6 +74,9 @@ class Power(base.PowerInterface):
     This PowerInterface class provides a mechanism for controlling the
     power state of servers managed by Cisco UCS Manager.
     """
+    # NOTE(TheJulia): Deprecated due to a lack of operating third party
+    # CI, which stopped reporting during the Stein development cycle.
+    supported = False
 
     def get_properties(self):
         """Returns common properties of the driver."""
diff --git a/releasenotes/notes/deprecate-cisco-drivers-3ae79a24b76ff963.yaml b/releasenotes/notes/deprecate-cisco-drivers-3ae79a24b76ff963.yaml
new file mode 100644
index 0000000000..84b08798ae
--- /dev/null
+++ b/releasenotes/notes/deprecate-cisco-drivers-3ae79a24b76ff963.yaml
@@ -0,0 +1,11 @@
+---
+deprecations:
+  - |
+    The Cisco ``cisco-ucs-managed`` and ``cisco-ucs-standalone`` drivers have
+    been deprecated due to a lack of reporting third-party CI and vendor
+    maintenance of the driver code. In the present state of these drivers,
+    they would have been removed as part of the eventual removal of support
+    for Python2. These drivers should be anticipated to be removed prior to
+    the final Train release of the Bare Metal service. More information
+    can be found
+    `here <http://lists.openstack.org/pipermail/openstack-discuss/2019-February/002460.html>`_.