*** This bug is a duplicate of bug 1477829 *** https://bugs.launchpad.net/bugs/1477829
Sorry I checked the wrong branch :-( It was fixed during Liberty. ** Description changed: allowed_address_pairs validator raises 500 when non-list value is specified from users. In the following example, a user specified True for allowed_address_pairs by mistake. In this case, neutron server should return BadRequest (400) instead of InternalServerError (500). - releases: from Juno to Mitaka + Releases: Kilo, Juno How to reproduce: Send {u'port': {u'allowed_address_pairs': True}} for an existing port. 2015-11-02 19:33:37.550 10988 DEBUG routes.middleware [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] No route matched for PUT /ports/58d6d971-0519-4746-8e26-4f51185b92b9.json __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:97 2015-11-02 19:33:37.551 10988 DEBUG routes.middleware [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] Matched PUT /ports/58d6d971-0519-4746-8e26-4f51185b92b9.json __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:100 2015-11-02 19:33:37.552 10988 DEBUG routes.middleware [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] Route path: '/ports/{id}{.format}', defaults: {'action': u'update', 'controller': <wsgify at 139841913111888 wrapping <function resource at 0x7f2f7b94b050>>} __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:102 2015-11-02 19:33:37.552 10988 DEBUG routes.middleware [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] Match dict: {'action': u'update', 'controller': <wsgify at 139841913111888 wrapping <function resource at 0x7f2f7b94b050>>, 'id': u'58d6d971-0519-4746-8e26-4f51185b92b9', 'format': u'json'} __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:103 2015-11-02 19:33:37.553 10988 DEBUG neutron.api.v2.base [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] Request body: {u'port': {u'allowed_address_pairs': True}} prepare_request_body /usr/lib/python2.7/dist-packages/neutron/api/v2/base.py:582 2015-11-02 19:33:37.554 10988 ERROR neutron.api.v2.resource [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] update failed 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource Traceback (most recent call last): 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/neutron/api/v2/resource.py", line 87, in resource 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource result = method(request=request, **args) 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/neutron/api/v2/base.py", line 501, in update 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource allow_bulk=self._allow_bulk) 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/neutron/api/v2/base.py", line 637, in prepare_request_body 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource attr_vals['validate'][rule]) 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/neutron/extensions/allowedaddresspairs.py", line 56, in _validate_allowed_address_pairs 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource if len(address_pairs) > cfg.CONF.max_allowed_address_pair: 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource TypeError: object of type 'bool' has no len() - 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource + 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource 2015-11-02 19:33:37.557 10988 INFO neutron.wsgi [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] 192.168.23.61,10.2.101.2 - - [02/Nov/2015 19:33:37] "PUT /v2.0/ports/58d6d971-0519-4746-8e26-4f51185b92b9.json HTTP/1.1" 500 439 0.012048 ** This bug has been marked a duplicate of bug 1477829 Create port API with invalid value returns 500(Internal Server Error) -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1513069 Title: allowed_address_pairs validator raises 500 when non-list value is specified from users Status in neutron: New Bug description: allowed_address_pairs validator raises 500 when non-list value is specified from users. In the following example, a user specified True for allowed_address_pairs by mistake. In this case, neutron server should return BadRequest (400) instead of InternalServerError (500). Releases: Kilo, Juno How to reproduce: Send {u'port': {u'allowed_address_pairs': True}} for an existing port. 2015-11-02 19:33:37.550 10988 DEBUG routes.middleware [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] No route matched for PUT /ports/58d6d971-0519-4746-8e26-4f51185b92b9.json __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:97 2015-11-02 19:33:37.551 10988 DEBUG routes.middleware [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] Matched PUT /ports/58d6d971-0519-4746-8e26-4f51185b92b9.json __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:100 2015-11-02 19:33:37.552 10988 DEBUG routes.middleware [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] Route path: '/ports/{id}{.format}', defaults: {'action': u'update', 'controller': <wsgify at 139841913111888 wrapping <function resource at 0x7f2f7b94b050>>} __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:102 2015-11-02 19:33:37.552 10988 DEBUG routes.middleware [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] Match dict: {'action': u'update', 'controller': <wsgify at 139841913111888 wrapping <function resource at 0x7f2f7b94b050>>, 'id': u'58d6d971-0519-4746-8e26-4f51185b92b9', 'format': u'json'} __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:103 2015-11-02 19:33:37.553 10988 DEBUG neutron.api.v2.base [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] Request body: {u'port': {u'allowed_address_pairs': True}} prepare_request_body /usr/lib/python2.7/dist-packages/neutron/api/v2/base.py:582 2015-11-02 19:33:37.554 10988 ERROR neutron.api.v2.resource [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] update failed 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource Traceback (most recent call last): 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/neutron/api/v2/resource.py", line 87, in resource 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource result = method(request=request, **args) 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/neutron/api/v2/base.py", line 501, in update 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource allow_bulk=self._allow_bulk) 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/neutron/api/v2/base.py", line 637, in prepare_request_body 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource attr_vals['validate'][rule]) 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/neutron/extensions/allowedaddresspairs.py", line 56, in _validate_allowed_address_pairs 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource if len(address_pairs) > cfg.CONF.max_allowed_address_pair: 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource TypeError: object of type 'bool' has no len() 2015-11-02 19:33:37.554 10988 TRACE neutron.api.v2.resource 2015-11-02 19:33:37.557 10988 INFO neutron.wsgi [req-7fbb782d-2537-4184-9e16-49e7d3285947 10dfb42eef5842b886a0c65ea5547175 43bc5337a313424a8e746c1b0074de60] 192.168.23.61,10.2.101.2 - - [02/Nov/2015 19:33:37] "PUT /v2.0/ports/58d6d971-0519-4746-8e26-4f51185b92b9.json HTTP/1.1" 500 439 0.012048 To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1513069/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp