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'} |
...
Fix proposed to branch: master /review. openstack. org/176890
Review: https:/