diff --git a/ironic/conf/inspector.py b/ironic/conf/inspector.py index 3f56ac999c..684151bce6 100644 --- a/ironic/conf/inspector.py +++ b/ironic/conf/inspector.py @@ -20,8 +20,8 @@ from ironic.conf import auth opts = [ cfg.BoolOpt('enabled', default=False, help=_('whether to enable inspection using ironic-inspector. ' - 'This option does not affect new-style dynamic drivers ' - 'and the fake_inspector driver.')), + 'This option does not affect new-style dynamic ' + 'drivers.')), cfg.StrOpt('service_url', deprecated_for_removal=True, deprecated_reason=_("Use [inspector]/endpoint_override option " diff --git a/ironic/drivers/fake.py b/ironic/drivers/fake.py index c59a5002f4..2257a341e7 100644 --- a/ironic/drivers/fake.py +++ b/ironic/drivers/fake.py @@ -22,7 +22,6 @@ from oslo_utils import importutils from ironic.common import exception from ironic.common.i18n import _ from ironic.drivers import base -from ironic.drivers.modules import agent from ironic.drivers.modules.cimc import management as cimc_mgmt from ironic.drivers.modules.cimc import power as cimc_power from ironic.drivers.modules.drac import inspect as drac_inspect @@ -34,7 +33,6 @@ from ironic.drivers.modules import fake from ironic.drivers.modules.ilo import inspect as ilo_inspect from ironic.drivers.modules.ilo import management as ilo_management from ironic.drivers.modules.ilo import power as ilo_power -from ironic.drivers.modules import inspector from ironic.drivers.modules import ipmitool from ironic.drivers.modules.irmc import inspect as irmc_inspect from ironic.drivers.modules.irmc import management as irmc_management @@ -42,7 +40,6 @@ from ironic.drivers.modules.irmc import power as irmc_power from ironic.drivers.modules import iscsi_deploy from ironic.drivers.modules.oneview import management as oneview_management from ironic.drivers.modules.oneview import power as oneview_power -from ironic.drivers.modules import pxe from ironic.drivers.modules import snmp from ironic.drivers.modules.ucs import management as ucs_mgmt from ironic.drivers.modules.ucs import power as ucs_power @@ -92,44 +89,6 @@ class FakeIPMIToolSocatDriver(base.BaseDriver): } -class FakePXEDriver(base.BaseDriver): - """Example implementation of a Driver.""" - - def __init__(self): - self.power = fake.FakePower() - self.boot = pxe.PXEBoot() - self.deploy = iscsi_deploy.ISCSIDeploy() - - @classmethod - def to_hardware_type(cls): - return 'fake-hardware', { - 'boot': 'pxe', - 'deploy': 'iscsi', - 'management': 'fake', - 'power': 'fake', - } - - -class FakeAgentDriver(base.BaseDriver): - """Example implementation of an AgentDriver.""" - - def __init__(self): - self.power = fake.FakePower() - self.boot = pxe.PXEBoot() - self.deploy = agent.AgentDeploy() - self.raid = agent.AgentRAID() - - @classmethod - def to_hardware_type(cls): - return 'fake-hardware', { - 'boot': 'pxe', - 'deploy': 'direct', - 'management': 'fake', - 'power': 'fake', - 'raid': 'agent' - } - - class FakeIloDriver(base.BaseDriver): """Fake iLO driver, used in testing.""" @@ -231,33 +190,6 @@ class FakeIRMCDriver(base.BaseDriver): } -class FakeIPMIToolInspectorDriver(base.BaseDriver): - """Fake Inspector driver.""" - - def __init__(self): - self.power = ipmitool.IPMIPower() - self.console = ipmitool.IPMIShellinaboxConsole() - self.deploy = fake.FakeDeploy() - self.vendor = ipmitool.VendorPassthru() - self.management = ipmitool.IPMIManagement() - # NOTE(dtantsur): unlike other uses of Inspector, this one is - # unconditional, as this driver is designed for testing inspector - # integration. - self.inspect = inspector.Inspector() - - @classmethod - def to_hardware_type(cls): - return 'fake-hardware', { - 'boot': 'fake', - 'console': 'ipmitool-shellinabox', - 'deploy': 'fake', - 'inspect': 'inspector', - 'management': 'ipmitool', - 'power': 'ipmitool', - 'vendor': 'ipmitool', - } - - class FakeUcsDriver(base.BaseDriver): """Fake UCS driver.""" diff --git a/ironic/tests/unit/common/test_driver_factory.py b/ironic/tests/unit/common/test_driver_factory.py index 889c15b0dd..83d22dd343 100644 --- a/ironic/tests/unit/common/test_driver_factory.py +++ b/ironic/tests/unit/common/test_driver_factory.py @@ -418,16 +418,14 @@ class HardwareTypeLoadTestCase(db_base.DbTestCase): self.assertIsInstance(hw_type, fake_hardware.FakeHardware) def test_get_hardware_type_missing(self): - self.config(enabled_drivers=['fake_agent']) self.assertRaises(exception.DriverNotFound, - # "fake_agent" is a classic driver driver_factory.get_hardware_type, 'fake_agent') def test_get_driver_or_hardware_type(self): - self.config(enabled_drivers=['fake_agent']) + self.config(enabled_drivers=['pxe_ipmitool']) hw_type = driver_factory.get_driver_or_hardware_type('fake-hardware') self.assertIsInstance(hw_type, fake_hardware.FakeHardware) - driver = driver_factory.get_driver_or_hardware_type('fake_agent') + driver = driver_factory.get_driver_or_hardware_type('pxe_ipmitool') self.assertNotIsInstance(driver, fake_hardware.FakeHardware) def test_get_driver_or_hardware_type_missing(self): diff --git a/ironic/tests/unit/drivers/modules/irmc/test_boot.py b/ironic/tests/unit/drivers/modules/irmc/test_boot.py index d5ba6109f1..284655b778 100644 --- a/ironic/tests/unit/drivers/modules/irmc/test_boot.py +++ b/ironic/tests/unit/drivers/modules/irmc/test_boot.py @@ -1904,6 +1904,7 @@ class IRMCVirtualMediaBootWithVolumeTestCase(db_base.DbTestCase): class IRMCPXEBootBasicTestCase(test_pxe.PXEBootTestCase): driver = 'pxe_irmc' + boot_interface = None def test_get_properties(self): with task_manager.acquire(self.context, self.node.uuid, diff --git a/ironic/tests/unit/drivers/modules/test_agent.py b/ironic/tests/unit/drivers/modules/test_agent.py index 464df4d900..22db83147c 100644 --- a/ironic/tests/unit/drivers/modules/test_agent.py +++ b/ironic/tests/unit/drivers/modules/test_agent.py @@ -51,9 +51,9 @@ CONF = cfg.CONF class TestAgentMethods(db_base.DbTestCase): def setUp(self): super(TestAgentMethods, self).setUp() - self.config(enabled_drivers=['fake_agent']) self.node = object_utils.create_test_node(self.context, - driver='fake_agent') + boot_interface='pxe', + deploy_interface='direct') dhcp_factory.DHCPFactory._dhcp_provider = None @mock.patch.object(images, 'image_show', autospec=True) @@ -141,14 +141,14 @@ class TestAgentMethods(db_base.DbTestCase): class TestAgentDeploy(db_base.DbTestCase): def setUp(self): super(TestAgentDeploy, self).setUp() - self.config(enabled_drivers=['fake_agent']) self.driver = agent.AgentDeploy() # NOTE(TheJulia): We explicitly set the noop storage interface as the # default below for deployment tests in order to raise any change # in the default which could be a breaking behavior change # as the storage interface is explicitly an "opt-in" interface. n = { - 'driver': 'fake_agent', + 'boot_interface': 'pxe', + 'deploy_interface': 'direct', 'instance_info': INSTANCE_INFO, 'driver_info': DRIVER_INFO, 'driver_internal_info': DRIVER_INTERNAL_INFO, @@ -1251,7 +1251,7 @@ class AgentRAIDTestCase(db_base.DbTestCase): def setUp(self): super(AgentRAIDTestCase, self).setUp() - self.config(enabled_drivers=['fake_agent']) + self.config(enabled_raid_interfaces=['fake', 'agent', 'no-raid']) self.target_raid_config = { "logical_disks": [ {'size_gb': 200, 'raid_level': 0, 'is_root_volume': True}, @@ -1260,7 +1260,9 @@ class AgentRAIDTestCase(db_base.DbTestCase): self.clean_step = {'step': 'create_configuration', 'interface': 'raid'} n = { - 'driver': 'fake_agent', + 'boot_interface': 'pxe', + 'deploy_interface': 'direct', + 'raid_interface': 'agent', 'instance_info': INSTANCE_INFO, 'driver_info': DRIVER_INFO, 'driver_internal_info': DRIVER_INTERNAL_INFO, @@ -1446,7 +1448,6 @@ class AgentRescueTestCase(db_base.DbTestCase): driver_info.update({'rescue_ramdisk': 'my_ramdisk', 'rescue_kernel': 'my_kernel'}) n = { - 'driver': 'fake-hardware', 'instance_info': instance_info, 'driver_info': driver_info, 'driver_internal_info': DRIVER_INTERNAL_INFO, diff --git a/ironic/tests/unit/drivers/modules/test_console_utils.py b/ironic/tests/unit/drivers/modules/test_console_utils.py index a5ee941285..8f998bb3d9 100644 --- a/ironic/tests/unit/drivers/modules/test_console_utils.py +++ b/ironic/tests/unit/drivers/modules/test_console_utils.py @@ -51,7 +51,6 @@ class ConsoleUtilsTestCase(db_base.DbTestCase): super(ConsoleUtilsTestCase, self).setUp() self.node = obj_utils.get_test_node( self.context, - driver='fake_ipmitool', driver_info=INFO_DICT) self.info = ipmi._parse_driver_info(self.node) diff --git a/ironic/tests/unit/drivers/modules/test_deploy_utils.py b/ironic/tests/unit/drivers/modules/test_deploy_utils.py index 28f93be8ed..12e5135cfd 100644 --- a/ironic/tests/unit/drivers/modules/test_deploy_utils.py +++ b/ironic/tests/unit/drivers/modules/test_deploy_utils.py @@ -1066,8 +1066,8 @@ class OtherFunctionTestCase(db_base.DbTestCase): def setUp(self): super(OtherFunctionTestCase, self).setUp() - self.config(enabled_drivers=['fake_pxe']) - self.node = obj_utils.create_test_node(self.context, driver='fake_pxe') + self.node = obj_utils.create_test_node(self.context, + boot_interface='pxe') def test_get_dev(self): expected = '/dev/disk/by-path/ip-1.2.3.4:5678-iscsi-iqn.fake-lun-9' @@ -1499,7 +1499,6 @@ class AgentMethodsTestCase(db_base.DbTestCase): def setUp(self): super(AgentMethodsTestCase, self).setUp() - self.config(enabled_drivers=['fake_agent']) self.clean_steps = { 'deploy': [ @@ -1516,7 +1515,8 @@ class AgentMethodsTestCase(db_base.DbTestCase): 'priority': 10} ] } - n = {'driver': 'fake_agent', + n = {'boot_interface': 'pxe', + 'deploy_interface': 'direct', 'driver_internal_info': { 'agent_cached_clean_steps': self.clean_steps}} self.node = obj_utils.create_test_node(self.context, **n) @@ -1752,7 +1752,7 @@ class ValidateImagePropertiesTestCase(db_base.DbTestCase): @mock.patch.object(image_service, 'get_image_service', autospec=True) def test_validate_image_properties_glance_image(self, image_service_mock): node = obj_utils.create_test_node( - self.context, driver='fake_pxe', + self.context, boot_interface='pxe', instance_info=INST_INFO_DICT, driver_info=DRV_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT, @@ -1772,7 +1772,7 @@ class ValidateImagePropertiesTestCase(db_base.DbTestCase): def test_validate_image_properties_glance_image_missing_prop( self, image_service_mock): node = obj_utils.create_test_node( - self.context, driver='fake_pxe', + self.context, boot_interface='pxe', instance_info=INST_INFO_DICT, driver_info=DRV_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT, @@ -1826,7 +1826,7 @@ class ValidateImagePropertiesTestCase(db_base.DbTestCase): } image_service_show_mock.return_value = {'size': 1, 'properties': {}} node = obj_utils.create_test_node( - self.context, driver='fake_pxe', + self.context, boot_interface='pxe', instance_info=instance_info, driver_info=DRV_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT, @@ -1849,7 +1849,7 @@ class ValidateImagePropertiesTestCase(db_base.DbTestCase): img_service_show_mock.side_effect = exception.ImageRefValidationFailed( image_href='http://ubuntu', reason='HTTPError') node = obj_utils.create_test_node( - self.context, driver='fake_pxe', + self.context, boot_interface='pxe', instance_info=instance_info, driver_info=DRV_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT, @@ -1869,7 +1869,7 @@ class ValidateParametersTestCase(db_base.DbTestCase): # make sure we get back the expected things node = obj_utils.create_test_node( self.context, - driver='fake_pxe', + boot_interface='pxe', instance_info=instance_info, driver_info=driver_info, driver_internal_info=DRV_INTERNAL_INFO_DICT, @@ -1935,7 +1935,7 @@ class InstanceInfoTestCase(db_base.DbTestCase): def test_parse_instance_info_good(self): # make sure we get back the expected things node = obj_utils.create_test_node( - self.context, driver='fake_pxe', + self.context, boot_interface='pxe', instance_info=INST_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT ) @@ -2184,7 +2184,8 @@ class TestBuildInstanceInfoForDeploy(db_base.DbTestCase): def setUp(self): super(TestBuildInstanceInfoForDeploy, self).setUp() self.node = obj_utils.create_test_node(self.context, - driver='fake_agent') + boot_interface='pxe', + deploy_interface='direct') @mock.patch.object(image_service.HttpImageService, 'validate_href', autospec=True) @@ -2205,7 +2206,6 @@ class TestBuildInstanceInfoForDeploy(db_base.DbTestCase): return_value=image_info) glance_mock.return_value.swift_temp_url.return_value = ( 'http://temp-url') - self.config(enabled_drivers=['fake_agent']) with task_manager.acquire( self.context, self.node.uuid, shared=False) as task: @@ -2267,7 +2267,6 @@ class TestBuildInstanceInfoForDeploy(db_base.DbTestCase): 'image_checksum': 'aa', 'image_container_format': 'bare', 'image_disk_format': 'qcow2'} - self.config(enabled_drivers=['fake_agent']) with task_manager.acquire( self.context, self.node.uuid, shared=False) as task: @@ -2303,7 +2302,6 @@ class TestBuildInstanceInfoForDeploy(db_base.DbTestCase): self.node.driver_internal_info = driver_internal_info self.node.save() - self.config(enabled_drivers=['fake_agent']) with task_manager.acquire( self.context, self.node.uuid, shared=False) as task: @@ -2332,7 +2330,6 @@ class TestBuildInstanceInfoForDeploy(db_base.DbTestCase): self.node.driver_internal_info = driver_internal_info self.node.save() - self.config(enabled_drivers=['fake_agent']) validate_href_mock.side_effect = ['http://image-ref', 'http://kernel-ref', 'http://ramdisk-ref'] @@ -2371,7 +2368,6 @@ class TestBuildInstanceInfoForDeploy(db_base.DbTestCase): self.node.instance_info = i_info self.node.save() - self.config(enabled_drivers=['fake_agent']) with task_manager.acquire( self.context, self.node.uuid, shared=False) as task: diff --git a/ironic/tests/unit/drivers/modules/test_inspector.py b/ironic/tests/unit/drivers/modules/test_inspector.py index 4b9fdf0e3f..cd0ab04d94 100644 --- a/ironic/tests/unit/drivers/modules/test_inspector.py +++ b/ironic/tests/unit/drivers/modules/test_inspector.py @@ -113,23 +113,23 @@ class BaseTestCase(db_base.DbTestCase): def setUp(self): super(BaseTestCase, self).setUp() self.config(enabled=True, group='inspector') - self.config(enabled_drivers=['fake_inspector']) - self.driver = driver_factory.get_driver("fake_inspector") - self.node = obj_utils.get_test_node(self.context) + self.node = obj_utils.get_test_node(self.context, + inspect_interface='inspector') + self.iface = inspector.Inspector() self.task = mock.MagicMock(spec=task_manager.TaskManager) self.task.context = self.context self.task.shared = False self.task.node = self.node - self.task.driver = self.driver + self.task.driver = mock.Mock(spec=['inspect'], inspect=self.iface) self.api_version = (1, 0) class CommonFunctionsTestCase(BaseTestCase): def test_validate_ok(self): - self.driver.inspect.validate(self.task) + self.iface.validate(self.task) def test_get_properties(self): - res = self.driver.inspect.get_properties() + res = self.iface.get_properties() self.assertEqual({}, res) def test_create_if_enabled(self): @@ -150,14 +150,14 @@ class InspectHardwareTestCase(BaseTestCase): def test_ok(self, mock_client): mock_introspect = mock_client.return_value.introspect self.assertEqual(states.INSPECTWAIT, - self.driver.inspect.inspect_hardware(self.task)) + self.iface.inspect_hardware(self.task)) mock_introspect.assert_called_once_with(self.node.uuid) @mock.patch.object(task_manager, 'acquire', autospec=True) def test_error(self, mock_acquire, mock_client): mock_introspect = mock_client.return_value.introspect mock_introspect.side_effect = RuntimeError('boom') - self.driver.inspect.inspect_hardware(self.task) + self.iface.inspect_hardware(self.task) mock_introspect.assert_called_once_with(self.node.uuid) task = mock_acquire.return_value.__enter__.return_value self.assertIn('boom', task.node.last_error) @@ -222,11 +222,11 @@ class CheckStatusTestCase(BaseTestCase): class InspectHardwareAbortTestCase(BaseTestCase): def test_abort_ok(self, mock_client): mock_abort = mock_client.return_value.abort - self.driver.inspect.abort(self.task) + self.iface.abort(self.task) mock_abort.assert_called_once_with(self.node.uuid) def test_abort_error(self, mock_client): mock_abort = mock_client.return_value.abort mock_abort.side_effect = RuntimeError('boom') - self.assertRaises(RuntimeError, self.driver.inspect.abort, self.task) + self.assertRaises(RuntimeError, self.iface.abort, self.task) mock_abort.assert_called_once_with(self.node.uuid) diff --git a/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py b/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py index f0902aec92..a7d1366de5 100644 --- a/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py +++ b/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py @@ -24,8 +24,8 @@ import mock from oslo_config import cfg from oslo_utils import fileutils +from ironic.common import boot_devices from ironic.common import dhcp_factory -from ironic.common import driver_factory from ironic.common import exception from ironic.common import pxe_utils from ironic.common import states @@ -35,6 +35,7 @@ from ironic.conductor import utils as manager_utils from ironic.drivers.modules import agent_base_vendor from ironic.drivers.modules import agent_client from ironic.drivers.modules import deploy_utils +from ironic.drivers.modules import fake from ironic.drivers.modules import iscsi_deploy from ironic.drivers.modules.network import flat as flat_network from ironic.drivers.modules import pxe @@ -56,12 +57,12 @@ class IscsiDeployPrivateMethodsTestCase(db_base.DbTestCase): def setUp(self): super(IscsiDeployPrivateMethodsTestCase, self).setUp() n = { - 'driver': 'fake_pxe', + 'boot_interface': 'pxe', + 'deploy_interface': 'iscsi', 'instance_info': INST_INFO_DICT, 'driver_info': DRV_INFO_DICT, 'driver_internal_info': DRV_INTERNAL_INFO_DICT, } - self.config(enabled_drivers=['fake_pxe']) self.node = obj_utils.create_test_node(self.context, **n) def test__save_disk_layout(self): @@ -98,12 +99,12 @@ class IscsiDeployMethodsTestCase(db_base.DbTestCase): instance_info = dict(INST_INFO_DICT) instance_info['deploy_key'] = 'fake-56789' n = { - 'driver': 'fake_pxe', + 'boot_interface': 'pxe', + 'deploy_interface': 'iscsi', 'instance_info': instance_info, 'driver_info': DRV_INFO_DICT, 'driver_internal_info': DRV_INTERNAL_INFO_DICT, } - self.config(enabled_drivers=['fake_pxe']) self.node = obj_utils.create_test_node(self.context, **n) @mock.patch.object(disk_utils, 'get_image_mb', autospec=True) @@ -545,14 +546,12 @@ class ISCSIDeployTestCase(db_base.DbTestCase): def setUp(self): super(ISCSIDeployTestCase, self).setUp() - self.config(enabled_drivers=['fake_pxe']) - self.driver = driver_factory.get_driver("fake_pxe") # NOTE(TheJulia): We explicitly set the noop storage interface as the # default below for deployment tests in order to raise any change # in the default which could be a breaking behavior change # as the storage interface is explicitly an "opt-in" interface. self.node = obj_utils.create_test_node( - self.context, driver='fake_pxe', + self.context, boot_interface='pxe', deploy_interface='iscsi', instance_info=INST_INFO_DICT, driver_info=DRV_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT, @@ -869,6 +868,7 @@ class ISCSIDeployTestCase(db_base.DbTestCase): mock.ANY, task) m_prep_instance.assert_called_once_with(task) + @mock.patch.object(fake.FakeManagement, 'set_boot_device', autospec=True) @mock.patch.object(agent_base_vendor.AgentDeployMixin, 'reboot_and_finish_deploy', autospec=True) @mock.patch.object(agent_base_vendor.AgentDeployMixin, @@ -876,7 +876,8 @@ class ISCSIDeployTestCase(db_base.DbTestCase): @mock.patch.object(iscsi_deploy, 'do_agent_iscsi_deploy', autospec=True) def test_continue_deploy_localboot(self, do_agent_iscsi_deploy_mock, configure_local_boot_mock, - reboot_and_finish_deploy_mock): + reboot_and_finish_deploy_mock, + set_boot_device_mock): self.node.instance_info = { 'capabilities': {'boot_option': 'local'}} @@ -895,7 +896,10 @@ class ISCSIDeployTestCase(db_base.DbTestCase): efi_system_part_uuid=None) reboot_and_finish_deploy_mock.assert_called_once_with( task.driver.deploy, task) + set_boot_device_mock.assert_called_once_with( + mock.ANY, task, device=boot_devices.DISK, persistent=True) + @mock.patch.object(fake.FakeManagement, 'set_boot_device', autospec=True) @mock.patch.object(agent_base_vendor.AgentDeployMixin, 'reboot_and_finish_deploy', autospec=True) @mock.patch.object(agent_base_vendor.AgentDeployMixin, @@ -903,7 +907,8 @@ class ISCSIDeployTestCase(db_base.DbTestCase): @mock.patch.object(iscsi_deploy, 'do_agent_iscsi_deploy', autospec=True) def test_continue_deploy_localboot_uefi(self, do_agent_iscsi_deploy_mock, configure_local_boot_mock, - reboot_and_finish_deploy_mock): + reboot_and_finish_deploy_mock, + set_boot_device_mock): self.node.instance_info = { 'capabilities': {'boot_option': 'local'}} @@ -923,6 +928,8 @@ class ISCSIDeployTestCase(db_base.DbTestCase): efi_system_part_uuid='efi-part-uuid') reboot_and_finish_deploy_mock.assert_called_once_with( task.driver.deploy, task) + set_boot_device_mock.assert_called_once_with( + mock.ANY, task, device=boot_devices.DISK, persistent=True) # Cleanup of iscsi_deploy with pxe boot interface @@ -932,11 +939,10 @@ class CleanUpFullFlowTestCase(db_base.DbTestCase): self.config(image_cache_size=0, group='pxe') # Configure node - self.config(enabled_drivers=['fake_pxe']) instance_info = INST_INFO_DICT instance_info['deploy_key'] = 'fake-56789' self.node = obj_utils.create_test_node( - self.context, driver='fake_pxe', + self.context, boot_interface='pxe', deploy_interface='iscsi', instance_info=instance_info, driver_info=DRV_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT, diff --git a/ironic/tests/unit/drivers/modules/test_pxe.py b/ironic/tests/unit/drivers/modules/test_pxe.py index 39bf7e1217..ba14c04d2b 100644 --- a/ironic/tests/unit/drivers/modules/test_pxe.py +++ b/ironic/tests/unit/drivers/modules/test_pxe.py @@ -56,12 +56,12 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase): def setUp(self): super(PXEPrivateMethodsTestCase, self).setUp() n = { - 'driver': 'fake_pxe', + 'driver': 'fake-hardware', + 'boot_interface': 'pxe', 'instance_info': INST_INFO_DICT, 'driver_info': DRV_INFO_DICT, 'driver_internal_info': DRV_INTERNAL_INFO_DICT, } - self.config(enabled_drivers=['fake_pxe']) self.config_temp_dir('http_root', group='deploy') self.node = obj_utils.create_test_node(self.context, **n) @@ -727,11 +727,10 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase): class CleanUpPxeEnvTestCase(db_base.DbTestCase): def setUp(self): super(CleanUpPxeEnvTestCase, self).setUp() - self.config(enabled_drivers=['fake_pxe']) instance_info = INST_INFO_DICT instance_info['deploy_key'] = 'fake-56789' self.node = obj_utils.create_test_node( - self.context, driver='fake_pxe', + self.context, boot_interface='pxe', instance_info=instance_info, driver_info=DRV_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT, @@ -751,7 +750,8 @@ class CleanUpPxeEnvTestCase(db_base.DbTestCase): @mock.patch.object(pxe.PXEBoot, '__init__', lambda self: None) class PXEBootTestCase(db_base.DbTestCase): - driver = 'fake_pxe' + driver = 'fake-hardware' + boot_interface = 'pxe' def setUp(self): super(PXEBootTestCase, self).setUp() @@ -759,12 +759,22 @@ class PXEBootTestCase(db_base.DbTestCase): self.config_temp_dir('tftp_root', group='pxe') self.config_temp_dir('images_path', group='pxe') self.config_temp_dir('http_root', group='deploy') - self.config(enabled_drivers=[self.driver]) instance_info = INST_INFO_DICT instance_info['deploy_key'] = 'fake-56789' + if self.driver != 'fake-hardware': + # TODO(dtantsur): remove this when removing the vendor classic + # drivers + self.config(enabled_drivers=[self.driver]) + self.node = obj_utils.create_test_node( self.context, driver=self.driver, + boot_interface=self.boot_interface, + # Avoid fake properties in get_properties() output + # TODO(dtantsur): remove the 'if' condition when removing + # the vendor classic drivers + vendor_interface=('no-vendor' if self.driver == 'fake-hardware' + else None), instance_info=instance_info, driver_info=DRV_INFO_DICT, driver_internal_info=DRV_INTERNAL_INFO_DICT) @@ -836,8 +846,8 @@ class PXEBootTestCase(db_base.DbTestCase): new_node = obj_utils.create_test_node( self.context, uuid='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', - driver=self.driver, instance_info=INST_INFO_DICT, - driver_info=DRV_INFO_DICT) + driver=self.driver, boot_interface=self.boot_interface, + instance_info=INST_INFO_DICT, driver_info=DRV_INFO_DICT) with task_manager.acquire(self.context, new_node.uuid, shared=True) as task: self.assertRaises(exception.MissingParameterValue, diff --git a/releasenotes/notes/no-fake-308b50d4ab83ca7a.yaml b/releasenotes/notes/no-fake-308b50d4ab83ca7a.yaml index e183949425..1a25f49701 100644 --- a/releasenotes/notes/no-fake-308b50d4ab83ca7a.yaml +++ b/releasenotes/notes/no-fake-308b50d4ab83ca7a.yaml @@ -1,5 +1,12 @@ --- upgrade: - | - The deprecated classic drivers ``fake`` and ``fake_soft_power`` were - removed. Please use the ``fake-hardware`` hardware type instead. + The following deprecated classic drivers were removed: + + * ``fake`` + * ``fake_agent`` + * ``fake_inspector`` + * ``fake_pxe`` + * ``fake_soft_power`` + + Please use the ``fake-hardware`` hardware type instead. diff --git a/setup.cfg b/setup.cfg index 735020679d..7b4eb9aec6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -59,11 +59,8 @@ ironic.drivers = agent_irmc = ironic.drivers.irmc:IRMCVirtualMediaAgentDriver agent_pxe_oneview = ironic.drivers.oneview:AgentPXEOneViewDriver agent_ucs = ironic.drivers.agent:AgentAndUcsDriver - fake_agent = ironic.drivers.fake:FakeAgentDriver - fake_inspector = ironic.drivers.fake:FakeIPMIToolInspectorDriver fake_ipmitool = ironic.drivers.fake:FakeIPMIToolDriver fake_ipmitool_socat = ironic.drivers.fake:FakeIPMIToolSocatDriver - fake_pxe = ironic.drivers.fake:FakePXEDriver fake_ilo = ironic.drivers.fake:FakeIloDriver fake_drac = ironic.drivers.fake:FakeDracDriver fake_snmp = ironic.drivers.fake:FakeSNMPDriver