API Endpoint

Cinder has a system for managing multiple APIs on different subdomains. Currently there is support for the OpenStack API, as well as the Amazon EC2 API.

Common Components

The cinder.api Module

root_app_factory(loader, global_conf, **local_conf)

The cinder.api.cloud Module

OpenStack API

The openstack Module

WSGI middleware for OpenStack API controllers.

class APIMapper(controller_scan=<function controller_scan at 0x7f324a0b79b0>, directory=None, always_scan=False, register=True, explicit=True)

Bases: routes.mapper.Mapper

APIMapper.connect(*args, **kwargs)
APIMapper.routematch(url=None, environ=None)
class APIRouter(ext_mgr=None)

Bases: cinder.wsgi.Router

Routes requests on the API to the appropriate controller and method.

APIRouter.ExtensionManager = None
classmethod APIRouter.factory(global_config, **local_config)

Simple paste factory, cinder.wsgi.Router doesn’t have.

class FaultWrapper(application)

Bases: cinder.wsgi.Middleware

class ProjectMapper(controller_scan=<function controller_scan at 0x7f324a0b79b0>, directory=None, always_scan=False, register=True, explicit=True)

Bases: cinder.api.openstack.APIMapper

ProjectMapper.resource(member_name, collection_name, **kwargs)

The auth Module

EC2 API

The cinder.api.ec2 Module

The cloud Module

The metadatarequesthandler Module

Tests

The api_unittest Module

The api_integration Module

The cloud_unittest Module

The api.fakes Module

class Context

Bases: object

class FakeAuthDatabase

Bases: object

static FakeAuthDatabase.auth_token_create(context, token)
static FakeAuthDatabase.auth_token_destroy(context, token_id)
static FakeAuthDatabase.auth_token_get(context, token_hash)
FakeAuthDatabase.data = {}
class FakeRateLimiter(application)

Bases: object

class FakeRequestContext(*args, **kwargs)

Bases: cinder.context.RequestContext

class FakeRouter(ext_mgr=None)

Bases: cinder.wsgi.Router

class FakeToken(**kwargs)

Bases: object

FakeToken.id_count = 0
class HTTPRequest(environ, charset=None, unicode_errors=None, decode_param_names=None, **kw)

Bases: webob.request.Request

classmethod HTTPRequest.blank(*args, **kwargs)
class TestRouter(controller)

Bases: cinder.wsgi.Router

get_fake_uuid(token=0)
wsgi_app(inner_app_v2=None, fake_auth=True, fake_auth_context=None, use_no_auth=False, ext_mgr=None)

The api.test_wsgi Module

The test_api Module

The test_auth Module

The test_faults Module