Remove the deprecated pxe_snmp driver

Change-Id: I3e9d102698cb09171c3ca3031098bc9f1d829a72
This commit is contained in:
Dmitry Tantsur 2018-06-25 15:07:18 +02:00
parent 575640cfac
commit 6deb0c3b0b
5 changed files with 7 additions and 61 deletions

View File

@ -289,7 +289,7 @@ if [[ "$IRONIC_DEPLOY_ISO_REQUIRED" = "True" \
or set IRONIC_BUILD_DEPLOY_RAMDISK=True to use ISOs" or set IRONIC_BUILD_DEPLOY_RAMDISK=True to use ISOs"
fi fi
# Which deploy driver to use - valid choices right now # Which deploy driver to use - valid choices right now
# are ``pxe_ipmitool``, ``agent_ipmitool``, ``pxe_snmp`` and ``ipmi``. # are ``pxe_ipmitool``, ``agent_ipmitool``, ``snmp`` and ``ipmi``.
# #
# Additional valid choices if IRONIC_IS_HARDWARE == true are: # Additional valid choices if IRONIC_IS_HARDWARE == true are:
# ``cisco-ucs-managed``, ``cisco-ucs-standalone`` # ``cisco-ucs-managed``, ``cisco-ucs-standalone``
@ -644,7 +644,7 @@ function is_deployed_by_drac {
} }
function is_deployed_by_snmp { function is_deployed_by_snmp {
[[ -z "${IRONIC_DEPLOY_DRIVER##*snmp}" ]] && return 0 [[ "${IRONIC_DEPLOY_DRIVER}" == snmp ]] && return 0
return 1 return 1
} }

View File

@ -30,8 +30,6 @@ from ironic.drivers.modules.irmc import inspect as irmc_inspect
from ironic.drivers.modules.irmc import management as irmc_management from ironic.drivers.modules.irmc import management as irmc_management
from ironic.drivers.modules.irmc import power as irmc_power from ironic.drivers.modules.irmc import power as irmc_power
from ironic.drivers.modules import iscsi_deploy from ironic.drivers.modules import iscsi_deploy
from ironic.drivers.modules import pxe
from ironic.drivers.modules import snmp
CONF = cfg.CONF CONF = cfg.CONF
@ -42,40 +40,6 @@ PXEAndIPMIToolDriver = ipmi.PXEAndIPMIToolDriver
PXEAndIPMIToolAndSocatDriver = ipmi.PXEAndIPMIToolAndSocatDriver PXEAndIPMIToolAndSocatDriver = ipmi.PXEAndIPMIToolAndSocatDriver
class PXEAndSNMPDriver(base.BaseDriver):
"""PXE + SNMP driver.
This driver implements the 'core' functionality, combining
:class:`ironic.drivers.snmp.SNMP` for power on/off and reboot with
:class:`ironic.drivers.modules.iscsi_deploy.ISCSIDeploy` for image
deployment. Implentations are in those respective classes; this
class is merely the glue between them.
"""
def __init__(self):
# Driver has a runtime dependency on PySNMP, abort load if it is absent
if not importutils.try_import('pysnmp'):
raise exception.DriverLoadError(
driver=self.__class__.__name__,
reason=_("Unable to import pysnmp library"))
self.power = snmp.SNMPPower()
self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy()
# PDUs have no boot device management capability.
# Only PXE as a boot device is supported.
self.management = None
@classmethod
def to_hardware_type(cls):
return 'snmp', {
'boot': 'pxe',
'deploy': 'iscsi',
'management': 'fake',
'power': 'snmp',
}
class PXEAndIRMCDriver(base.BaseDriver): class PXEAndIRMCDriver(base.BaseDriver):
"""PXE + iRMC driver using SCCI. """PXE + iRMC driver using SCCI.

View File

@ -25,33 +25,11 @@ from ironic.drivers.modules.irmc import boot as irmc_boot
from ironic.drivers.modules.irmc import management as irmc_management from ironic.drivers.modules.irmc import management as irmc_management
from ironic.drivers.modules.irmc import power as irmc_power from ironic.drivers.modules.irmc import power as irmc_power
from ironic.drivers.modules import iscsi_deploy from ironic.drivers.modules import iscsi_deploy
from ironic.drivers.modules import pxe as pxe_module
from ironic.drivers.modules import snmp
from ironic.drivers import pxe from ironic.drivers import pxe
class PXEDriversTestCase(testtools.TestCase): class PXEDriversTestCase(testtools.TestCase):
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
autospec=True)
def test_pxe_snmp_driver(self, try_import_mock):
try_import_mock.return_value = True
driver = pxe.PXEAndSNMPDriver()
self.assertIsInstance(driver.power, snmp.SNMPPower)
self.assertIsInstance(driver.boot, pxe_module.PXEBoot)
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsNone(driver.management)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
autospec=True)
def test_pxe_snmp_driver_import_error(self, try_import_mock):
try_import_mock.return_value = False
self.assertRaises(exception.DriverLoadError,
pxe.PXEAndSNMPDriver)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True, @mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
autospec=True) autospec=True)
def test_pxe_irmc_driver(self, try_import_mock): def test_pxe_irmc_driver(self, try_import_mock):

View File

@ -0,0 +1,5 @@
---
upgrade:
- |
The deprecated ``pxe_snmp`` classic driver has been removed. Please use
the ``snmp`` hardware type instead.

View File

@ -61,7 +61,6 @@ ironic.drivers =
iscsi_pxe_oneview = ironic.drivers.oneview:ISCSIPXEOneViewDriver iscsi_pxe_oneview = ironic.drivers.oneview:ISCSIPXEOneViewDriver
pxe_ipmitool = ironic.drivers.ipmi:PXEAndIPMIToolDriver pxe_ipmitool = ironic.drivers.ipmi:PXEAndIPMIToolDriver
pxe_ipmitool_socat = ironic.drivers.ipmi:PXEAndIPMIToolAndSocatDriver pxe_ipmitool_socat = ironic.drivers.ipmi:PXEAndIPMIToolAndSocatDriver
pxe_snmp = ironic.drivers.pxe:PXEAndSNMPDriver
pxe_irmc = ironic.drivers.pxe:PXEAndIRMCDriver pxe_irmc = ironic.drivers.pxe:PXEAndIRMCDriver
ironic.hardware.interfaces.bios = ironic.hardware.interfaces.bios =