def retype(self, context, volume, new_type, diff, host):
return False, None
+ def create_cloned_volume(self, volume, src_vref):
+ """Creates a clone of the specified volume.
+
+ If volume_type extra specs includes 'replication: <is> True' the
+ driver needs to create a volume replica (secondary)
+ and setup replication between the newly created volume
+ and the secondary volume.
+ """
+ raise NotImplementedError()
+
# ####### Interface methods for DataPath (Connector) ########
@abc.abstractmethod
def ensure_export(self, context, volume):
return
-@six.add_metaclass(abc.ABCMeta)
-class CloneableVD(object):
- @abc.abstractmethod
- def create_cloned_volume(self, volume, src_vref):
- """Creates a clone of the specified volume.
-
- If volume_type extra specs includes 'replication: <is> True' the
- driver needs to create a volume replica (secondary)
- and setup replication between the newly created volume
- and the secondary volume.
- """
-
- return
-
-
@six.add_metaclass(abc.ABCMeta)
class CloneableImageVD(object):
@abc.abstractmethod
class VolumeDriver(ConsistencyGroupVD, TransferVD, ManageableVD, ExtendVD,
- CloneableVD, CloneableImageVD, ManageableSnapshotsVD,
+ CloneableImageVD, ManageableSnapshotsVD,
SnapshotVD, ReplicaVD, LocalVD, MigrateVD, BaseVD):
"""This class will be deprecated soon.
def create_volume_from_snapshot(self, volume, snapshot):
raise NotImplementedError()
- def create_cloned_volume(self, volume, src_vref):
- raise NotImplementedError()
-
def create_replica_test_volume(self, volume, src_vref):
raise NotImplementedError()
CONF.register_opts(volume_opts)
-class BlockDeviceDriver(driver.BaseVD, driver.LocalVD, driver.CloneableVD,
+class BlockDeviceDriver(driver.BaseVD, driver.LocalVD,
driver.CloneableImageVD, driver.TransferVD):
VERSION = '2.1.0'
class DellCommonDriver(driver.ConsistencyGroupVD, driver.ManageableVD,
- driver.ExtendVD, driver.CloneableVD, driver.SnapshotVD,
- driver.BaseVD):
+ driver.ExtendVD, driver.SnapshotVD, driver.BaseVD):
def __init__(self, *args, **kwargs):
super(DellCommonDriver, self).__init__(*args, **kwargs)
CONF.register_opts(volume_opts)
-class GlusterfsDriver(remotefs_drv.RemoteFSSnapDriver, driver.CloneableVD,
+class GlusterfsDriver(remotefs_drv.RemoteFSSnapDriver,
driver.ExtendVD):
"""Gluster based cinder driver.
class GPFSDriver(driver.ConsistencyGroupVD, driver.ExtendVD,
- driver.LocalVD, driver.TransferVD, driver.CloneableVD,
+ driver.LocalVD, driver.TransferVD,
driver.CloneableImageVD, driver.SnapshotVD,
driver.MigrateVD,
driver.BaseVD):
driver.ExtendVD, driver.SnapshotVD,
driver.MigrateVD, driver.ReplicaVD,
driver.ConsistencyGroupVD,
- driver.CloneableVD, driver.CloneableImageVD,
- driver.TransferVD):
+ driver.CloneableImageVD, driver.TransferVD):
"""IBM Storwize V7000 and SVC iSCSI/FC volume driver.
Version history:
driver.MigrateVD,
driver.ReplicaVD,
driver.ConsistencyGroupVD,
- driver.CloneableVD,
driver.CloneableImageVD,
driver.TransferVD):
"""Unified IBM XIV and DS8K volume driver."""
class NetApp7modeFibreChannelDriver(driver.BaseVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.TransferVD,
driver.SnapshotVD):
"""NetApp 7-mode FibreChannel volume driver."""
class NetAppCmodeFibreChannelDriver(driver.BaseVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.TransferVD,
driver.SnapshotVD):
"""NetApp C-mode FibreChannel volume driver."""
class NetApp7modeISCSIDriver(driver.BaseVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.TransferVD,
driver.SnapshotVD):
"""NetApp 7-mode iSCSI volume driver."""
class NetAppCmodeISCSIDriver(driver.BaseVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.TransferVD,
driver.SnapshotVD):
"""NetApp C-mode iSCSI volume driver."""
@six.add_metaclass(utils.TraceWrapperWithABCMetaclass)
class NetAppNfsDriver(driver.ManageableVD,
- driver.CloneableVD,
driver.CloneableImageVD,
driver.SnapshotVD,
nfs.NfsDriver):
class NetAppEseriesFibreChannelDriver(driver.BaseVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.TransferVD,
driver.SnapshotVD):
"""NetApp E-Series FibreChannel volume driver."""
class NetAppEseriesISCSIDriver(driver.BaseVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.TransferVD,
driver.SnapshotVD):
"""NetApp E-Series iSCSI volume driver."""
class DPLCOMMONDriver(driver.ConsistencyGroupVD, driver.ExtendVD,
- driver.CloneableVD, driver.CloneableImageVD,
+ driver.CloneableImageVD,
driver.SnapshotVD, driver.LocalVD, driver.BaseVD):
"""Class of dpl storage adapter."""
VERSION = '2.0.4'
class RBDDriver(driver.TransferVD, driver.ExtendVD,
- driver.CloneableVD, driver.CloneableImageVD, driver.SnapshotVD,
+ driver.CloneableImageVD, driver.SnapshotVD,
driver.MigrateVD, driver.BaseVD):
"""Implements RADOS block device (RBD) volume commands."""
class HP3PARFCDriver(driver.TransferVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.SnapshotVD,
driver.MigrateVD,
driver.ConsistencyGroupVD,
class HP3PARISCSIDriver(driver.TransferVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.SnapshotVD,
driver.MigrateVD,
driver.ConsistencyGroupVD,
class HPLeftHandISCSIDriver(driver.TransferVD,
driver.ManageableVD,
driver.ExtendVD,
- driver.CloneableVD,
driver.SnapshotVD,
driver.MigrateVD,
driver.BaseVD,
class TintriDriver(driver.ManageableVD,
- driver.CloneableVD,
driver.CloneableImageVD,
driver.SnapshotVD,
nfs.NfsDriver):