Affected version: newton
configuration: pxe_drac, neutron networking
Problem: at last stage of deployment it fails with message: Node failed to get image for deploy. Exception: int() argument must be a string or a number, not 'tuple'
I changed code and added 'raise' in corresponding `except Exception as e` block.
It shows following trace:
ironic.common.utils[18788]: DEBUG Command stderr is: "" [req-e7e7224a-c198-48c1-bf4d-d157ea91e1a1 - - - - -] execute /usr/lib/python2.7/dist-packages/ironic/common/utils.py:76
oslo_concurrency.processutils[18788]: DEBUG Running cmd (subprocess): sudo ironic-rootwrap /etc/ironic/rootwrap.conf iscsiadm -m node -p 204.74.228.37:3260 -T iqn.2008-10.org.openstack:dbf66326-3def-47a8-b061-0b409d3d544c -o delete [req-e7e7224a-c198-48c1-bf4d-d157ea91e1a1 - - - - -] execute /usr/lib/python2.7/dist-packages/oslo_concurrency/processutils.py:344
oslo_concurrency.processutils[18788]: DEBUG CMD "sudo ironic-rootwrap /etc/ironic/rootwrap.conf iscsiadm -m node -p 204.74.228.37:3260 -T iqn.2008-10.org.openstack:dbf66326-3def-47a8-b061-0b409d3d544c -o delete" returned: 0 in 0.473s [req-e7e7224a-c198-48c1-bf4d-d157ea91e1a1 - - - - -] execute /usr/lib/python2.7/dist-packages/oslo_concurrency/processutils.py:374
ironic.common.utils[18788]: DEBUG Execution completed, command line is "iscsiadm -m node -p 204.74.228.37:3260 -T iqn.2008-10.org.openstack:dbf66326-3def-47a8-b061-0b409d3d544c -o delete" [req-e7e7224a-c198-48c1-bf4d-d157ea91e1a1 - - - - -] execute /usr/lib/python2.7/dist-packages/ironic/common/utils.py:74
ironic.common.utils[18788]: DEBUG Command stdout is: "" [req-e7e7224a-c198-48c1-bf4d-d157ea91e1a1 - - - - -] execute /usr/lib/python2.7/dist-packages/ironic/common/utils.py:75
ironic.common.utils[18788]: DEBUG Command stderr is: "" [req-e7e7224a-c198-48c1-bf4d-d157ea91e1a1 - - - - -] execute /usr/lib/python2.7/dist-packages/ironic/common/utils.py:76
ironic.drivers.modules.agent_base_vendor[18788]: ERROR Asynchronous exception for node dbf66326-3def-47a8-b061-0b409d3d544c: Node failed to get image for deploy. Exception: int() argument must be a string or a number, not 'tuple' [req-e7e7224a-c198-48c1-bf4d-d157ea91e1a1 - - - - -]
ironic.drivers.modules.agent_base_vendor[18788]: TRACE Traceback (most recent call last):
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic/drivers/modules/agent_base_vendor.py", line 482, in heartbeat
ironic.drivers.modules.agent_base_vendor[18788]: TRACE self.continue_deploy(task)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic_lib/metrics.py", line 61, in wrapped
ironic.drivers.modules.agent_base_vendor[18788]: TRACE result = f(*args, **kwargs)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic/conductor/task_manager.py", line 138, in wrapper
ironic.drivers.modules.agent_base_vendor[18788]: TRACE return f(*args, **kwargs)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic/drivers/modules/iscsi_deploy.py", line 382, in continue_deploy
ironic.drivers.modules.agent_base_vendor[18788]: TRACE uuid_dict_returned = do_agent_iscsi_deploy(task, self._client)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic_lib/metrics.py", line 61, in wrapped
ironic.drivers.modules.agent_base_vendor[18788]: TRACE result = f(*args, **kwargs)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic/drivers/modules/iscsi_deploy.py", line 314, in do_agent_iscsi_deploy
ironic.drivers.modules.agent_base_vendor[18788]: TRACE uuid_dict_returned = continue_deploy(task, iqn=iqn, address=address)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic_lib/metrics.py", line 61, in wrapped
ironic.drivers.modules.agent_base_vendor[18788]: TRACE result = f(*args, **kwargs)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic/drivers/modules/iscsi_deploy.py", line 243, in continue_deploy
ironic.drivers.modules.agent_base_vendor[18788]: TRACE uuid_dict_returned = deploy_utils.deploy_disk_image(**params)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic/drivers/modules/deploy_utils.py", line 388, in deploy_disk_image
ironic.drivers.modules.agent_base_vendor[18788]: TRACE configdrive)
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic_lib/disk_utils.py", line 722, in create_config_drive_partition
ironic.drivers.modules.agent_base_vendor[18788]: TRACE if _is_disk_larger_than_max_size(device, node_uuid):
ironic.drivers.modules.agent_base_vendor[18788]: TRACE File "/usr/lib/python2.7/dist-packages/ironic_lib/disk_utils.py", line 571, in _is_disk_larger_than_max_size
ironic.drivers.modules.agent_base_vendor[18788]: TRACE disksize_mb = int(disksize_bytes) // 1024 // 1024
ironic.drivers.modules.agent_base_vendor[18788]: TRACE TypeError: int() argument must be a string or a number, not 'tuple'
ironic.drivers.modules.agent_base_vendor[18788]: TRACE
This trace is ugly. Better version:
File "/usr/lib/ python2. 7/dist- packages/ ironic/ drivers/ modules/ agent_base_ vendor. py", line 482, in heartbeat continue_ deploy( task) python2. 7/dist- packages/ ironic_ lib/metrics. py", line 61, in wrapped python2. 7/dist- packages/ ironic/ conductor/ task_manager. py", line 138, in wrapper python2. 7/dist- packages/ ironic/ drivers/ modules/ iscsi_deploy. py", line 382, in continue_deploy dict_returned = do_agent_ iscsi_deploy( task, self._client) python2. 7/dist- packages/ ironic_ lib/metrics. py", line 61, in wrapped python2. 7/dist- packages/ ironic/ drivers/ modules/ iscsi_deploy. py", line 314, in do_agent_ iscsi_deploy dict_returned = continue_ deploy( task, iqn=iqn, address=address) python2. 7/dist- packages/ ironic_ lib/metrics. py", line 61, in wrapped python2. 7/dist- packages/ ironic/ drivers/ modules/ iscsi_deploy. py", line 243, in continue_deploy dict_returned = deploy_ utils.deploy_ disk_image( **params) python2. 7/dist- packages/ ironic/ drivers/ modules/ deploy_ utils.py" , line 388, in deploy_disk_image python2. 7/dist- packages/ ironic_ lib/disk_ utils.py" , line 722, in create_ config_ drive_partition larger_ than_max_ size(device, node_uuid): python2. 7/dist- packages/ ironic_ lib/disk_ utils.py" , line 571, in _is_disk_ larger_ than_max_ size
self.
File "/usr/lib/
result = f(*args, **kwargs)
File "/usr/lib/
return f(*args, **kwargs)
File "/usr/lib/
uuid_
File "/usr/lib/
result = f(*args, **kwargs)
File "/usr/lib/
uuid_
File "/usr/lib/
result = f(*args, **kwargs)
File "/usr/lib/
uuid_
File "/usr/lib/
configdrive)
File "/usr/lib/
if _is_disk_
File "/usr/lib/
disksize_mb = int(disksize_bytes) // 1024 // 1024