Remove agent vendor passthru from most drivers

This patch removes the deprecated agent lookup/heartbeat as vendor
passthru functionality from most of the drivers in following modules:
- ironic.drivers.agent
- ironic.drivers.pxe
- ironic.drivers.drac
- ironic.drivers.irmc

Some drivers are left untouched though:
- iLO and OneView drivers are a bit more complicated and will be fixed
  in follow-up patches
- iBoot, WoL and AMT drivers will be fixed in ironic-staging-drivers
  repo first and then removed from ironic tree.

Change-Id: Ia9ee46cda68ef823d1fe8e5ea03c1d5948810a50
Partial-Bug: #1640533
This commit is contained in:
Pavlo Shchelokovskyy
2016-11-15 14:00:24 +02:00
committed by Pavlo Shchelokovskyy
parent 32942aedea
commit 206e246d25
8 changed files with 51 additions and 104 deletions

View File

@@ -32,7 +32,6 @@ from ironic.drivers.modules.ucs import management as ucs_mgmt
from ironic.drivers.modules.ucs import power as ucs_power from ironic.drivers.modules.ucs import power as ucs_power
from ironic.drivers.modules import virtualbox from ironic.drivers.modules import virtualbox
from ironic.drivers.modules import wol from ironic.drivers.modules import wol
from ironic.drivers import utils
class AgentAndIPMIToolDriver(base.BaseDriver): class AgentAndIPMIToolDriver(base.BaseDriver):
@@ -52,15 +51,7 @@ class AgentAndIPMIToolDriver(base.BaseDriver):
self.deploy = agent.AgentDeploy() self.deploy = agent.AgentDeploy()
self.management = ipmitool.IPMIManagement() self.management = ipmitool.IPMIManagement()
self.console = ipmitool.IPMIShellinaboxConsole() self.console = ipmitool.IPMIShellinaboxConsole()
self.agent_vendor = agent.AgentVendorInterface() self.vendor = ipmitool.VendorPassthru()
self.ipmi_vendor = ipmitool.VendorPassthru()
self.mapping = {'send_raw': self.ipmi_vendor,
'bmc_reset': self.ipmi_vendor,
'heartbeat': self.agent_vendor}
self.driver_passthru_mapping = {'lookup': self.agent_vendor}
self.vendor = utils.MixinVendorInterface(
self.mapping,
driver_passthru_mapping=self.driver_passthru_mapping)
self.raid = agent.AgentRAID() self.raid = agent.AgentRAID()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'AgentAndIPMIToolDriver') 'AgentAndIPMIToolDriver')
@@ -105,16 +96,7 @@ class AgentAndIPMINativeDriver(base.BaseDriver):
self.deploy = agent.AgentDeploy() self.deploy = agent.AgentDeploy()
self.management = ipminative.NativeIPMIManagement() self.management = ipminative.NativeIPMIManagement()
self.console = ipminative.NativeIPMIShellinaboxConsole() self.console = ipminative.NativeIPMIShellinaboxConsole()
self.agent_vendor = agent.AgentVendorInterface() self.vendor = ipminative.VendorPassthru()
self.ipminative_vendor = ipminative.VendorPassthru()
self.mapping = {
'send_raw': self.ipminative_vendor,
'bmc_reset': self.ipminative_vendor,
'heartbeat': self.agent_vendor,
}
self.driver_passthru_mapping = {'lookup': self.agent_vendor}
self.vendor = utils.MixinVendorInterface(self.mapping,
self.driver_passthru_mapping)
self.raid = agent.AgentRAID() self.raid = agent.AgentRAID()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'AgentAndIPMINativeDriver') 'AgentAndIPMINativeDriver')
@@ -140,7 +122,6 @@ class AgentAndSSHDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = agent.AgentDeploy() self.deploy = agent.AgentDeploy()
self.management = ssh.SSHManagement() self.management = ssh.SSHManagement()
self.vendor = agent.AgentVendorInterface()
self.raid = agent.AgentRAID() self.raid = agent.AgentRAID()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'AgentAndSSHDriver') 'AgentAndSSHDriver')
@@ -171,7 +152,6 @@ class AgentAndVirtualBoxDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = agent.AgentDeploy() self.deploy = agent.AgentDeploy()
self.management = virtualbox.VirtualBoxManagement() self.management = virtualbox.VirtualBoxManagement()
self.vendor = agent.AgentVendorInterface()
self.raid = agent.AgentRAID() self.raid = agent.AgentRAID()
@@ -219,7 +199,6 @@ class AgentAndUcsDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = agent.AgentDeploy() self.deploy = agent.AgentDeploy()
self.management = ucs_mgmt.UcsManagement() self.management = ucs_mgmt.UcsManagement()
self.vendor = agent.AgentVendorInterface()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'AgentAndUcsDriver') 'AgentAndUcsDriver')
@@ -244,7 +223,6 @@ class AgentAndCIMCDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = agent.AgentDeploy() self.deploy = agent.AgentDeploy()
self.management = cimc_mgmt.CIMCManagement() self.management = cimc_mgmt.CIMCManagement()
self.vendor = agent.AgentVendorInterface()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'AgentAndCIMCDriver') 'AgentAndCIMCDriver')

