From f711d15551e9e6d4a5d5e58d06188b87fcbeaa7a Mon Sep 17 00:00:00 2001 From: Madhu Rajanna Date: Tue, 30 Jun 2020 21:27:43 +0530 Subject: [PATCH] rbd: store imageID if image is present Added a check to make sure that the image ID is stored if the image is already found. Signed-off-by: Madhu Rajanna --- internal/rbd/rbd_journal.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/internal/rbd/rbd_journal.go b/internal/rbd/rbd_journal.go index 600f7f7b8..d13c2d50c 100644 --- a/internal/rbd/rbd_journal.go +++ b/internal/rbd/rbd_journal.go @@ -280,6 +280,24 @@ func (rv *rbdVolume) Exists(ctx context.Context) (bool, error) { return false, err } + rv.ImageID, err = j.GetStoredImageID(ctx, rv.JournalPool, rv.ReservedID, rv.conn.Creds) + if _, ok := err.(util.ErrKeyNotFound); ok { + err = rv.getImageID() + if err != nil { + klog.Errorf(util.Log(ctx, "failed to get image id %s: %v"), rv, err) + return false, err + } + err = j.StoreImageID(ctx, rv.JournalPool, rv.ReservedID, rv.ImageID, rv.conn.Creds) + if err != nil { + klog.Errorf(util.Log(ctx, "failed to store volume id %s: %v"), rv, err) + return false, err + } + } + if err != nil { + klog.Errorf(util.Log(ctx, "failed to get stored image id: %v"), err) + return false, err + } + // size checks if rv.VolSize < requestSize { err = fmt.Errorf("image with the same name (%s) but with different size already exists",