Stop supporting the deprecated classic drivers

They are pending removal in the Rocky release, at which point we
may get broken. This change removed the enabled_drivers option,
as well as any processing of the classic drivers.

A seemingly unrelated issue was fixed in the fencing unit tests
that prevented the tests from passing.

Change-Id: If1bfe58d416110cdf03201aea015ce53267af2d6
Depends-On: Iae5088e0d8a8a594c9b3a2d625a0daf829ba7b4b
This commit is contained in:
Dmitry Tantsur 2018-04-30 14:12:15 +02:00
parent 3ad2abbfe5
commit 0d44726f0b
3 changed files with 10 additions and 39 deletions

View File

@ -106,7 +106,7 @@ class TestGenerateFencingParameters(utils.TestCommand):
{
"name": "control-0",
"pm_password": "control-0-password",
"pm_type": "pxe_ipmitool",
"pm_type": "ipmi",
"pm_user": "control-0-admin",
"pm_addr": "0.1.2.3",
"pm_port": "0123",
@ -117,7 +117,7 @@ class TestGenerateFencingParameters(utils.TestCommand):
{
"name": "control-1",
"pm_password": "control-1-password",
"pm_type": "pxe_ssh",
"pm_type": "ipmi",
"pm_user": "control-1-admin",
"pm_addr": "1.2.3.4",
"mac": [
@ -151,20 +151,20 @@ class TestGenerateFencingParameters(utils.TestCommand):
u'name': u'control-0',
u'pm_port': u'0123',
u'pm_addr': u'0.1.2.3',
u'pm_type': u'pxe_ipmitool',
u'pm_type': u'ipmi',
u'pm_password': u'control-0-password',
u'pm_user': u'control-0-admin'
},
{
u'name': u'control-1',
u'pm_addr': u'1.2.3.4',
u'pm_type': u'pxe_ssh',
u'pm_type': u'ipmi',
u'pm_user': u'control-1-admin',
u'pm_password': u'control-1-password',
u'mac': [u'11:22:33:44:55:66']
}],
'delay': None,
'os_auth': {},
'os_auth': None,
'ipmi_cipher': None,
'ipmi_lanplus': False,
'ipmi_level': None

View File

@ -35,8 +35,7 @@ class TestProcessDriversAndHardwareTypes(base.TestCase):
def setUp(self):
super(TestProcessDriversAndHardwareTypes, self).setUp()
self.conf = mock.Mock(**{key: getattr(undercloud_config.CONF, key)
for key in ('enabled_drivers',
'enabled_hardware_types',
for key in ('enabled_hardware_types',
'enable_node_discovery',
'discovery_default_driver')})
@ -44,7 +43,6 @@ class TestProcessDriversAndHardwareTypes(base.TestCase):
env = {}
undercloud_config._process_drivers_and_hardware_types(self.conf, env)
self.assertEqual({
'IronicEnabledDrivers': ['pxe_drac', 'pxe_ilo', 'pxe_ipmitool'],
'IronicEnabledHardwareTypes': ['idrac', 'ilo', 'ipmi', 'redfish'],
'IronicEnabledBootInterfaces': ['ilo-pxe', 'pxe'],
'IronicEnabledManagementInterfaces': ['fake', 'idrac', 'ilo',
@ -62,7 +60,6 @@ class TestProcessDriversAndHardwareTypes(base.TestCase):
undercloud_config._process_drivers_and_hardware_types(self.conf, env)
self.assertEqual({
'IronicEnabledDrivers': ['pxe_drac', 'pxe_ilo', 'pxe_ipmitool'],
# ipmi added because it's the default discovery driver
'IronicEnabledHardwareTypes': ['ipmi', 'redfish'],
'IronicEnabledBootInterfaces': ['pxe'],
@ -85,7 +82,6 @@ class TestProcessDriversAndHardwareTypes(base.TestCase):
undercloud_config._process_drivers_and_hardware_types(self.conf, env)
self.assertEqual({
'IronicEnabledDrivers': ['pxe_drac', 'pxe_ilo', 'pxe_ipmitool'],
'IronicEnabledHardwareTypes': ['cisco-ucs-managed',
'cisco-ucs-standalone',
'idrac', 'ilo', 'ipmi', 'irmc',

View File

@ -36,7 +36,6 @@ from tripleoclient.v1 import undercloud_preflight
PARAMETER_MAPPING = {
'inspection_interface': 'IronicInspectorInterface',
'enabled_drivers': 'IronicEnabledDrivers',
'undercloud_debug': 'Debug',
'ipxe_enabled': 'IronicInspectorIPXEEnabled',
'certificate_generation_ca': 'CertmongerCA',
@ -278,8 +277,8 @@ _opts = [
default='ipmi',
help=('The default driver or hardware type to use for newly '
'discovered nodes (requires enable_node_discovery set to '
'True). It is automatically added to enabled_drivers '
'or enabled_hardware_types accordingly.')
'True). It is automatically added to '
'enabled_hardware_types.')
),
cfg.BoolOpt('undercloud_debug',
default=True,
@ -346,12 +345,6 @@ _opts = [
default=False,
help=('Whether to clean overcloud nodes (wipe the hard drive) '
'between deployments and after the introspection.')),
cfg.ListOpt('enabled_drivers',
default=['pxe_ipmitool', 'pxe_drac', 'pxe_ilo'],
help=('List of enabled bare metal drivers.'),
deprecated_for_removal=True,
deprecated_reason=('Please switch to hardware types and '
'the enabled_hardware_types option.')),
cfg.ListOpt('enabled_hardware_types',
default=['ipmi', 'redfish', 'ilo', 'idrac'],
help=('List of enabled bare metal hardware types (next '
@ -466,30 +459,13 @@ def _load_config():
CONF(conf_params)
def _is_classic_driver(name):
"""Poor man's way to detect if something is a driver or a hardware type.
To be removed when we remove support for classic drivers.
"""
return (name == 'fake' or
name.startswith('fake_') or
name.startswith('pxe_') or
name.startswith('agent_') or
name.startswith('iscsi_'))
def _process_drivers_and_hardware_types(conf, env):
"""Populate the environment with ironic driver information."""
# Ensure correct rendering of the list and uniqueness of the items
enabled_drivers = set(conf.enabled_drivers)
enabled_hardware_types = set(conf.enabled_hardware_types)
if conf.enable_node_discovery:
if _is_classic_driver(conf.discovery_default_driver):
if conf.discovery_default_driver not in enabled_drivers:
enabled_drivers.add(conf.discovery_default_driver)
else:
if conf.discovery_default_driver not in enabled_hardware_types:
enabled_hardware_types.add(conf.discovery_default_driver)
if conf.discovery_default_driver not in enabled_hardware_types:
enabled_hardware_types.add(conf.discovery_default_driver)
env['IronicInspectorEnableNodeDiscovery'] = True
env['IronicInspectorDiscoveryDefaultDriver'] = (
conf.discovery_default_driver)
@ -522,7 +498,6 @@ def _process_drivers_and_hardware_types(conf, env):
if hw_type in enabled_hardware_types:
vendor_interfaces.add(iface)
env['IronicEnabledDrivers'] = sorted(enabled_drivers)
env['IronicEnabledHardwareTypes'] = sorted(enabled_hardware_types)
env['IronicEnabledBootInterfaces'] = sorted(boot_interfaces)