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

Brandon Logan brandon.logan at RACKSPACE.COM
Mon Jul 28 05:49:38 UTC 2014


Hey Miguel,

I just tried to reproduce what you got but couldn't.  Have you pulled
down code recently?  I believe new code hit on Friday that probably
fixed the issue you encountered.

Let me know.

Thanks,
Brandon

On Sun, 2014-07-27 at 19:24 -0500, Miguel Lavalle wrote:
> 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
> 
> 
> 
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list