From da60d221dfa354e915ab1e4bd2e81497898359a0 Mon Sep 17 00:00:00 2001 From: Madhu Rajanna Date: Wed, 15 Dec 2021 11:35:34 +0530 Subject: [PATCH] rbd: update size for rbdSnapshot struct we need actual size of the rbdVolume created for the snapshot, as we are not storing the size of the snapshot in OMAP we need to fetch the size from ceph cluster and update the same on rbdSnapshot struct. Signed-off-by: Madhu Rajanna --- internal/rbd/rbd_util.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/internal/rbd/rbd_util.go b/internal/rbd/rbd_util.go index 91068d399..eed7b7924 100644 --- a/internal/rbd/rbd_util.go +++ b/internal/rbd/rbd_util.go @@ -1055,9 +1055,33 @@ func genSnapFromSnapID( } } + err = updateSnapshotDetails(rbdSnap) + if err != nil { + return fmt.Errorf("failed to update snapshot details for %q: %w", rbdSnap, err) + } + return err } +// updateSnapshotDetails will copies the details from the rbdVolume to the +// rbdSnapshot. example copying size from rbdVolume to rbdSnapshot. +func updateSnapshotDetails(rbdSnap *rbdSnapshot) error { + vol := generateVolFromSnap(rbdSnap) + err := vol.Connect(rbdSnap.conn.Creds) + if err != nil { + return err + } + defer vol.Destroy() + + err = vol.getImageInfo() + if err != nil { + return err + } + rbdSnap.VolSize = vol.VolSize + + return nil +} + // generateVolumeFromVolumeID generates a rbdVolume structure from the provided identifier. func generateVolumeFromVolumeID( ctx context.Context,