summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2011-05-12 12:52:32 -0400
committerDan Prince <dan.prince@rackspace.com>2011-05-12 12:52:32 -0400
commitce2b13d9fb30c0afbcff97f434d7423cad39b8b9 (patch)
treeae457d0b14a84aff78616adeabe92ee7767fc881 /nova/api
parent22c33d80ce040f09c9bcd7584cf1165cf769e192 (diff)
downloadnova-ce2b13d9fb30c0afbcff97f434d7423cad39b8b9.tar.gz
nova-ce2b13d9fb30c0afbcff97f434d7423cad39b8b9.tar.xz
nova-ce2b13d9fb30c0afbcff97f434d7423cad39b8b9.zip
Remove ResponseExtensions. The new RequestExtension covers both use cases.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/extensions.py88
1 files changed, 5 insertions, 83 deletions
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index e6dd228ec..3a7763463 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -105,15 +105,14 @@ class ExtensionDescriptor(object):
actions = []
return actions
- def get_response_extensions(self):
- """List of extensions.ResponseExtension extension objects.
+ def get_request_extensions(self):
+ """List of extensions.RequestException extension objects.
- Response extensions are used to insert information into existing
- response data.
+ Request extensions are used to handle custom request data.
"""
- response_exts = []
- return response_exts
+ request_exts = []
+ return request_exts
class ActionExtensionController(common.OpenstackController):
@@ -137,34 +136,6 @@ class ActionExtensionController(common.OpenstackController):
return res
-class ResponseExtensionController(common.OpenstackController):
-
- def __init__(self, application):
- self.application = application
- self.handlers = []
-
- def add_handler(self, handler):
- self.handlers.append(handler)
-
- def process(self, req, *args, **kwargs):
- res = req.get_response(self.application)
- content_type = req.best_match_content_type()
- # currently response handlers are un-ordered
- for handler in self.handlers:
- res = handler(res)
- try:
- body = res.body
- headers = res.headers
- except AttributeError:
- default_xmlns = None
- body = self._serialize(res, content_type, default_xmlns)
- headers = {"Content-Type": content_type}
- res = webob.Response()
- res.body = body
- res.headers = headers
- return res
-
-
class RequestExtensionController(common.OpenstackController):
def __init__(self, application):
@@ -254,25 +225,6 @@ class ExtensionMiddleware(wsgi.Middleware):
return action_controllers
- def _response_ext_controllers(self, application, ext_mgr, mapper):
- """Returns a dict of ResponseExtensionController-s by collection."""
- response_ext_controllers = {}
- for resp_ext in ext_mgr.get_response_extensions():
- if not resp_ext.key in response_ext_controllers.keys():
- controller = ResponseExtensionController(application)
- mapper.connect(resp_ext.url_route + '.:(format)',
- action='process',
- controller=controller,
- conditions=resp_ext.conditions)
-
- mapper.connect(resp_ext.url_route,
- action='process',
- controller=controller,
- conditions=resp_ext.conditions)
- response_ext_controllers[resp_ext.key] = controller
-
- return response_ext_controllers
-
def _request_ext_controllers(self, application, ext_mgr, mapper):
"""Returns a dict of RequestExtensionController-s by collection."""
request_ext_controllers = {}
@@ -318,14 +270,6 @@ class ExtensionMiddleware(wsgi.Middleware):
controller = action_controllers[action.collection]
controller.add_action(action.action_name, action.handler)
- # extended responses
- resp_controllers = self._response_ext_controllers(application, ext_mgr,
- mapper)
- for response_ext in ext_mgr.get_response_extensions():
- LOG.debug(_('Extended response: %s'), response_ext.key)
- controller = resp_controllers[response_ext.key]
- controller.add_handler(response_ext.handler)
-
# extended requests
req_controllers = self._request_ext_controllers(application, ext_mgr,
mapper)
@@ -402,18 +346,6 @@ class ExtensionManager(object):
pass
return actions
- def get_response_extensions(self):
- """Returns a list of ResponseExtension objects."""
- response_exts = []
- for alias, ext in self.extensions.iteritems():
- try:
- response_exts.extend(ext.get_response_extensions())
- except AttributeError:
- # NOTE(dprince): Extension aren't required to have response
- # extensions
- pass
- return response_exts
-
def get_request_extensions(self):
"""Returns a list of RequestExtension objects."""
request_exts = []
@@ -488,16 +420,6 @@ class ExtensionManager(object):
self.extensions[alias] = ext
-class ResponseExtension(object):
- """Add data to responses from core nova OpenStack API controllers."""
-
- def __init__(self, method, url_route, handler):
- self.url_route = url_route
- self.handler = handler
- self.conditions = dict(method=[method])
- self.key = "%s-%s" % (method, url_route)
-
-
class RequestExtension(object):
"""Provide a way to handle custom request data that is sent to core
nova OpenStack API controllers.