Mark untested drivers as unsupported

This will cause them to log a warning at startup, that it is unsupported
and may be removed later.

The drivers marked unsupported are any driver that uses:

* SSHPower / SSHManagement
* NativeIPMIPower / NativeIPMIManagement
* seamicro.Power / seamicro.Management
* IBootPower
* SNMPPower
* VirtualBoxPower / VirtualBoxManagement
* AMTPower / AMTManagement
* MSFTOCSPower / MSFTOCSManagement
* WakeOnLanPower

See the release note in this change for the full list of the setup.cfg
names for the drivers.

The remaining drivers are tested via OpenStack CI, and/or have a
third-party CI listed here[0] and are making an honest effort toward
having stable CI.

[0] https://wiki.openstack.org/wiki/ThirdPartySystems

Closes-Bug: #1526410
Change-Id: I9c09be6b7a734426a4c0b18cb61ece5389428cd5
This commit is contained in:
Jim Rollenhagen 2016-09-13 10:42:00 -04:00
parent 991d3a9f2b
commit 8758116f83
4 changed files with 90 additions and 0 deletions

View File

@ -97,6 +97,8 @@ class AgentAndIPMINativeDriver(base.BaseDriver):
glue between them.
"""
supported = False
def __init__(self):
self.power = ipminative.NativeIPMIPower()
self.boot = pxe.PXEBoot()
@ -131,6 +133,8 @@ class AgentAndSSHDriver(base.BaseDriver):
is merely the glue between them.
"""
supported = False
def __init__(self):
self.power = ssh.SSHPower()
self.boot = pxe.PXEBoot()
@ -156,6 +160,8 @@ class AgentAndVirtualBoxDriver(base.BaseDriver):
is merely the glue between them.
"""
supported = False
def __init__(self):
if not importutils.try_import('pyremotevbox'):
raise exception.DriverLoadError(
@ -178,6 +184,9 @@ class AgentAndAMTDriver(base.BaseDriver):
deployment. Implementations are in those respective classes; this
class is merely the glue between them.
"""
supported = False
def __init__(self):
if not importutils.try_import('pywsman'):
raise exception.DriverLoadError(
@ -249,6 +258,9 @@ class AgentAndWakeOnLanDriver(base.BaseDriver):
Implementations are in those respective classes;
this class is merely the glue between them.
"""
supported = False
def __init__(self):
self.power = wol.WakeOnLanPower()
self.boot = pxe.PXEBoot()
@ -266,6 +278,9 @@ class AgentAndIBootDriver(base.BaseDriver):
Implementations are in those respective classes;
this class is merely the glue between them.
"""
supported = False
def __init__(self):
if not importutils.try_import('iboot'):
raise exception.DriverLoadError(

View File

@ -116,6 +116,8 @@ class FakePXEDriver(base.BaseDriver):
class FakeSSHDriver(base.BaseDriver):
"""Example implementation of a Driver."""
supported = False
def __init__(self):
self.power = ssh.SSHPower()
self.deploy = fake.FakeDeploy()
@ -126,6 +128,8 @@ class FakeSSHDriver(base.BaseDriver):
class FakeIPMINativeDriver(base.BaseDriver):
"""Fake IPMINative driver."""
supported = False
def __init__(self):
if not importutils.try_import('pyghmi'):
raise exception.DriverLoadError(
@ -141,6 +145,8 @@ class FakeIPMINativeDriver(base.BaseDriver):
class FakeSeaMicroDriver(base.BaseDriver):
"""Fake SeaMicro driver."""
supported = False
def __init__(self):
if not importutils.try_import('seamicroclient'):
raise exception.DriverLoadError(
@ -167,6 +173,8 @@ class FakeAgentDriver(base.BaseDriver):
class FakeIBootDriver(base.BaseDriver):
"""Fake iBoot driver."""
supported = False
def __init__(self):
if not importutils.try_import('iboot'):
raise exception.DriverLoadError(
@ -210,6 +218,8 @@ class FakeDracDriver(base.BaseDriver):
class FakeSNMPDriver(base.BaseDriver):
"""Fake SNMP driver."""
supported = False
def __init__(self):
if not importutils.try_import('pysnmp'):
raise exception.DriverLoadError(
@ -236,6 +246,8 @@ class FakeIRMCDriver(base.BaseDriver):
class FakeVirtualBoxDriver(base.BaseDriver):
"""Fake VirtualBox driver."""
supported = False
def __init__(self):
if not importutils.try_import('pyremotevbox'):
raise exception.DriverLoadError(
@ -264,6 +276,8 @@ class FakeIPMIToolInspectorDriver(base.BaseDriver):
class FakeAMTDriver(base.BaseDriver):
"""Fake AMT driver."""
supported = False
def __init__(self):
if not importutils.try_import('pywsman'):
raise exception.DriverLoadError(
@ -277,6 +291,8 @@ class FakeAMTDriver(base.BaseDriver):
class FakeMSFTOCSDriver(base.BaseDriver):
"""Fake MSFT OCS driver."""
supported = False
def __init__(self):
self.power = msftocs_power.MSFTOCSPower()
self.deploy = fake.FakeDeploy()
@ -312,6 +328,8 @@ class FakeCIMCDriver(base.BaseDriver):
class FakeWakeOnLanDriver(base.BaseDriver):
"""Fake Wake-On-Lan driver."""
supported = False
def __init__(self):
self.power = wol.WakeOnLanPower()
self.deploy = fake.FakeDeploy()

View File

@ -116,6 +116,9 @@ class PXEAndSSHDriver(base.BaseDriver):
image deployment. Implementations are in those respective
classes; this class is merely the glue between them.
"""
supported = False
def __init__(self):
self.power = ssh.SSHPower()
self.boot = pxe.PXEBoot()
@ -138,6 +141,9 @@ class PXEAndIPMINativeDriver(base.BaseDriver):
for image deployment. Implementations are in those respective
classes; this class is merely the glue between them.
"""
supported = False
def __init__(self):
if not importutils.try_import('pyghmi'):
raise exception.DriverLoadError(
@ -173,6 +179,9 @@ class PXEAndSeaMicroDriver(base.BaseDriver):
for image deployment. Implementations are in those respective
classes; this class is merely the glue between them.
"""
supported = False
def __init__(self):
if not importutils.try_import('seamicroclient'):
raise exception.DriverLoadError(
@ -203,6 +212,9 @@ class PXEAndIBootDriver(base.BaseDriver):
image deployment. Implementations are in those respective classes;
this class is merely the glue between them.
"""
supported = False
def __init__(self):
if not importutils.try_import('iboot'):
raise exception.DriverLoadError(
@ -247,6 +259,9 @@ class PXEAndSNMPDriver(base.BaseDriver):
deployment. Implentations are in those respective classes; this
class is merely the glue between them.
"""
supported = False
def __init__(self):
# Driver has a runtime dependency on PySNMP, abort load if it is absent
if not importutils.try_import('pysnmp'):
@ -297,6 +312,9 @@ class PXEAndVirtualBoxDriver(base.BaseDriver):
deployment. Implementations are in those respective classes;
this class is merely the glue between them.
"""
supported = False
def __init__(self):
if not importutils.try_import('pyremotevbox'):
raise exception.DriverLoadError(
@ -319,6 +337,9 @@ class PXEAndAMTDriver(base.BaseDriver):
deployment. Implementations are in those respective classes; this
class is merely the glue between them.
"""
supported = False
def __init__(self):
if not importutils.try_import('pywsman'):
raise exception.DriverLoadError(
@ -340,6 +361,9 @@ class PXEAndMSFTOCSDriver(base.BaseDriver):
for image deployment. Implementations are in those respective classes;
this class is merely the glue between them.
"""
supported = False
def __init__(self):
self.power = msftocs_power.MSFTOCSPower()
self.boot = pxe.PXEBoot()
@ -405,6 +429,9 @@ class PXEAndWakeOnLanDriver(base.BaseDriver):
deployment. Implementations are in those respective classes;
this class is merely the glue between them.
"""
supported = False
def __init__(self):
self.power = wol.WakeOnLanPower()
self.boot = pxe.PXEBoot()

View File

@ -0,0 +1,30 @@
---
deprecations:
- |
The following drivers are marked as unsupported and therefore deprecated.
Some or all of these drivers may be removed in the Ocata cycle or later.
* ``agent_amt``
* ``agent_iboot``
* ``agent_pyghmi``
* ``agent_ssh``
* ``agent_vbox``
* ``agent_wol``
* ``fake_ipminative``
* ``fake_ssh``
* ``fake_seamicro``
* ``fake_iboot``
* ``fake_snmp``
* ``fake_vbox``
* ``fake_amt``
* ``fake_msftocs``
* ``fake_wol``
* ``pxe_ipminative``
* ``pxe_ssh``
* ``pxe_vbox``
* ``pxe_seamicro``
* ``pxe_iboot``
* ``pxe_snmp``
* ``pxe_amt``
* ``pxe_msftocs``
* ``pxe_wol``