Browse Source

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)
tags/1.29.1^0
Bence Romsics 1 month ago
parent
commit
4ef4b711b7

+ 5
- 6
neutron_lib/api/definitions/extraroute_atomic.py View File

@@ -27,12 +27,11 @@ RESOURCE_ATTRIBUTE_MAP = {
27 27
     l3.ROUTERS: {}
28 28
 }
29 29
 SUB_RESOURCE_ATTRIBUTE_MAP = None
30
-ACTION_MAP = {
31
-    l3.ROUTER: {
32
-        'add_extraroutes': 'PUT',
33
-        'remove_extraroutes': 'PUT',
34
-    }
35
-}
30
+ACTION_MAP = l3.ACTION_MAP
31
+ACTION_MAP[l3.ROUTER].update({
32
+    'add_extraroutes': 'PUT',
33
+    'remove_extraroutes': 'PUT',
34
+})
36 35
 REQUIRED_EXTENSIONS = [l3.ALIAS, extraroute.ALIAS]
37 36
 OPTIONAL_EXTENSIONS = []
38 37
 ACTION_STATUS = {}

+ 7
- 0
releasenotes/notes/extraroute-atomic-apidef-additive-fb783d66c08618d4.yaml View File

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

Loading…
Cancel
Save