[openstack-dev] [Neutron][LBaaS][Tempest] LBaaS V2 testing, partial results

Miguel Lavalle miguel at mlavalle.com
Mon Jul 28 00:24:44 UTC 2014


Hi,

I spent a few hours deploying LBaaS V2 to my devstack instance and tested
it with the Tempest api test developed a couple of week ago during the
Neutron code sprint. This is a list of the findings so far:

1) POST operations on loadbalancers, healthmonitors and listeners work fine

2) POST operations on pools don't work. The api throws a 500 with the
following message: "NeutronError": "Request Failed: internal server error
while processing your request.". The error can be reproduced with the
following operation:

POST /lbaas/pools
{"pool": {"name": "miguelito", "protocol": "HTTP", "lb_algorithm":
"ROUND_ROBIN", "healthmonitor_id": "98311c52-9ba5-4d1c-beb7-a8200edf3c40"}}

The Neutron server log shows the following error:

2014-07-26 21:26:03.050 25731 DEBUG routes.middleware
[req-cc23dc5b-7679-407b-a02e-bde6536ecc0b ] Matched POST /lbaas/pools
__call__ /usr/local/lib/python2.7/dist-packages/routes/middleware.py:100
2014-07-26 21:26:03.050 25731 DEBUG routes.middleware
[req-cc23dc5b-7679-407b-a02e-bde6536ecc0b ] Route path: '/lbaas/pools',
defaults: {'action': u'create', 'controller': <wsgify at 139916894481360
wrapping <function resource at 0x7f40f0d158c0>>} __call__
/usr/local/lib/python2.7/dist-packages/routes/middleware.py:102
2014-07-26 21:26:03.050 25731 DEBUG routes.middleware
[req-cc23dc5b-7679-407b-a02e-bde6536ecc0b ] Match dict: {'action':
u'create', 'controller': <wsgify at 139916894481360 wrapping <function
resource at 0x7f40f0d158c0>>} __call__
/usr/local/lib/python2.7/dist-packages/routes/middleware.py:103
2014-07-26 21:26:03.051 25731 DEBUG neutron.api.v2.base
[req-cc23dc5b-7679-407b-a02e-bde6536ecc0b None] Request body: {u'pool':
{u'lb_algorithm': u'ROUND_ROBIN', u'healthmonitor_id':
u'98311c52-9ba5-4d1c-beb7-a8200edf3c40', u'protocol': u'HTTP', u'name':
u'miguelito'}} prepare_request_body
/opt/stack/neutron/neutron/api/v2/base.py:573
2014-07-26 21:26:03.060 25731 ERROR neutron.api.v2.resource
[req-cc23dc5b-7679-407b-a02e-bde6536ecc0b None] create failed
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource Traceback (most
recent call last):
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/api/v2/resource.py", line 87, in resource
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource     result =
method(request=request, **args)
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/api/v2/base.py", line 447, in create
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource     obj =
obj_creator(request.context, **kwargs)
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/services/loadbalancer/plugin.py", line 575, in
create_pool
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource     context,
pool)
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/db/loadbalancer/loadbalancer_dbv2.py", line
615, in create_pool2014-07-26 21:26:03.060 25731 TRACE
neutron.api.v2.resource     pool_db = PoolV2(**pool)
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource   File
"<string>", line 4, in __init__
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource   File
"/usr/lib/python2.7/dist-packages/sqlalchemy/orm/state.py", line 200, in
_initialize_instance
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource     return
manager.original_init(*mixed[1:], **kwargs)
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource   File
"/usr/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/base.py", line
424, in _declarative_constructor
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource     (k,
cls_.__name__))
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource TypeError:
'lb_method' is an invalid keyword argument for PoolV2
2014-07-26 21:26:03.060 25731 TRACE neutron.api.v2.resource
2014-07-26 21:26:03.062 25731 INFO neutron.wsgi
[req-cc23dc5b-7679-407b-a02e-bde6536ecc0b None] 72.191.21.124 - -
[26/Jul/2014 21:26:03] "POST /v2.0/lbaas/pools HTTP/1.1" 500 320 0.015718


3)  GET /lbaas/loadbalancers, GET /lbaas/loadbalancers/<loadbalancerid>,
PUT/lbaas/loadbalancers/<loadbalancerid> work fine

