diff options
author | Riccardo Pittau <elfosardo@gmail.com> | 2018-11-28 16:17:09 +0100 |
---|---|---|
committer | Riccardo Pittau <elfosardo@gmail.com> | 2018-11-29 11:16:02 +0100 |
commit | 9298c2db4420e4526ffcc57a6ae8e82475fddca2 (patch) | |
tree | 217ac2e0eb88c1f28013890f2f0c71df720945da | |
parent | f526c03ab3ac329fcfbc22a7cc3081c08c6054f9 (diff) | |
download | ironic-9298c2db4420e4526ffcc57a6ae8e82475fddca2.tar.gz |
Avoid cpu_arch None values in iscsi deployments
Ironic will fail iscsi deployments if cpu_arch is not specified.
We need to make cpu_arch optional to prevent that.
Change-Id: I184dc53d664dd8631604f98e34786fa06d04d1ed
Task: 28123
Story: 2004448
-rw-r--r-- | ironic/drivers/modules/iscsi_deploy.py | 7 | ||||
-rw-r--r-- | ironic/tests/unit/drivers/modules/test_iscsi_deploy.py | 9 | ||||
-rw-r--r-- | releasenotes/notes/iscsi-optional-cpu-arch-ebf6a90dde34172c.yaml | 6 |
3 files changed, 20 insertions, 2 deletions
diff --git a/ironic/drivers/modules/iscsi_deploy.py b/ironic/drivers/modules/iscsi_deploy.py index 5cfaef2b5..d81bc068a 100644 --- a/ironic/drivers/modules/iscsi_deploy.py +++ b/ironic/drivers/modules/iscsi_deploy.py @@ -117,8 +117,11 @@ def get_deploy_info(node, address, iqn, port=None, lun='1', conv_flags=None): 'ephemeral_mb': i_info['ephemeral_mb'], 'preserve_ephemeral': i_info['preserve_ephemeral'], 'boot_option': deploy_utils.get_boot_option(node), - 'boot_mode': boot_mode_utils.get_boot_mode(node), - 'cpu_arch': node.properties.get('cpu_arch')}) + 'boot_mode': boot_mode_utils.get_boot_mode(node)}) + + cpu_arch = node.properties.get('cpu_arch') + if cpu_arch is not None: + params['cpu_arch'] = cpu_arch # Append disk label if specified disk_label = deploy_utils.get_disk_label(node) diff --git a/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py b/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py index cd460132d..e1712d40c 100644 --- a/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py +++ b/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py @@ -418,6 +418,15 @@ class IscsiDeployMethodsTestCase(db_base.DbTestCase): ret_val = self._test_get_deploy_info(extra_instance_info=capabilities) self.assertEqual('local', ret_val['boot_option']) + def test_get_deploy_info_cpu_arch(self): + ret_val = self._test_get_deploy_info() + self.assertEqual('x86_64', ret_val['cpu_arch']) + + def test_get_deploy_info_cpu_arch_none(self): + self.node.properties['cpu_arch'] = None + ret_val = self._test_get_deploy_info() + self.assertNotIn('cpu_arch', ret_val) + def test_get_deploy_info_disk_label(self): capabilities = {'capabilities': {'disk_label': 'msdos'}} ret_val = self._test_get_deploy_info(extra_instance_info=capabilities) diff --git a/releasenotes/notes/iscsi-optional-cpu-arch-ebf6a90dde34172c.yaml b/releasenotes/notes/iscsi-optional-cpu-arch-ebf6a90dde34172c.yaml new file mode 100644 index 000000000..a8ee9e5ce --- /dev/null +++ b/releasenotes/notes/iscsi-optional-cpu-arch-ebf6a90dde34172c.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixes an issue where iSCSI based deployments fail if the ``cpu_arch`` + property is not specified on a node. + |