Merge "Add rescue_interface to node and driver"
This commit is contained in:
commit
33e54ab3bd
|
@ -397,6 +397,12 @@ class CreateBaremetalNode(command.ShowOne):
|
|||
help=_('RAID interface used by the node\'s driver. This is '
|
||||
'only applicable when the specified --driver is a '
|
||||
'hardware type.'))
|
||||
parser.add_argument(
|
||||
'--rescue-interface',
|
||||
metavar='<rescue_interface>',
|
||||
help=_('Rescue interface used by the node\'s driver. This is '
|
||||
'only applicable when the specified --driver is a '
|
||||
'hardware type.'))
|
||||
parser.add_argument(
|
||||
'--storage-interface',
|
||||
metavar='<storage_interface>',
|
||||
|
@ -425,8 +431,8 @@ class CreateBaremetalNode(command.ShowOne):
|
|||
'deploy_interface', 'inspect_interface',
|
||||
'management_interface', 'network_interface',
|
||||
'power_interface', 'raid_interface',
|
||||
'storage_interface', 'vendor_interface',
|
||||
'resource_class']
|
||||
'rescue_interface', 'storage_interface',
|
||||
'vendor_interface', 'resource_class']
|
||||
fields = dict((k, v) for (k, v) in vars(parsed_args).items()
|
||||
if k in field_list and not (v is None))
|
||||
fields = utils.args_array_to_dict(fields, 'driver_info')
|
||||
|
@ -1020,6 +1026,11 @@ class SetBaremetalNode(command.Command):
|
|||
metavar='<raid_interface>',
|
||||
help=_('Set the RAID interface for the node'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'--rescue-interface',
|
||||
metavar='<rescue_interface>',
|
||||
help=_('Set the rescue interface for the node'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'--storage-interface',
|
||||
metavar='<storage_interface>',
|
||||
|
@ -1147,6 +1158,11 @@ class SetBaremetalNode(command.Command):
|
|||
"raid_interface=%s" % parsed_args.raid_interface]
|
||||
properties.extend(utils.args_array_to_patch(
|
||||
'add', raid_interface))
|
||||
if parsed_args.rescue_interface:
|
||||
rescue_interface = [
|
||||
"rescue_interface=%s" % parsed_args.rescue_interface]
|
||||
properties.extend(utils.args_array_to_patch(
|
||||
'add', rescue_interface))
|
||||
if parsed_args.storage_interface:
|
||||
storage_interface = [
|
||||
"storage_interface=%s" % parsed_args.storage_interface]
|
||||
|
@ -1365,6 +1381,12 @@ class UnsetBaremetalNode(command.Command):
|
|||
action='store_true',
|
||||
help=_('Unset RAID interface on this baremetal node'),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--rescue-interface",
|
||||
dest='rescue_interface',
|
||||
action='store_true',
|
||||
help=_('Unset rescue interface on this baremetal node'),
|
||||
)
|
||||
parser.add_argument(
|
||||
"--storage-interface",
|
||||
dest='storage_interface',
|
||||
|
@ -1443,6 +1465,9 @@ class UnsetBaremetalNode(command.Command):
|
|||
if parsed_args.raid_interface:
|
||||
properties.extend(utils.args_array_to_patch('remove',
|
||||
['raid_interface']))
|
||||
if parsed_args.rescue_interface:
|
||||
properties.extend(utils.args_array_to_patch('remove',
|
||||
['rescue_interface']))
|
||||
if parsed_args.storage_interface:
|
||||
properties.extend(utils.args_array_to_patch('remove',
|
||||
['storage_interface']))
|
||||
|
|
|
@ -72,6 +72,7 @@ baremetal_driver_default_management_if = 'management'
|
|||
baremetal_driver_default_network_if = 'network'
|
||||
baremetal_driver_default_power_if = 'power'
|
||||
baremetal_driver_default_raid_if = 'raid'
|
||||
baremetal_driver_default_rescue_if = 'rescue'
|
||||
baremetal_driver_default_storage_if = 'storage'
|
||||
baremetal_driver_default_vendor_if = 'vendor'
|
||||
baremetal_driver_enabled_boot_ifs = ['boot', 'boot2']
|
||||
|
@ -82,6 +83,7 @@ baremetal_driver_enabled_management_ifs = ['management', 'management2']
|
|||
baremetal_driver_enabled_network_ifs = ['network', 'network2']
|
||||
baremetal_driver_enabled_power_ifs = ['power', 'power2']
|
||||
baremetal_driver_enabled_raid_ifs = ['raid', 'raid2']
|
||||
baremetal_driver_enabled_rescue_ifs = ['rescue', 'rescue2']
|
||||
baremetal_driver_enabled_storage_ifs = ['storage', 'storage2']
|
||||
baremetal_driver_enabled_vendor_ifs = ['vendor', 'vendor2']
|
||||
|
||||
|
@ -97,6 +99,7 @@ BAREMETAL_DRIVER = {
|
|||
'default_network_interface': baremetal_driver_default_network_if,
|
||||
'default_power_interface': baremetal_driver_default_power_if,
|
||||
'default_raid_interface': baremetal_driver_default_raid_if,
|
||||
'default_rescue_interface': baremetal_driver_default_rescue_if,
|
||||
'default_storage_interface': baremetal_driver_default_storage_if,
|
||||
'default_vendor_interface': baremetal_driver_default_vendor_if,
|
||||
'enabled_boot_interfaces': baremetal_driver_enabled_boot_ifs,
|
||||
|
@ -107,6 +110,7 @@ BAREMETAL_DRIVER = {
|
|||
'enabled_network_interfaces': baremetal_driver_enabled_network_ifs,
|
||||
'enabled_power_interfaces': baremetal_driver_enabled_power_ifs,
|
||||
'enabled_raid_interfaces': baremetal_driver_enabled_raid_ifs,
|
||||
'enabled_rescue_interfaces': baremetal_driver_enabled_rescue_ifs,
|
||||
'enabled_storage_interfaces': baremetal_driver_enabled_storage_ifs,
|
||||
'enabled_vendor_interfaces': baremetal_driver_enabled_vendor_ifs,
|
||||
}
|
||||
|
|
|
@ -96,6 +96,7 @@ class TestListBaremetalDriver(TestBaremetalDriver):
|
|||
'Default Network Interface',
|
||||
'Default Power Interface',
|
||||
'Default RAID Interface',
|
||||
'Default Rescue Interface',
|
||||
'Default Storage Interface',
|
||||
'Default Vendor Interface',
|
||||
'Enabled Boot Interfaces',
|
||||
|
@ -106,6 +107,7 @@ class TestListBaremetalDriver(TestBaremetalDriver):
|
|||
'Enabled Network Interfaces',
|
||||
'Enabled Power Interfaces',
|
||||
'Enabled RAID Interfaces',
|
||||
'Enabled Rescue Interfaces',
|
||||
'Enabled Storage Interfaces',
|
||||
'Enabled Vendor Interfaces'
|
||||
)
|
||||
|
@ -123,6 +125,7 @@ class TestListBaremetalDriver(TestBaremetalDriver):
|
|||
baremetal_fakes.baremetal_driver_default_network_if,
|
||||
baremetal_fakes.baremetal_driver_default_power_if,
|
||||
baremetal_fakes.baremetal_driver_default_raid_if,
|
||||
baremetal_fakes.baremetal_driver_default_rescue_if,
|
||||
baremetal_fakes.baremetal_driver_default_storage_if,
|
||||
baremetal_fakes.baremetal_driver_default_vendor_if,
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_boot_ifs),
|
||||
|
@ -133,6 +136,7 @@ class TestListBaremetalDriver(TestBaremetalDriver):
|
|||
', '.join(baremetal_fakes.baremetal_driver_enabled_network_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_power_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_raid_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_rescue_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_storage_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_vendor_ifs),
|
||||
),)
|
||||
|
@ -361,13 +365,15 @@ class TestShowBaremetalDriver(TestBaremetalDriver):
|
|||
'default_deploy_interface', 'default_inspect_interface',
|
||||
'default_management_interface', 'default_network_interface',
|
||||
'default_power_interface', 'default_raid_interface',
|
||||
'default_storage_interface', 'default_vendor_interface',
|
||||
'default_rescue_interface', 'default_storage_interface',
|
||||
'default_vendor_interface',
|
||||
'enabled_boot_interfaces', 'enabled_console_interfaces',
|
||||
'enabled_deploy_interfaces', 'enabled_inspect_interfaces',
|
||||
'enabled_management_interfaces',
|
||||
'enabled_network_interfaces', 'enabled_power_interfaces',
|
||||
'enabled_raid_interfaces', 'enabled_storage_interfaces',
|
||||
'enabled_vendor_interfaces', 'hosts', 'name', 'type')
|
||||
'enabled_raid_interfaces', 'enabled_rescue_interfaces',
|
||||
'enabled_storage_interfaces', 'enabled_vendor_interfaces',
|
||||
'hosts', 'name', 'type')
|
||||
self.assertEqual(collist, columns)
|
||||
|
||||
datalist = (
|
||||
|
@ -379,6 +385,7 @@ class TestShowBaremetalDriver(TestBaremetalDriver):
|
|||
baremetal_fakes.baremetal_driver_default_network_if,
|
||||
baremetal_fakes.baremetal_driver_default_power_if,
|
||||
baremetal_fakes.baremetal_driver_default_raid_if,
|
||||
baremetal_fakes.baremetal_driver_default_rescue_if,
|
||||
baremetal_fakes.baremetal_driver_default_storage_if,
|
||||
baremetal_fakes.baremetal_driver_default_vendor_if,
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_boot_ifs),
|
||||
|
@ -389,6 +396,7 @@ class TestShowBaremetalDriver(TestBaremetalDriver):
|
|||
', '.join(baremetal_fakes.baremetal_driver_enabled_network_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_power_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_raid_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_rescue_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_storage_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_enabled_vendor_ifs),
|
||||
', '.join(baremetal_fakes.baremetal_driver_hosts),
|
||||
|
|
|
@ -425,6 +425,11 @@ class TestBaremetalCreate(TestBaremetal):
|
|||
[('raid_interface', 'raid')],
|
||||
{'raid_interface': 'raid'})
|
||||
|
||||
def test_baremetal_create_with_rescue_interface(self):
|
||||
self.check_with_options(['--rescue-interface', 'rescue'],
|
||||
[('rescue_interface', 'rescue')],
|
||||
{'rescue_interface': 'rescue'})
|
||||
|
||||
def test_baremetal_create_with_storage_interface(self):
|
||||
self.check_with_options(['--storage-interface', 'storage'],
|
||||
[('storage_interface', 'storage')],
|
||||
|
@ -599,7 +604,8 @@ class TestBaremetalList(TestBaremetal):
|
|||
'Deploy Interface', 'Inspect Interface',
|
||||
'Management Interface', 'Network Interface',
|
||||
'Power Interface', 'RAID Interface',
|
||||
'Storage Interface', 'Vendor Interface')
|
||||
'Rescue Interface', 'Storage Interface',
|
||||
'Vendor Interface')
|
||||
self.assertEqual(collist, columns)
|
||||
datalist = ((
|
||||
'',
|
||||
|
@ -641,6 +647,7 @@ class TestBaremetalList(TestBaremetal):
|
|||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
), )
|
||||
self.assertEqual(datalist, tuple(data))
|
||||
|
||||
|
@ -2031,6 +2038,9 @@ class TestBaremetalSet(TestBaremetal):
|
|||
def test_baremetal_set_raid_interface(self):
|
||||
self._test_baremetal_set_hardware_interface('raid')
|
||||
|
||||
def test_baremetal_set_rescue_interface(self):
|
||||
self._test_baremetal_set_hardware_interface('rescue')
|
||||
|
||||
def test_baremetal_set_storage_interface(self):
|
||||
self._test_baremetal_set_hardware_interface('storage')
|
||||
|
||||
|
@ -2649,6 +2659,9 @@ class TestBaremetalUnset(TestBaremetal):
|
|||
def test_baremetal_unset_raid_interface(self):
|
||||
self._test_baremetal_unset_hw_interface('raid')
|
||||
|
||||
def test_baremetal_unset_rescue_interface(self):
|
||||
self._test_baremetal_unset_hw_interface('rescue')
|
||||
|
||||
def test_baremetal_unset_storage_interface(self):
|
||||
self._test_baremetal_unset_hw_interface('storage')
|
||||
|
||||
|
|
|
@ -39,12 +39,14 @@ class DriverShellTest(utils.BaseTestCase):
|
|||
'default_deploy_interface', 'default_inspect_interface',
|
||||
'default_management_interface', 'default_network_interface',
|
||||
'default_power_interface', 'default_raid_interface',
|
||||
'default_storage_interface', 'default_vendor_interface',
|
||||
'default_rescue_interface', 'default_storage_interface',
|
||||
'default_vendor_interface',
|
||||
'enabled_boot_interfaces', 'enabled_console_interfaces',
|
||||
'enabled_deploy_interfaces', 'enabled_inspect_interfaces',
|
||||
'enabled_management_interfaces', 'enabled_network_interfaces',
|
||||
'enabled_power_interfaces', 'enabled_raid_interfaces',
|
||||
'enabled_storage_interfaces', 'enabled_vendor_interfaces']
|
||||
'enabled_rescue_interfaces', 'enabled_storage_interfaces',
|
||||
'enabled_vendor_interfaces']
|
||||
act = actual.keys()
|
||||
self.assertEqual(sorted(exp), sorted(act))
|
||||
|
||||
|
|
|
@ -55,6 +55,7 @@ class NodeShellTest(utils.BaseTestCase):
|
|||
'network_interface',
|
||||
'power_interface',
|
||||
'raid_interface',
|
||||
'rescue_interface',
|
||||
'storage_interface',
|
||||
'vendor_interface',
|
||||
'power_state',
|
||||
|
|
|
@ -51,8 +51,8 @@ class NodeManager(base.CreateManager):
|
|||
'deploy_interface', 'inspect_interface',
|
||||
'management_interface', 'network_interface',
|
||||
'power_interface', 'raid_interface',
|
||||
'storage_interface', 'vendor_interface',
|
||||
'resource_class']
|
||||
'rescue_interface', 'storage_interface',
|
||||
'vendor_interface', 'resource_class']
|
||||
_resource_name = 'nodes'
|
||||
|
||||
def list(self, associated=None, maintenance=None, marker=None, limit=None,
|
||||
|
|
|
@ -47,6 +47,7 @@ class Resource(object):
|
|||
'default_network_interface': 'Default Network Interface',
|
||||
'default_power_interface': 'Default Power Interface',
|
||||
'default_raid_interface': 'Default RAID Interface',
|
||||
'default_rescue_interface': 'Default Rescue Interface',
|
||||
'default_storage_interface': 'Default Storage Interface',
|
||||
'default_vendor_interface': 'Default Vendor Interface',
|
||||
'description': 'Description',
|
||||
|
@ -61,6 +62,7 @@ class Resource(object):
|
|||
'enabled_network_interfaces': 'Enabled Network Interfaces',
|
||||
'enabled_power_interfaces': 'Enabled Power Interfaces',
|
||||
'enabled_raid_interfaces': 'Enabled RAID Interfaces',
|
||||
'enabled_rescue_interfaces': 'Enabled Rescue Interfaces',
|
||||
'enabled_storage_interfaces': 'Enabled Storage Interfaces',
|
||||
'enabled_vendor_interfaces': 'Enabled Vendor Interfaces',
|
||||
'extra': 'Extra',
|
||||
|
@ -104,6 +106,7 @@ class Resource(object):
|
|||
'network_interface': 'Network Interface',
|
||||
'power_interface': 'Power Interface',
|
||||
'raid_interface': 'RAID Interface',
|
||||
'rescue_interface': 'Rescue Interface',
|
||||
'storage_interface': 'Storage Interface',
|
||||
'vendor_interface': 'Vendor Interface',
|
||||
'standalone_ports_supported': 'Standalone Ports Supported',
|
||||
|
@ -225,6 +228,7 @@ NODE_DETAILED_RESOURCE = Resource(
|
|||
'network_interface',
|
||||
'power_interface',
|
||||
'raid_interface',
|
||||
'rescue_interface',
|
||||
'storage_interface',
|
||||
'vendor_interface',
|
||||
],
|
||||
|
@ -339,6 +343,7 @@ DRIVER_DETAILED_RESOURCE = Resource(
|
|||
'default_network_interface',
|
||||
'default_power_interface',
|
||||
'default_raid_interface',
|
||||
'default_rescue_interface',
|
||||
'default_storage_interface',
|
||||
'default_vendor_interface',
|
||||
'enabled_boot_interfaces',
|
||||
|
@ -349,6 +354,7 @@ DRIVER_DETAILED_RESOURCE = Resource(
|
|||
'enabled_network_interfaces',
|
||||
'enabled_power_interfaces',
|
||||
'enabled_raid_interfaces',
|
||||
'enabled_rescue_interfaces',
|
||||
'enabled_storage_interfaces',
|
||||
'enabled_vendor_interfaces'
|
||||
],
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Adds support for rescue_interface for the commands below.
|
||||
They are available starting with ironic API microversion 1.38.
|
||||
|
||||
* ``openstack baremetal node create``
|
||||
* ``openstack baremetal node show``
|
||||
* ``openstack baremetal node set``
|
||||
* ``openstack baremetal node unset``
|
||||
* ``openstack baremetal driver list``
|
||||
* ``openstack baremetal driver show``
|
Loading…
Reference in New Issue