View File

@@ -27,9 +27,7 @@ from ironic.drivers.modules.drac import power
from ironic.drivers.modules.drac import raid from ironic.drivers.modules.drac import raid
from ironic.drivers.modules.drac import vendor_passthru from ironic.drivers.modules.drac import vendor_passthru
from ironic.drivers.modules import inspector from ironic.drivers.modules import inspector
from ironic.drivers.modules import iscsi_deploy
from ironic.drivers.modules import pxe from ironic.drivers.modules import pxe
from ironic.drivers import utils
class PXEDracDriver(base.BaseDriver): class PXEDracDriver(base.BaseDriver):
@@ -46,18 +44,7 @@ class PXEDracDriver(base.BaseDriver):
self.deploy = deploy.DracDeploy() self.deploy = deploy.DracDeploy()
self.management = management.DracManagement() self.management = management.DracManagement()
self.raid = raid.DracRAID() self.raid = raid.DracRAID()
self.iscsi_vendor = iscsi_deploy.VendorPassthru() self.vendor = vendor_passthru.DracVendorPassthru()
self.drac_vendor = vendor_passthru.DracVendorPassthru()
self.mapping = {'heartbeat': self.iscsi_vendor,
'get_bios_config': self.drac_vendor,
'set_bios_config': self.drac_vendor,
'commit_bios_config': self.drac_vendor,
'abandon_bios_config': self.drac_vendor,
'list_unfinished_jobs': self.drac_vendor,
}
self.driver_passthru_mapping = {'lookup': self.iscsi_vendor}
self.vendor = utils.MixinVendorInterface(self.mapping,
self.driver_passthru_mapping)
self.inspect = drac_inspect.DracInspect() self.inspect = drac_inspect.DracInspect()

View File

@@ -50,7 +50,6 @@ class IRMCVirtualMediaIscsiDriver(base.BaseDriver):
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.console = ipmitool.IPMIShellinaboxConsole() self.console = ipmitool.IPMIShellinaboxConsole()
self.management = management.IRMCManagement() self.management = management.IRMCManagement()
self.vendor = iscsi_deploy.VendorPassthru()
self.inspect = inspect.IRMCInspect() self.inspect = inspect.IRMCInspect()
@@ -75,5 +74,4 @@ class IRMCVirtualMediaAgentDriver(base.BaseDriver):
self.deploy = agent.AgentDeploy() self.deploy = agent.AgentDeploy()
self.console = ipmitool.IPMIShellinaboxConsole() self.console = ipmitool.IPMIShellinaboxConsole()
self.management = management.IRMCManagement() self.management = management.IRMCManagement()
self.vendor = agent.AgentVendorInterface()
self.inspect = inspect.IRMCInspect() self.inspect = inspect.IRMCInspect()

View File

