Merge "Fix disk label to account for UEFI"
This commit is contained in:
commit
3db362e5aa
@ -356,7 +356,13 @@ def get_disk_label(node):
|
||||
:returns: the disk label or None if no disk label was specified.
|
||||
"""
|
||||
capabilities = utils.parse_instance_info_capabilities(node)
|
||||
return capabilities.get('disk_label')
|
||||
label = capabilities.get('disk_label')
|
||||
# NOTE(TheJulia): If the node is UEFI based, we should likely just default
|
||||
# the table type to gpt as otherwise we rely upon the user to supply the
|
||||
# right information, and for UEFI mode bios may work, but is wrong.
|
||||
if label is None and boot_mode_utils.get_boot_mode(node) == 'uefi':
|
||||
label = 'gpt'
|
||||
return label
|
||||
|
||||
|
||||
def get_pxe_boot_file(node):
|
||||
|
@ -1039,6 +1039,20 @@ class ParseInstanceInfoCapabilitiesTestCase(tests_base.TestCase):
|
||||
result = utils.get_disk_label(self.node)
|
||||
self.assertEqual('gpt', result)
|
||||
|
||||
def test_get_disk_label_nothing_set(self):
|
||||
inst_info = {'capabilities': {'cat': 'meows'}}
|
||||
self.node.instance_info = inst_info
|
||||
result = utils.get_disk_label(self.node)
|
||||
self.assertIsNone(result)
|
||||
|
||||
def test_get_disk_label_uefi_mode(self):
|
||||
inst_info = {'capabilities': {'cat': 'meows'}}
|
||||
properties = {'capabilities': 'boot_mode:uefi'}
|
||||
self.node.instance_info = inst_info
|
||||
self.node.properties = properties
|
||||
result = utils.get_disk_label(self.node)
|
||||
self.assertEqual('gpt', result)
|
||||
|
||||
|
||||
class TrySetBootDeviceTestCase(db_base.DbTestCase):
|
||||
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Fixes the logic which determines the partition table type to utilize with
|
||||
partition images account for the boot mode of the machine. If no value is
|
||||
set by the API user, Ironic now correctly defaults to GPT if the node
|
||||
has been set in UEFI mode.
|
Loading…
x
Reference in New Issue
Block a user