Merge "Add interface documentation to driver devref"
This commit is contained in:
commit
53ac615273
@ -82,3 +82,63 @@ tests.
|
|||||||
The details for the required volume driver interfaces can be found in the
|
The details for the required volume driver interfaces can be found in the
|
||||||
``cinder/interface/volume_*_driver.py`` source.
|
``cinder/interface/volume_*_driver.py`` source.
|
||||||
|
|
||||||
|
Driver Development Documentations
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
The LVM driver is our reference for all new driver implementations. The
|
||||||
|
information below can provide additional documentation for the methods that
|
||||||
|
volume drivers need to implement.
|
||||||
|
|
||||||
|
Base Driver Interface
|
||||||
|
`````````````````````
|
||||||
|
The methods documented below are the minimum required interface for a volume
|
||||||
|
driver to support. All methods from this interface must be implemented
|
||||||
|
in order to be an official Cinder volume driver.
|
||||||
|
|
||||||
|
.. automodule:: cinder.interface.volume_driver
|
||||||
|
:members:
|
||||||
|
|
||||||
|
|
||||||
|
Snapshot Interface
|
||||||
|
``````````````````
|
||||||
|
Another required interface for a volume driver to be fully compatible is the
|
||||||
|
ability to create and manage snapshots. Due to legacy constraints, this
|
||||||
|
interface is not included in the base driver interface above.
|
||||||
|
|
||||||
|
Work is being done to address those legacy issues. Once that is complete, this
|
||||||
|
interface will be merged with the base driver interface.
|
||||||
|
|
||||||
|
.. automodule:: cinder.interface.volume_snapshot_driver
|
||||||
|
:members:
|
||||||
|
|
||||||
|
|
||||||
|
Manage/Unmanage Support
|
||||||
|
```````````````````````
|
||||||
|
An optional feature a volume backend can support is the ability to manage
|
||||||
|
existing volumes or unmanage volumes - keep the volume on the storage backend
|
||||||
|
but no longer manage it through Cinder.
|
||||||
|
|
||||||
|
To support this functionality, volume drivers must implement these methods:
|
||||||
|
|
||||||
|
.. automodule:: cinder.interface.volume_management_driver
|
||||||
|
:members:
|
||||||
|
|
||||||
|
|
||||||
|
Manage/Unmanage Snapshot Support
|
||||||
|
````````````````````````````````
|
||||||
|
In addition to the ability to manage and unmanage volumes, Cinder backend
|
||||||
|
drivers may also support managing and unmanaging volume snapshots. These
|
||||||
|
additional methods must be implemented to support these operations.
|
||||||
|
|
||||||
|
.. automodule:: cinder.interface.volume_snapshotmanagement_driver
|
||||||
|
:members:
|
||||||
|
|
||||||
|
Volume Consistency Groups
|
||||||
|
`````````````````````````
|
||||||
|
Some storage backends support the ability to group volumes and create write
|
||||||
|
consistent snapshots across the group. In order to support these operations,
|
||||||
|
the following interface must be implemented by the driver.
|
||||||
|
|
||||||
|
.. automodule:: cinder.interface.volume_consistencygroup_driver
|
||||||
|
:members:
|
||||||
|
|
||||||
|
@ -34,7 +34,8 @@ def print_drivers(drivers, config_name):
|
|||||||
if driver.version:
|
if driver.version:
|
||||||
print('* Version: %s' % driver.version)
|
print('* Version: %s' % driver.version)
|
||||||
print('* %s=%s' % (config_name, driver.class_fqn))
|
print('* %s=%s' % (config_name, driver.class_fqn))
|
||||||
print('* Description:')
|
print('* Description::')
|
||||||
|
print('')
|
||||||
format_description(driver.desc)
|
format_description(driver.desc)
|
||||||
print('')
|
print('')
|
||||||
print('')
|
print('')
|
||||||
|
Loading…
Reference in New Issue
Block a user