@@ -52,7 +52,6 @@ from ironic.drivers.modules.ucs import management as ucs_mgmt
from ironic.drivers.modules.ucs import power as ucs_power from ironic.drivers.modules.ucs import power as ucs_power
from ironic.drivers.modules import virtualbox from ironic.drivers.modules import virtualbox
from ironic.drivers.modules import wol from ironic.drivers.modules import wol
from ironic.drivers import utils
class PXEAndIPMIToolDriver(base.BaseDriver): class PXEAndIPMIToolDriver(base.BaseDriver):
@@ -73,15 +72,7 @@ class PXEAndIPMIToolDriver(base.BaseDriver):
self.management = ipmitool.IPMIManagement() self.management = ipmitool.IPMIManagement()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'PXEAndIPMIToolDriver') 'PXEAndIPMIToolDriver')
self.iscsi_vendor = iscsi_deploy.VendorPassthru() self.vendor = ipmitool.VendorPassthru()
self.ipmi_vendor = ipmitool.VendorPassthru()
self.mapping = {'send_raw': self.ipmi_vendor,
'bmc_reset': self.ipmi_vendor,
'heartbeat': self.iscsi_vendor}
self.driver_passthru_mapping = {'lookup': self.iscsi_vendor}
self.vendor = utils.MixinVendorInterface(
self.mapping,
driver_passthru_mapping=self.driver_passthru_mapping)
self.raid = agent.AgentRAID() self.raid = agent.AgentRAID()
@@ -124,7 +115,6 @@ class PXEAndSSHDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.management = ssh.SSHManagement() self.management = ssh.SSHManagement()
self.vendor = iscsi_deploy.VendorPassthru()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'PXEAndSSHDriver') 'PXEAndSSHDriver')
self.raid = agent.AgentRAID() self.raid = agent.AgentRAID()
@@ -154,16 +144,7 @@ class PXEAndIPMINativeDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.management = ipminative.NativeIPMIManagement() self.management = ipminative.NativeIPMIManagement()
self.iscsi_vendor = iscsi_deploy.VendorPassthru() self.vendor = ipminative.VendorPassthru()
self.ipminative_vendor = ipminative.VendorPassthru()
self.mapping = {
'send_raw': self.ipminative_vendor,
'bmc_reset': self.ipminative_vendor,
'heartbeat': self.iscsi_vendor,
}
self.driver_passthru_mapping = {'lookup': self.iscsi_vendor}
self.vendor = utils.MixinVendorInterface(self.mapping,
self.driver_passthru_mapping)
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'PXEAndIPMINativeDriver') 'PXEAndIPMINativeDriver')
self.raid = agent.AgentRAID() self.raid = agent.AgentRAID()
@@ -191,14 +172,7 @@ class PXEAndSeaMicroDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.management = seamicro.Management() self.management = seamicro.Management()
self.seamicro_vendor = seamicro.VendorPassthru() self.vendor = seamicro.VendorPassthru()
self.iscsi_vendor = iscsi_deploy.VendorPassthru()
self.mapping = {'heartbeat': self.iscsi_vendor,
'attach_volume': self.seamicro_vendor,
'set_node_vlan_id': self.seamicro_vendor}
self.driver_passthru_mapping = {'lookup': self.iscsi_vendor}
self.vendor = utils.MixinVendorInterface(self.mapping,
self.driver_passthru_mapping)
self.console = seamicro.ShellinaboxConsole() self.console = seamicro.ShellinaboxConsole()
@@ -271,7 +245,6 @@ class PXEAndSNMPDriver(base.BaseDriver):
self.power = snmp.SNMPPower() self.power = snmp.SNMPPower()
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.vendor = iscsi_deploy.VendorPassthru()
# PDUs have no boot device management capability. # PDUs have no boot device management capability.
# Only PXE as a boot device is supported. # Only PXE as a boot device is supported.
@@ -296,7 +269,6 @@ class PXEAndIRMCDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.management = irmc_management.IRMCManagement() self.management = irmc_management.IRMCManagement()
self.vendor = iscsi_deploy.VendorPassthru()
self.inspect = irmc_inspect.IRMCInspect() self.inspect = irmc_inspect.IRMCInspect()
@@ -324,7 +296,6 @@ class PXEAndVirtualBoxDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.management = virtualbox.VirtualBoxManagement() self.management = virtualbox.VirtualBoxManagement()
self.vendor = iscsi_deploy.VendorPassthru()
self.raid = agent.AgentRAID() self.raid = agent.AgentRAID()
@@ -369,7 +340,6 @@ class PXEAndMSFTOCSDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.management = msftocs_management.MSFTOCSManagement() self.management = msftocs_management.MSFTOCSManagement()
self.vendor = iscsi_deploy.VendorPassthru()
class PXEAndUcsDriver(base.BaseDriver): class PXEAndUcsDriver(base.BaseDriver):
@@ -391,7 +361,6 @@ class PXEAndUcsDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.management = ucs_mgmt.UcsManagement() self.management = ucs_mgmt.UcsManagement()
self.vendor = iscsi_deploy.VendorPassthru()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'PXEAndUcsDriver') 'PXEAndUcsDriver')
@@ -415,7 +384,6 @@ class PXEAndCIMCDriver(base.BaseDriver):
self.boot = pxe.PXEBoot() self.boot = pxe.PXEBoot()
self.deploy = iscsi_deploy.ISCSIDeploy() self.deploy = iscsi_deploy.ISCSIDeploy()
self.management = cimc_mgmt.CIMCManagement() self.management = cimc_mgmt.CIMCManagement()
self.vendor = iscsi_deploy.VendorPassthru()
self.inspect = inspector.Inspector.create_if_enabled( self.inspect = inspector.Inspector.create_if_enabled(
'PXEAndCIMCDriver') 'PXEAndCIMCDriver')

