31
31
from nova import flags
32
32
from nova import utils
33
33
from nova import wsgi
34
from nova.api.rackspace import faults
35
from nova.api.rackspace import backup_schedules
36
from nova.api.rackspace import flavors
37
from nova.api.rackspace import images
38
from nova.api.rackspace import ratelimiting
39
from nova.api.rackspace import servers
40
from nova.api.rackspace import sharedipgroups
34
from nova.api.openstack import faults
35
from nova.api.openstack import backup_schedules
36
from nova.api.openstack import flavors
37
from nova.api.openstack import images
38
from nova.api.openstack import ratelimiting
39
from nova.api.openstack import servers
40
from nova.api.openstack import sharedipgroups
41
41
from nova.auth import manager
44
44
FLAGS = flags.FLAGS
45
45
flags.DEFINE_string('nova_api_auth',
46
'nova.api.rackspace.auth.BasicApiAuthManager',
47
'The auth mechanism to use for the Rackspace API implemenation')
46
'nova.api.openstack.auth.BasicApiAuthManager',
47
'The auth mechanism to use for the OpenStack API implemenation')
49
49
class API(wsgi.Middleware):
50
"""WSGI entry point for all Rackspace API requests."""
50
"""WSGI entry point for all OpenStack API requests."""
52
52
def __init__(self):
53
53
app = AuthMiddleware(RateLimitingMiddleware(APIRouter()))
54
54
super(API, self).__init__(app)
56
56
class AuthMiddleware(wsgi.Middleware):
57
"""Authorize the rackspace API request or return an HTTP Forbidden."""
57
"""Authorize the openstack API request or return an HTTP Forbidden."""
59
59
def __init__(self, application):
60
60
self.auth_driver = utils.import_class(FLAGS.nova_api_auth)()