mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-09 16:00:22 +00:00
rbd: add mirroring helper for image
Add helper methods for the rbd image mirroring. Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
parent
03de220380
commit
132f258569
@ -20,8 +20,10 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/container-storage-interface/spec/lib/go/csi"
|
"github.com/container-storage-interface/spec/lib/go/csi"
|
||||||
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//nolint:interfacebloat // more than 10 methods are needed for the interface
|
||||||
type Volume interface {
|
type Volume interface {
|
||||||
// Destroy frees the resources used by the Volume.
|
// Destroy frees the resources used by the Volume.
|
||||||
Destroy(ctx context.Context)
|
Destroy(ctx context.Context)
|
||||||
@ -40,4 +42,21 @@ type Volume interface {
|
|||||||
|
|
||||||
// RemoveFromGroup removes the Volume from the VolumeGroup.
|
// RemoveFromGroup removes the Volume from the VolumeGroup.
|
||||||
RemoveFromGroup(ctx context.Context, vg VolumeGroup) error
|
RemoveFromGroup(ctx context.Context, vg VolumeGroup) error
|
||||||
|
|
||||||
|
// GetPoolName returns the name of the pool where the volume is stored.
|
||||||
|
GetPoolName() string
|
||||||
|
// GetCreationTime returns the creation time of the volume.
|
||||||
|
GetCreationTime() (*timestamppb.Timestamp, error)
|
||||||
|
// GetMetadata returns the value of the metadata key from the volume.
|
||||||
|
GetMetadata(key string) (string, error)
|
||||||
|
// SetMetadata sets the value of the metadata key on the volume.
|
||||||
|
SetMetadata(key, value string) error
|
||||||
|
// RepairResyncedImageID updates the existing image ID with new one in OMAP.
|
||||||
|
RepairResyncedImageID(ctx context.Context, ready bool) error
|
||||||
|
// HandleParentImageExistence checks the image's parent.
|
||||||
|
// if the parent image does not exist and is not in trash, it returns nil.
|
||||||
|
// if the flattenMode is FlattenModeForce, it flattens the image itself.
|
||||||
|
// if the parent image is in trash, it returns an error.
|
||||||
|
// if the parent image exists and is not enabled for mirroring, it returns an error.
|
||||||
|
HandleParentImageExistence(ctx context.Context, flattenMode FlattenMode) error
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user