View File

@@ -28,7 +28,6 @@ from ironic.drivers.modules import iboot
from ironic.drivers.modules import ipmitool from ironic.drivers.modules import ipmitool
from ironic.drivers.modules import pxe from ironic.drivers.modules import pxe
from ironic.drivers.modules import wol from ironic.drivers.modules import wol
from ironic.drivers import utils
from ironic.tests import base from ironic.tests import base
@@ -42,10 +41,7 @@ class AgentAndIPMIToolDriverTestCase(base.TestCase):
self.assertIsInstance(driver.boot, pxe.PXEBoot) self.assertIsInstance(driver.boot, pxe.PXEBoot)
self.assertIsInstance(driver.deploy, agent_module.AgentDeploy) self.assertIsInstance(driver.deploy, agent_module.AgentDeploy)
self.assertIsInstance(driver.management, ipmitool.IPMIManagement) self.assertIsInstance(driver.management, ipmitool.IPMIManagement)
self.assertIsInstance(driver.agent_vendor, self.assertIsInstance(driver.vendor, ipmitool.VendorPassthru)
agent_module.AgentVendorInterface)
self.assertIsInstance(driver.ipmi_vendor, ipmitool.VendorPassthru)
self.assertIsInstance(driver.vendor, utils.MixinVendorInterface)
self.assertIsInstance(driver.raid, agent_module.AgentRAID) self.assertIsInstance(driver.raid, agent_module.AgentRAID)
@@ -59,10 +55,7 @@ class AgentAndIPMIToolAndSocatDriverTestCase(base.TestCase):
self.assertIsInstance(driver.boot, pxe.PXEBoot) self.assertIsInstance(driver.boot, pxe.PXEBoot)
self.assertIsInstance(driver.deploy, agent_module.AgentDeploy) self.assertIsInstance(driver.deploy, agent_module.AgentDeploy)
self.assertIsInstance(driver.management, ipmitool.IPMIManagement) self.assertIsInstance(driver.management, ipmitool.IPMIManagement)
self.assertIsInstance(driver.agent_vendor, self.assertIsInstance(driver.vendor, ipmitool.VendorPassthru)
agent_module.AgentVendorInterface)
self.assertIsInstance(driver.ipmi_vendor, ipmitool.VendorPassthru)
self.assertIsInstance(driver.vendor, utils.MixinVendorInterface)
self.assertIsInstance(driver.raid, agent_module.AgentRAID) self.assertIsInstance(driver.raid, agent_module.AgentRAID)

View File

