Public bug reported: The Ironic nova driver will look at the Ironic node to fetch the amount of CPUs, memory, disk etc... But it doesn't validate any of this properties making it fail horribly if the node is misconfigured. It should be more resilient to failures.
Traceback: Apr 21 11:11:33 nova-compute[32119]: Traceback (most recent call last): Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/eventlet/queue.py", line 117, in switch Apr 21 11:11:33 nova-compute[32119]: self.greenlet.switch(value) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 214, in main Apr 21 11:11:33 nova-compute[32119]: result = function(*args, **kwargs) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/openstack/common/service.py", line 497, in run_service Apr 21 11:11:33 nova-compute[32119]: service.start() Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/service.py", line 183, in start Apr 21 11:11:33 nova-compute[32119]: self.manager.pre_start_hook() Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1250, in pre_start_hook Apr 21 11:11:33 nova-compute[32119]: self.update_available_resource(nova.context.get_admin_context()) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 6197, in update_available_resource Apr 21 11:11:33 nova-compute[32119]: rt.update_available_resource(context) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 376, in update_available_resource Apr 21 11:11:33 nova-compute[32119]: resources = self.driver.get_available_resource(self.nodename) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/virt/ironic/driver.py", line 535, in get_available_resource Apr 21 11:11:33 nova-compute[32119]: return self._node_resource(node) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/virt/ironic/driver.py", line 228, in _node_resource Apr 21 11:11:33 nova-compute[32119]: vcpus = int(node.properties.get('cpus', 0)) Apr 21 11:11:33 nova-compute[32119]: ValueError: invalid literal for int() with base 10: 'None' +------------------------+-------------------------------------------------------------------------+ | Property | Value | +------------------------+-------------------------------------------------------------------------+ ... | properties | {u'memory_mb': u'None', u'cpu_arch': None, u'local_gb': u'None', | | | u'cpus': u'None', u'capabilities': u'boot_option:local'} | ... ** Affects: nova Importance: Undecided Assignee: Lucas Alvares Gomes (lucasagomes) Status: New ** Changed in: nova Assignee: (unassigned) => Lucas Alvares Gomes (lucasagomes) -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1447642 Title: Ironic: Driver should validate the node's properties Status in OpenStack Compute (Nova): New Bug description: The Ironic nova driver will look at the Ironic node to fetch the amount of CPUs, memory, disk etc... But it doesn't validate any of this properties making it fail horribly if the node is misconfigured. It should be more resilient to failures. Traceback: Apr 21 11:11:33 nova-compute[32119]: Traceback (most recent call last): Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/eventlet/queue.py", line 117, in switch Apr 21 11:11:33 nova-compute[32119]: self.greenlet.switch(value) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 214, in main Apr 21 11:11:33 nova-compute[32119]: result = function(*args, **kwargs) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/openstack/common/service.py", line 497, in run_service Apr 21 11:11:33 nova-compute[32119]: service.start() Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/service.py", line 183, in start Apr 21 11:11:33 nova-compute[32119]: self.manager.pre_start_hook() Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1250, in pre_start_hook Apr 21 11:11:33 nova-compute[32119]: self.update_available_resource(nova.context.get_admin_context()) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 6197, in update_available_resource Apr 21 11:11:33 nova-compute[32119]: rt.update_available_resource(context) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/compute/resource_tracker.py", line 376, in update_available_resource Apr 21 11:11:33 nova-compute[32119]: resources = self.driver.get_available_resource(self.nodename) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/virt/ironic/driver.py", line 535, in get_available_resource Apr 21 11:11:33 nova-compute[32119]: return self._node_resource(node) Apr 21 11:11:33 nova-compute[32119]: File "/usr/lib/python2.7/site-packages/nova/virt/ironic/driver.py", line 228, in _node_resource Apr 21 11:11:33 nova-compute[32119]: vcpus = int(node.properties.get('cpus', 0)) Apr 21 11:11:33 nova-compute[32119]: ValueError: invalid literal for int() with base 10: 'None' +------------------------+-------------------------------------------------------------------------+ | Property | Value | +------------------------+-------------------------------------------------------------------------+ ... | properties | {u'memory_mb': u'None', u'cpu_arch': None, u'local_gb': u'None', | | | u'cpus': u'None', u'capabilities': u'boot_option:local'} | ... To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1447642/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp