summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-07-06 13:25:56 +0000
committerGerrit Code Review <review@openstack.org>2020-07-06 13:25:56 +0000
commit3c47122f363756911f066f8cf8ecb0b1cac1335b (patch)
tree66c4be85d2da6d0bbeb8523f0819c88b837f98ac
parentc0a978cedba478fc492a88722341f6ed476de86b (diff)
parentcedc4a24167de205db25cc45fd37275f3e4956bd (diff)
downloadironic-3c47122f363756911f066f8cf8ecb0b1cac1335b.tar.gz
Merge "Software RAID: don't try to set local_gb to MAX"
-rw-r--r--ironic/common/raid.py3
-rw-r--r--ironic/tests/unit/common/test_raid.py15
-rw-r--r--releasenotes/notes/raid-max-c0920cc44b9779ee.yaml5
3 files changed, 20 insertions, 3 deletions
diff --git a/ironic/common/raid.py b/ironic/common/raid.py
index 3f503beb3..ab60bd603 100644
--- a/ironic/common/raid.py
+++ b/ironic/common/raid.py
@@ -114,7 +114,8 @@ def update_raid_info(node, raid_config):
if root_logical_disk:
# Update local_gb and root_device_hint
properties = node.properties
- properties['local_gb'] = root_logical_disk['size_gb']
+ if root_logical_disk['size_gb'] != 'MAX':
+ properties['local_gb'] = root_logical_disk['size_gb']
try:
properties['root_device'] = (
root_logical_disk['root_device_hint'])
diff --git a/ironic/tests/unit/common/test_raid.py b/ironic/tests/unit/common/test_raid.py
index fd1677d8a..26ef6a9c0 100644
--- a/ironic/tests/unit/common/test_raid.py
+++ b/ironic/tests/unit/common/test_raid.py
@@ -212,7 +212,8 @@ class RaidPublicMethodsTestCase(db_base.DbTestCase):
self.assertIn('foo', logical_disk_properties)
def _test_update_raid_info(self, current_config,
- capabilities=None):
+ capabilities=None,
+ skip_local_gb=False):
node = self.node
if capabilities:
properties = node.properties
@@ -231,7 +232,10 @@ class RaidPublicMethodsTestCase(db_base.DbTestCase):
if current_config['logical_disks'][0].get('is_root_volume'):
self.assertEqual({'wwn': '600508B100'},
properties['root_device'])
- self.assertEqual(100, properties['local_gb'])
+ if skip_local_gb:
+ self.assertNotIn('local_gb', properties)
+ else:
+ self.assertEqual(100, properties['local_gb'])
self.assertIn('raid_level:1', properties['capabilities'])
if capabilities:
self.assertIn(capabilities, properties['capabilities'])
@@ -267,6 +271,13 @@ class RaidPublicMethodsTestCase(db_base.DbTestCase):
self._test_update_raid_info,
current_config)
+ def test_update_raid_info_skip_MAX(self):
+ current_config = json.loads(raid_constants.CURRENT_RAID_CONFIG)
+ current_config['logical_disks'][0]['size_gb'] = 'MAX'
+ self._test_update_raid_info(current_config,
+ capabilities='boot_mode:bios',
+ skip_local_gb=True)
+
def test_filter_target_raid_config(self):
result = raid.filter_target_raid_config(self.node)
self.assertEqual(self.node.target_raid_config, result)
diff --git a/releasenotes/notes/raid-max-c0920cc44b9779ee.yaml b/releasenotes/notes/raid-max-c0920cc44b9779ee.yaml
new file mode 100644
index 000000000..3035d2b8d
--- /dev/null
+++ b/releasenotes/notes/raid-max-c0920cc44b9779ee.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ No longer tries to set ``local_gb`` to ``MAX`` when building RAID with
+ the root disk using ``MAX`` for its size.