@@ -48,7 +48,6 @@ class IRMCVirtualMediaIscsiTestCase(testtools.TestCase):
irmc.ipmitool.IPMIShellinaboxConsole) irmc.ipmitool.IPMIShellinaboxConsole)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
irmc.management.IRMCManagement) irmc.management.IRMCManagement)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru)
self.assertIsInstance(driver.inspect, irmc.inspect.IRMCInspect) self.assertIsInstance(driver.inspect, irmc.inspect.IRMCInspect)
@mock.patch.object(irmc.importutils, 'try_import') @mock.patch.object(irmc.importutils, 'try_import')
@@ -91,7 +90,6 @@ class IRMCVirtualMediaAgentTestCase(testtools.TestCase):
irmc.ipmitool.IPMIShellinaboxConsole) irmc.ipmitool.IPMIShellinaboxConsole)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
irmc.management.IRMCManagement) irmc.management.IRMCManagement)
self.assertIsInstance(driver.vendor, irmc.agent.AgentVendorInterface)
self.assertIsInstance(driver.inspect, irmc.inspect.IRMCInspect) self.assertIsInstance(driver.inspect, irmc.inspect.IRMCInspect)
@mock.patch.object(irmc.importutils, 'try_import') @mock.patch.object(irmc.importutils, 'try_import')

View File

