
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)
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
# Copyright 2019 Ericsson Software Technology
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from neutron_lib.api.definitions import extraroute
|
|
from neutron_lib.api.definitions import l3
|
|
|
|
|
|
ALIAS = 'extraroute-atomic'
|
|
IS_SHIM_EXTENSION = False
|
|
IS_STANDARD_ATTR_EXTENSION = False
|
|
NAME = 'Atomically add/remove extra routes'
|
|
DESCRIPTION = ('Edit extra routes of a router on server side by atomically '
|
|
'adding/removing extra routes')
|
|
UPDATED_TIMESTAMP = '2019-07-10T00:00:00+00:00'
|
|
RESOURCE_ATTRIBUTE_MAP = {
|
|
l3.ROUTERS: {}
|
|
}
|
|
SUB_RESOURCE_ATTRIBUTE_MAP = None
|
|
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 = {}
|