diff --git a/ironic/drivers/modules/iscsi_deploy.py b/ironic/drivers/modules/iscsi_deploy.py index 5cfaef2b59..d81bc068ad 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 cd460132df..e1712d40c8 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 0000000000..a8ee9e5cea --- /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. +