yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #28598
[Bug 1423427] [NEW] os-baremetal-node ext relies on presence of specific ironic node properties
Public bug reported:
A new test has been added to tempest to stress the os-baremetal-nodes
API extension. The test periodically fails in the gate with traceback
in n-api log:
[req-01dcd35b-55f4-4688-ba18-7fe0c6defd52 BaremetalNodesAdminTestJSON-1864409967 BaremetalNodesAdminTestJSON-1481542636] Caught error: 'cpus'
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack Traceback (most recent call last):
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/__init__.py", line 125, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return req.get_response(self.application)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1320, in send
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack application, catch_exc_info=False)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1284, in call_application
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return resp(environ, start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 977, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return self._call_app(env, start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 902, in _call_app
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return self._app(env, _fake_start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 136, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack response = self.app(environ, start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/wsgi.py", line 749, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack content_type, body, accept)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/wsgi.py", line 814, in _process_stack
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/wsgi.py", line 904, in dispatch
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return method(req=request, **action_args)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/compute/contrib/baremetal_nodes.py", line 123, in index
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack 'cpus': inode.properties['cpus'],
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack KeyError: 'cpus'
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack
This hits only periodically and only when another tempest baremetal test
is running in parallel to the new test. The other tests
(tempest.api.baremetal.*) create some nodes in Ironic with node
properties that are not the standard resource properties the
nova->ironic proxy expects (from
nova/api/openstack/compute/contrib/baremetal_nodes.py:201):
for inode in ironic_nodes:
node = {'id': inode.uuid,
'interfaces': [],
'host': 'IRONIC MANAGED',
'task_state': inode.provision_state,
'cpus': inode.properties['cpus'],
'memory_mb': inode.properties['memory_mb'],
'disk_gb': inode.properties['local_gb']}
nodes.append(node)
The other tempest test is creating nodes with a different set of
properties:
{u'cpu_arch': u'x86', u'cpu_num': 8, u'memory': 4096, u'storage': 1024}
Ironic node properties are meant to be an arbitrary json dict, so the
nova code needs to account for this in one way or another.
** Affects: nova
Importance: Undecided
Status: New
--
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/1423427
Title:
os-baremetal-node ext relies on presence of specific ironic node
properties
Status in OpenStack Compute (Nova):
New
Bug description:
A new test has been added to tempest to stress the os-baremetal-nodes
API extension. The test periodically fails in the gate with traceback
in n-api log:
[req-01dcd35b-55f4-4688-ba18-7fe0c6defd52 BaremetalNodesAdminTestJSON-1864409967 BaremetalNodesAdminTestJSON-1481542636] Caught error: 'cpus'
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack Traceback (most recent call last):
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/__init__.py", line 125, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return req.get_response(self.application)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1320, in send
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack application, catch_exc_info=False)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1284, in call_application
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return resp(environ, start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 977, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return self._call_app(env, start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 902, in _call_app
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return self._app(env, _fake_start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 136, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack response = self.app(environ, start_response)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/wsgi.py", line 749, in __call__
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack content_type, body, accept)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/wsgi.py", line 814, in _process_stack
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/wsgi.py", line 904, in dispatch
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack return method(req=request, **action_args)
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack File "/opt/stack/new/nova/nova/api/openstack/compute/contrib/baremetal_nodes.py", line 123, in index
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack 'cpus': inode.properties['cpus'],
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack KeyError: 'cpus'
2015-02-19 01:37:41.910 2521 TRACE nova.api.openstack
This hits only periodically and only when another tempest baremetal
test is running in parallel to the new test. The other tests
(tempest.api.baremetal.*) create some nodes in Ironic with node
properties that are not the standard resource properties the
nova->ironic proxy expects (from
nova/api/openstack/compute/contrib/baremetal_nodes.py:201):
for inode in ironic_nodes:
node = {'id': inode.uuid,
'interfaces': [],
'host': 'IRONIC MANAGED',
'task_state': inode.provision_state,
'cpus': inode.properties['cpus'],
'memory_mb': inode.properties['memory_mb'],
'disk_gb': inode.properties['local_gb']}
nodes.append(node)
The other tempest test is creating nodes with a different set of
properties:
{u'cpu_arch': u'x86', u'cpu_num': 8, u'memory': 4096, u'storage':
1024}
Ironic node properties are meant to be an arbitrary json dict, so the
nova code needs to account for this in one way or another.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1423427/+subscriptions
Follow ups
References