From 7c9259a45e1fcae86f471b68a8d02db32a9dd0b8 Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Tue, 7 Jun 2022 13:29:22 +0530 Subject: [PATCH] cephfs: set metadata on the subvolume snapshot on create Set snapshot-name/snapshot-namespace/snapshotcontent-name details on subvolume snapshots as metadata on create. Signed-off-by: Prasanna Kumar Kalever --- internal/cephfs/controllerserver.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/internal/cephfs/controllerserver.go b/internal/cephfs/controllerserver.go index d7f5fd6d7..dce5e7593 100644 --- a/internal/cephfs/controllerserver.go +++ b/internal/cephfs/controllerserver.go @@ -854,7 +854,8 @@ func (cs *ControllerServer) CreateSnapshot( } } }() - snap, err := doSnapshot(ctx, parentVolOptions, sID.FsSnapshotName) + metadata := k8s.GetSnapshotMetadata(req.GetParameters()) + snap, err := doSnapshot(ctx, parentVolOptions, sID.FsSnapshotName, metadata) if err != nil { return nil, status.Error(codes.Internal, err.Error()) } @@ -874,6 +875,7 @@ func doSnapshot( ctx context.Context, volOpt *store.VolumeOptions, snapshotName string, + metadata map[string]string, ) (core.SnapshotInfo, error) { snapID := fsutil.VolumeID(snapshotName) snap := core.SnapshotInfo{} @@ -909,6 +911,15 @@ func doSnapshot( log.ErrorLog(ctx, "failed to protect snapshot %s %v", snapID, err) } + // Set snapshot-name/snapshot-namespace/snapshotcontent-name details + // on subvolume snapshot as metadata on create + if len(metadata) != 0 { + err = snapClient.SetAllSnapshotMetadata(metadata) + if err != nil { + return snap, err + } + } + return snap, err }