Introduce new member actions additively

In the 'extraroute-atomic' api-def as it was first merged [1]
some router member actions (PUT add/remove_extraroutes) were defined
in one api-def (extraroute_atomic.py), while others
(PUT add/remove_router_interface) were defined in another (l3.py).

This (in the subsequent neutron implementation change [2]) broke
functional test:

neutron.tests.functional.pecan_wsgi.test_controllers.\
TestRouterController.test_unsupported_method_member_action

This test sent POST/GET /v2.0/routers/router-id/add_router_interface,
and expected response 405 Method Not Allowed. Due to the split
definition it actually received 404 Not Found. In the meanwhile all
four PUT member actions were working properly.

This change sets the 'extraroute-atomic' api-def's ACTION_MAP to contain
the member actions of both the 'router' and the 'extraroute-atomic'
extensions' member actions in order to get all four member actions
properly defined.

[1] https://review.opendev.org/670849
[2] https://review.opendev.org/#/c/670851/6

Change-Id: I95927d61a3590ea3495bc2716c1fa5fd4feb2948
Partial-Bug: #1826396 (rfe)
Related-Change: https://review.opendev.org/655680 (spec)
This commit is contained in:
Bence Romsics 2019-08-29 14:15:37 +02:00 committed by Miguel Lavalle
parent 104627a933
commit 4ef4b711b7
2 changed files with 12 additions and 6 deletions

View File

@ -27,12 +27,11 @@ RESOURCE_ATTRIBUTE_MAP = {
l3.ROUTERS: {} l3.ROUTERS: {}
} }
SUB_RESOURCE_ATTRIBUTE_MAP = None SUB_RESOURCE_ATTRIBUTE_MAP = None
ACTION_MAP = { ACTION_MAP = l3.ACTION_MAP
l3.ROUTER: { ACTION_MAP[l3.ROUTER].update({
'add_extraroutes': 'PUT', 'add_extraroutes': 'PUT',
'remove_extraroutes': 'PUT', 'remove_extraroutes': 'PUT',
} })
}
REQUIRED_EXTENSIONS = [l3.ALIAS, extraroute.ALIAS] REQUIRED_EXTENSIONS = [l3.ALIAS, extraroute.ALIAS]
OPTIONAL_EXTENSIONS = [] OPTIONAL_EXTENSIONS = []
ACTION_STATUS = {} ACTION_STATUS = {}

View File

@ -0,0 +1,7 @@
---
features:
- |
The ``extraroute-atomic`` api-def's ACTION_MAP is changed so we add the
new member actions (``add_extraroutes`` and ``remove_extraroutes``) while
we also keep the ``router`` extension's member actions
(``add_router_interface`` and ``remove_router_interface``).