Merge "api: Keep track of extension controllers"

This commit is contained in:
Zuul
2025-11-12 17:44:12 +00:00
committed by Gerrit Code Review
2 changed files with 7 additions and 1 deletions

View File

@@ -640,6 +640,7 @@ class Resource(wsgi.Application):
"""
self.controller = controller
self.extension_controllers = set()
default_deserializers = dict(json=JSONDeserializer)
default_deserializers.update(deserializers)
@@ -669,6 +670,12 @@ class Resource(wsgi.Application):
def register_extensions(self, controller):
"""Registers controller extensions with this resource."""
self.extension_controllers.add(controller)
actions = getattr(controller, 'wsgi_actions', {})
for key, method_name in actions.items():
self.wsgi_actions[key] = getattr(controller, method_name)
extensions = getattr(controller, 'wsgi_extensions', [])
for method_name, action_name in extensions:
# Look up the extending method

View File

@@ -160,7 +160,6 @@ class APIRouter(base_wsgi.Router):
)
resource = self.resources[collection]
resource.register_actions(controller)
resource.register_extensions(controller)
def _setup_routes(self, mapper, ext_mgr):