The cinder.api.extensions Module

The cinder.api.extensions Module

class ControllerExtension(extension, collection, controller)

Bases: object

Extend core controllers of cinder OpenStack API.

Provide a way to extend existing cinder OpenStack API core controllers.

class ExtensionDescriptor(ext_mgr)

Bases: object

Base class that defines the contract for extensions.

Note that you don’t have to derive from this class to have a valid extension; it is purely a convenience.

alias = None
get_controller_extensions()

List of extensions.ControllerExtension extension objects.

Controller extensions are used to extend existing controllers.

get_resources()

List of extensions.ResourceExtension extension objects.

Resources define new nouns, and are accessible through URLs.

name = None
updated = None
class ExtensionManager

Bases: object

Load extensions from the configured extension path.

See cinder/tests/api/extensions/foxinsocks/extension.py for an example extension implementation.

get_controller_extensions()

Returns a list of ControllerExtension objects.

get_resources()

Returns a list of ResourceExtension objects.

is_loaded(alias)
load_extension(ext_factory)

Execute an extension factory.

Loads an extension. The ‘ext_factory’ is the name of a callable that will be imported and called with one argument–the extension manager. The factory callable is expected to call the register() method at least once.

register(ext)
class ExtensionsResource(extension_manager)

Bases: cinder.api.openstack.wsgi.Resource

create(req)
delete(req, id)
index(req)
show(req, id)
class ResourceExtension(collection, controller, parent=None, collection_actions=None, member_actions=None, custom_routes_fn=None)

Bases: object

Add top level resources to the OpenStack API in cinder.

extension_authorizer(api_name, extension_name)
load_standard_extensions(ext_mgr, logger, path, package, ext_list=None)

Registers all standard API extensions.

soft_extension_authorizer(api_name, extension_name)
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.