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,