← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1447642] [NEW] Ironic: Driver should validate the node's properties

 

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


Follow ups

References