Update drivers to new base class structure¶
The new abc structure was introduced by
bp/abc-volume-drivers . All
drivers needs to get updated in order to benefit from the new structure.
Instead of raising NotImplementedErrors during runtime this features allows to discovers the drivers feature set during startup and makes it discoverable for CI/code check systems.
The support matrix (see  for a draft implementation) can be extracted to see the graduation process of new functionality moving to a common function implemented by all drivers.
All cinder volume drivers needs to get updated with the following approach:
class FooDriver(driver.RetypeVD, driver.TransferVD, driver.ExtendVD, driver.CloneableVD, driver.CloneableImageVD, driver.SnapshotVD, driver.BaseVD)
A drivers must inherit from BaseVD and implement the basic functions. In order to mark that a driver does implement further feature sets it must inherit from the corresponding class.
If all drivers implement a certain feature set the functions will be moved to BasicVD at the end.
No porting at all, which would make the  pointless.
Data model impact¶
REST API impact¶
Other end user impact¶
Other deployer impact¶
This change will change all implemented drivers slightly. The functionality itself shouldn’t be changed at all but all driver need to be adopted to the new class model.
- Primary assignee:
Marc Koderer (m-koderer)
- Other contributors:
All driver maintainers
Etherpad if necessary.
Individual driver unit tests needs to get adapted.