4) DELETE /lbaas/loadbalancers/<loadbalancerid> work fine if it is not
preceded by an UPDATE. If the DELETE is preceded by an UPDATE, the api
throws a 500 with the following message: "NeutronError": { "message":
"Invalid state PENDING_UPDATE of loadbalancer resource
99d7e756-f042-4941-bab6-e77c7edc72a1", "type": "StateInvalid", "detail":
"". The error can be reproduced with the following sequence of operations:

POST /lbaas/loadbalancers
{"loadbalancer": {"name": "miguelito", "vip_subnet_id":
"390a0f6c-b4a6-4ad0-83be-ad41832c88c6"}}

UPDATE /lbaas/loadbalancers/<loadbalancerid>
{"loadbalancer": {"name": "nuevo_miguelito"}}

DELETE /lbaas/loadbalancers/<loadbalancerid>

The Neutron server log file shows the following error:

2014-07-27 23:40:42.071 25731 DEBUG keystonemiddleware.auth_token
[req-6e8401da-17eb-4dce-a15d-ded3b8a6e1cc ] Received request from user:
b870371464704e14b618609d78920ba6 with project_id :
f45c42127f5044e694067b2ac361d3ca and roles:
_member_,anotherrole,heat_stack_owner,Member  _build_user_headers
/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py:732
2014-07-27 23:40:42.072 25731 DEBUG routes.middleware
[req-18843bc2-498a-4ee2-8a35-1b265983feec ] Matched DELETE
/lbaas/loadbalancers/99d7e756-f042-4941-bab6-e77c7edc72a1 __call__
/usr/local/lib/python2.7/dist-packages/routes/middleware.py:100
2014-07-27 23:40:42.072 25731 DEBUG routes.middleware
[req-18843bc2-498a-4ee2-8a35-1b265983feec ] Route path:
'/lbaas/loadbalancers/:(id)', defaults: {'action': u'delete', 'controller':
<wsgify at 139916894449488 wrapping <function resource at 0x7f40f0d156e0>>}
__call__ /usr/local/lib/python2.7/dist-packages/routes/middleware.py:102
2014-07-27 23:40:42.073 25731 DEBUG routes.middleware
[req-18843bc2-498a-4ee2-8a35-1b265983feec ] Match dict: {'action':
u'delete', 'controller': <wsgify at 139916894449488 wrapping <function
resource at 0x7f40f0d156e0>>, 'id':
u'99d7e756-f042-4941-bab6-e77c7edc72a1'} __call__
/usr/local/lib/python2.7/dist-packages/routes/middleware.py:103
2014-07-27 23:40:42.082 25731 ERROR neutron.api.v2.resource
[req-18843bc2-498a-4ee2-8a35-1b265983feec None] delete failed
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource Traceback (most
recent call last):
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/api/v2/resource.py", line 87, in resource
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource     result =
method(request=request, **args)
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/api/v2/base.py", line 475, in delete
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource
obj_deleter(request.context, id, **kwargs)
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/services/loadbalancer/plugin.py", line 478, in
delete_loadbalancer
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource
constants.PENDING_DELETE)
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/db/loadbalancer/loadbalancer_dbv2.py", line
422, in test_and_set_status
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource
self.assert_modification_allowed(model_db)
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource   File
"/opt/stack/neutron/neutron/db/loadbalancer/loadbalancer_dbv2.py", line
417, in assert_modification_allowed
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource     raise
loadbalancerv2.StateInvalid(id=id, state=status)
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource StateInvalid:
Invalid state PENDING_UPDATE of loadbalancer resource
99d7e756-f042-4941-bab6-e77c7edc72a1
2014-07-27 23:40:42.082 25731 TRACE neutron.api.v2.resource
2014-07-27 23:40:42.084 25731 INFO neutron.wsgi
[req-18843bc2-498a-4ee2-8a35-1b265983feec None] 72.191.21.124 - -
[27/Jul/2014 23:40:42] "DELETE
/v2.0/lbaas/loadbalancers/99d7e756-f042-4941-bab6-e77c7edc72a1 HTTP/1.1"
500 394 0.015702

Over the next few days I will report api testing results for healthmonitors
and listeners. I will also test pools and memebers as soon as the problems
with pools POST reported above is fixed

Cheers

Miguel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140727/e4b0d336/attachment.html>


More information about the OpenStack-dev mailing list