summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorTodd Willey <todd@ansolabs.com>2011-01-06 13:57:48 -0500
committerTodd Willey <todd@ansolabs.com>2011-01-06 13:57:48 -0500
commit4e034f3d69c6aba6920dd7dd38e07aeb495b45db (patch)
tree5514c1ca866777edd355a009b57c311ac921ce72 /nova/api
parent71d78e1a6f611a7bce4fd4c38c2e7b4ccf3a4578 (diff)
downloadnova-4e034f3d69c6aba6920dd7dd38e07aeb495b45db.tar.gz
nova-4e034f3d69c6aba6920dd7dd38e07aeb495b45db.tar.xz
nova-4e034f3d69c6aba6920dd7dd38e07aeb495b45db.zip
Remove module-level factory methods in favor of having a factory class-method
on wsgi components themselves. Local options from config are passed to the __init__ method of the component as kwargs.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/__init__.py36
-rw-r--r--nova/api/ec2/metadatarequesthandler.py7
-rw-r--r--nova/api/openstack/__init__.py19
-rw-r--r--nova/api/openstack/auth.py6
-rw-r--r--nova/api/openstack/ratelimiting/__init__.py6
5 files changed, 9 insertions, 65 deletions
diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py
index dfa919e07..0836c3411 100644
--- a/nova/api/ec2/__init__.py
+++ b/nova/api/ec2/__init__.py
@@ -146,9 +146,9 @@ class Authenticate(wsgi.Middleware):
class Requestify(wsgi.Middleware):
- def __init__(self, app, controller_name):
+ def __init__(self, app, controller):
super(Requestify, self).__init__(app)
- self.controller = utils.import_class(controller_name)()
+ self.controller = utils.import_class(controller)()
@webob.dec.wsgify
def __call__(self, req):
@@ -306,35 +306,3 @@ class Versions(wsgi.Application):
'2009-04-04',
]
return ''.join('%s\n' % v for v in versions)
-
-
-def authenticate_factory(global_args, **local_args):
- def authenticator(app):
- return Authenticate(app)
- return authenticator
-
-
-def authorizer_factory(global_args, **local_args):
- def authorizer(app):
- return Authorizer(app)
- return authorizer
-
-
-def executor_factory(global_args, **local_args):
- return Executor()
-
-
-def versions_factory(global_args, **local_args):
- return Versions()
-
-
-def requestify_factory(global_args, **local_args):
- def requestifier(app):
- return Requestify(app, local_args['controller'])
- return requestifier
-
-
-def lockout_factory(global_args, **local_args):
- def locksmith(app):
- return Lockout(app)
- return locksmith
diff --git a/nova/api/ec2/metadatarequesthandler.py b/nova/api/ec2/metadatarequesthandler.py
index a57a6698a..9067568a4 100644
--- a/nova/api/ec2/metadatarequesthandler.py
+++ b/nova/api/ec2/metadatarequesthandler.py
@@ -24,13 +24,14 @@ import webob.dec
import webob.exc
from nova import flags
+from nova import wsgi
from nova.api.ec2 import cloud
FLAGS = flags.FLAGS
-class MetadataRequestHandler(object):
+class MetadataRequestHandler(wsgi.Application):
"""Serve metadata from the EC2 API."""
def print_data(self, data):
@@ -79,7 +80,3 @@ class MetadataRequestHandler(object):
if data is None:
raise webob.exc.HTTPNotFound()
return self.print_data(data)
-
-
-def metadata_factory(global_args, **local_args):
- return MetadataRequestHandler()
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py
index 21b9b1d7d..76e3aeed9 100644
--- a/nova/api/openstack/__init__.py
+++ b/nova/api/openstack/__init__.py
@@ -62,6 +62,11 @@ class APIRouter(wsgi.Router):
and method.
"""
+ @classmethod
+ def factory(cls, global_config, **local_config):
+ """Simple paste factory, :class:`nova.wsgi.Router` doesn't have one"""
+ return cls()
+
def __init__(self):
mapper = routes.Mapper()
@@ -105,17 +110,3 @@ class Versions(wsgi.Application):
"application/xml": {
"attributes": dict(version=["status", "id"])}}
return wsgi.Serializer(req.environ, metadata).to_content_type(response)
-
-
-def router_factory(global_cof, **local_conf):
- return APIRouter()
-
-
-def versions_factory(global_conf, **local_conf):
- return Versions()
-
-
-def fault_wrapper_factory(global_conf, **local_conf):
- def fwrap(app):
- return FaultWrapper(app)
- return fwrap
diff --git a/nova/api/openstack/auth.py b/nova/api/openstack/auth.py
index 00e817c8d..1dfdd5318 100644
--- a/nova/api/openstack/auth.py
+++ b/nova/api/openstack/auth.py
@@ -134,9 +134,3 @@ class AuthMiddleware(wsgi.Middleware):
token = self.db.auth_create_token(ctxt, token_dict)
return token, user
return None, None
-
-
-def auth_factory(global_conf, **local_conf):
- def auth(app):
- return AuthMiddleware(app)
- return auth
diff --git a/nova/api/openstack/ratelimiting/__init__.py b/nova/api/openstack/ratelimiting/__init__.py
index 81b83142f..cbb4b897e 100644
--- a/nova/api/openstack/ratelimiting/__init__.py
+++ b/nova/api/openstack/ratelimiting/__init__.py
@@ -219,9 +219,3 @@ class WSGIAppProxy(object):
# No delay
return None
return float(resp.getheader('X-Wait-Seconds'))
-
-
-def ratelimit_factory(global_conf, **local_conf):
- def rl(app):
- return RateLimitingMiddleware(app)
- return rl