@@ -31,6 +31,7 @@ from ironic.drivers.modules.ilo import console as ilo_console
from ironic.drivers.modules.ilo import inspect as ilo_inspect 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 management as ilo_management
from ironic.drivers.modules.ilo import power as ilo_power from ironic.drivers.modules.ilo import power as ilo_power
from ironic.drivers.modules.ilo import vendor as ilo_vendor
from ironic.drivers.modules import ipminative from ironic.drivers.modules import ipminative
from ironic.drivers.modules import ipmitool from ironic.drivers.modules import ipmitool
from ironic.drivers.modules.irmc import management as irmc_management from ironic.drivers.modules.irmc import management as irmc_management
@@ -47,7 +48,6 @@ from ironic.drivers.modules.ucs import power as ucs_power
from ironic.drivers.modules import virtualbox from ironic.drivers.modules import virtualbox
from ironic.drivers.modules import wol from ironic.drivers.modules import wol
from ironic.drivers import pxe from ironic.drivers import pxe
from ironic.drivers import utils
class PXEDriversTestCase(testtools.TestCase): class PXEDriversTestCase(testtools.TestCase):
@@ -61,8 +61,7 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, ipmitool.IPMIManagement) self.assertIsInstance(driver.management, ipmitool.IPMIManagement)
self.assertIsNone(driver.inspect) self.assertIsNone(driver.inspect)
# TODO(rameshg87): Need better way of asserting the routes. self.assertIsInstance(driver.vendor, ipmitool.VendorPassthru)
self.assertIsInstance(driver.vendor, utils.MixinVendorInterface)
self.assertIsInstance(driver.raid, agent.AgentRAID) self.assertIsInstance(driver.raid, agent.AgentRAID)
def test_pxe_ipmitool_socat_driver(self): def test_pxe_ipmitool_socat_driver(self):
@@ -74,8 +73,7 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, ipmitool.IPMIManagement) self.assertIsInstance(driver.management, ipmitool.IPMIManagement)
self.assertIsNone(driver.inspect) self.assertIsNone(driver.inspect)
# TODO(rameshg87): Need better way of asserting the routes. self.assertIsInstance(driver.vendor, ipmitool.VendorPassthru)
self.assertIsInstance(driver.vendor, utils.MixinVendorInterface)
self.assertIsInstance(driver.raid, agent.AgentRAID) self.assertIsInstance(driver.raid, agent.AgentRAID)
def test_pxe_ssh_driver(self): def test_pxe_ssh_driver(self):
@@ -85,7 +83,6 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.boot, pxe_module.PXEBoot) self.assertIsInstance(driver.boot, pxe_module.PXEBoot)
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, ssh.SSHManagement) self.assertIsInstance(driver.management, ssh.SSHManagement)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru)
self.assertIsNone(driver.inspect) self.assertIsNone(driver.inspect)
self.assertIsInstance(driver.raid, agent.AgentRAID) self.assertIsInstance(driver.raid, agent.AgentRAID)
@@ -103,8 +100,7 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
ipminative.NativeIPMIManagement) ipminative.NativeIPMIManagement)
# TODO(rameshg87): Need better way of asserting the routes. self.assertIsInstance(driver.vendor, ipminative.VendorPassthru)
self.assertIsInstance(driver.vendor, utils.MixinVendorInterface)
self.assertIsNone(driver.inspect) self.assertIsNone(driver.inspect)
self.assertIsInstance(driver.raid, agent.AgentRAID) self.assertIsInstance(driver.raid, agent.AgentRAID)
@@ -127,9 +123,7 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.boot, pxe_module.PXEBoot) self.assertIsInstance(driver.boot, pxe_module.PXEBoot)
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, seamicro.Management) self.assertIsInstance(driver.management, seamicro.Management)
self.assertIsInstance(driver.seamicro_vendor, seamicro.VendorPassthru) self.assertIsInstance(driver.vendor, seamicro.VendorPassthru)
self.assertIsInstance(driver.iscsi_vendor, iscsi_deploy.VendorPassthru)
self.assertIsInstance(driver.vendor, utils.MixinVendorInterface)
self.assertIsInstance(driver.console, seamicro.ShellinaboxConsole) self.assertIsInstance(driver.console, seamicro.ShellinaboxConsole)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True, @mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
@@ -170,7 +164,7 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.power, ilo_power.IloPower) self.assertIsInstance(driver.power, ilo_power.IloPower)
self.assertIsInstance(driver.boot, pxe_module.PXEBoot) self.assertIsInstance(driver.boot, pxe_module.PXEBoot)
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru) self.assertIsInstance(driver.vendor, ilo_vendor.VendorPassthru)
self.assertIsInstance(driver.console, self.assertIsInstance(driver.console,
ilo_console.IloConsoleInterface) ilo_console.IloConsoleInterface)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
@@ -196,7 +190,6 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.power, snmp.SNMPPower) self.assertIsInstance(driver.power, snmp.SNMPPower)
self.assertIsInstance(driver.boot, pxe_module.PXEBoot) self.assertIsInstance(driver.boot, pxe_module.PXEBoot)
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru)
self.assertIsNone(driver.management) self.assertIsNone(driver.management)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True, @mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
@@ -220,7 +213,6 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
irmc_management.IRMCManagement) irmc_management.IRMCManagement)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True, @mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
autospec=True) autospec=True)
@@ -242,7 +234,6 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
virtualbox.VirtualBoxManagement) virtualbox.VirtualBoxManagement)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru)
self.assertIsInstance(driver.raid, agent.AgentRAID) self.assertIsInstance(driver.raid, agent.AgentRAID)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True, @mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
@@ -287,7 +278,6 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
msftocs_management.MSFTOCSManagement) msftocs_management.MSFTOCSManagement)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True, @mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
autospec=True) autospec=True)
@@ -301,7 +291,6 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
ucs_management.UcsManagement) ucs_management.UcsManagement)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True, @mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
autospec=True) autospec=True)
@@ -323,7 +312,6 @@ class PXEDriversTestCase(testtools.TestCase):
self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy) self.assertIsInstance(driver.deploy, iscsi_deploy.ISCSIDeploy)
self.assertIsInstance(driver.management, self.assertIsInstance(driver.management,
cimc_management.CIMCManagement) cimc_management.CIMCManagement)
self.assertIsInstance(driver.vendor, iscsi_deploy.VendorPassthru)
@mock.patch.object(pxe.importutils, 'try_import', spec_set=True, @mock.patch.object(pxe.importutils, 'try_import', spec_set=True,
autospec=True) autospec=True)

View File

@@ -0,0 +1,37 @@
---
features:
- |
Agent lookup/heartbeat as vendor passthru is removed from most of
in-tree ironic drivers. Affected drivers are
* agent_ipmitool
* agent_ipmitool_socat
* agent_ipminative
* agent_irmc
* agent_ssh
* agent_vbox
* agent_ucs
* pxe_agent_cimc
* pxe_ipmitool
* pxe_ipmitool_socat
* pxe_ssh
* pxe_ipminative
* pxe_seamicro
* pxe_snmp
* pxe_irmc
* pxe_vbox
* pxe_msftocs
* pxe_ucs
* pxe_iscsi_cimc
* pxe_drac
* pxe_drac_inspector
* iscsi_irmc
All the other vendor passthru methods are left in place if the
driver had them.
upgrade:
- Agent lookup/heartbeat as vendor passthru is removed from ironic.
That means that most in-tree drivers relying on Ironic Python Agent (IPA)
lookup/heartbeat functionality become incompatible with IPA < 1.5.0.
Operators are required to update their IPA-based deploy ramdisks to
contain IPA >= 1.5.0.