From 4ef4b711b75e5329e09ed5eedca36dea35445494 Mon Sep 17 00:00:00 2001 From: Bence Romsics Date: Thu, 29 Aug 2019 14:15:37 +0200 Subject: [PATCH] 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) --- neutron_lib/api/definitions/extraroute_atomic.py | 11 +++++------ ...route-atomic-apidef-additive-fb783d66c08618d4.yaml | 7 +++++++ 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 releasenotes/notes/extraroute-atomic-apidef-additive-fb783d66c08618d4.yaml diff --git a/neutron_lib/api/definitions/extraroute_atomic.py b/neutron_lib/api/definitions/extraroute_atomic.py index 73f63b718..ed04237ec 100644 --- a/neutron_lib/api/definitions/extraroute_atomic.py +++ b/neutron_lib/api/definitions/extraroute_atomic.py @@ -27,12 +27,11 @@ RESOURCE_ATTRIBUTE_MAP = { l3.ROUTERS: {} } SUB_RESOURCE_ATTRIBUTE_MAP = None -ACTION_MAP = { - l3.ROUTER: { - 'add_extraroutes': 'PUT', - 'remove_extraroutes': 'PUT', - } -} +ACTION_MAP = l3.ACTION_MAP +ACTION_MAP[l3.ROUTER].update({ + 'add_extraroutes': 'PUT', + 'remove_extraroutes': 'PUT', +}) REQUIRED_EXTENSIONS = [l3.ALIAS, extraroute.ALIAS] OPTIONAL_EXTENSIONS = [] ACTION_STATUS = {} diff --git a/releasenotes/notes/extraroute-atomic-apidef-additive-fb783d66c08618d4.yaml b/releasenotes/notes/extraroute-atomic-apidef-additive-fb783d66c08618d4.yaml new file mode 100644 index 000000000..7aace3050 --- /dev/null +++ b/releasenotes/notes/extraroute-atomic-apidef-additive-fb783d66c08618d4.yaml @@ -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``).