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 0x2b439b0b06e0>, directory=None, always_scan=False, register=True, explicit=True)

Bases: routes.mapper.Mapper

connect(*args, **kwargs)
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.

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

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

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

Bases: cinder.api.openstack.APIMapper

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 auth_token_create(context, token)
static auth_token_destroy(context, token_id)
static auth_token_get(context, token_hash)
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

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

Bases: webob.request.Request

classmethod 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

Test WSGI basics and provide some helper functions for other WSGI tests.

class Test(*args, **kwargs)

Bases: cinder.test.TestCase

test_debug()
test_router()

The test_api Module

The test_auth Module

The test_faults Module