← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1423427] Re: os-baremetal-node ext relies on presence of specific ironic node properties

 

The baremetal client in tempest is creating the node with the wrong
data:

http://git.openstack.org/cgit/openstack/tempest/tree/tempest/services/baremetal/v1/json/baremetal_client.py#n134

** Changed in: tempest
       Status: New => In Progress

** Changed in: tempest
     Assignee: (unassigned) => Matt Riedemann (mriedem)

** Changed in: tempest
   Importance: Undecided => High

** No longer affects: ironic

** No longer affects: nova

** Summary changed:

- os-baremetal-node ext relies on presence of specific ironic node properties 
+ tempest baremetal client is creating node with wrong property keys

-- 
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:
  tempest baremetal client is creating node with wrong property keys

Status in Tempest:
  In Progress

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/tempest/+bug/1423427/+subscriptions


References