rbd: move repairImageID() from rbdVolume struct to rbdImage

The `repairImageID()` function is useful for the `rbdSnapshot` objects
as well. Move it to the `rbdImage` struct that is the base for both
`rbdVolume` and `rbdSnapshot`.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
This commit is contained in:
Niels de Vos 2024-09-24 12:55:26 +02:00 committed by mergify[bot]
parent 9c567fd8a0
commit 2d82cebfeb
2 changed files with 10 additions and 10 deletions

View File

@ -352,29 +352,30 @@ func (rv *rbdVolume) Exists(ctx context.Context, parentVol *rbdVolume) (bool, er
return true, nil return true, nil
} }
// repairImageID checks if rv.ImageID is already available (if so, it was // repairImageID checks if ri.ImageID is already available (if so, it was
// fetched from the journal), in case it is missing, the imageID is obtained // fetched from the journal), in case it is missing, the imageID is obtained
// and stored in the journal. // and stored in the journal.
// if the force is set to true, the latest imageID will get added/updated in OMAP. // if the force is set to true, the latest imageID will get added/updated in OMAP.
func (rv *rbdVolume) repairImageID(ctx context.Context, j *journal.Connection, force bool) error { func (ri *rbdImage) repairImageID(ctx context.Context, j *journal.Connection, force bool) error {
if force { if force {
// reset the imageID so that we can fetch latest imageID from ceph cluster. // reset the imageID so that we can fetch latest imageID from ceph cluster.
rv.ImageID = "" ri.ImageID = ""
} }
if rv.ImageID != "" { if ri.ImageID != "" {
return nil return nil
} }
err := rv.getImageID() err := ri.getImageID()
if err != nil { if err != nil {
log.ErrorLog(ctx, "failed to get image id %s: %v", rv, err) log.ErrorLog(ctx, "failed to get image id %s: %v", ri, err)
return err return err
} }
err = j.StoreImageID(ctx, rv.JournalPool, rv.ReservedID, rv.ImageID)
err = j.StoreImageID(ctx, ri.JournalPool, ri.ReservedID, ri.ImageID)
if err != nil { if err != nil {
log.ErrorLog(ctx, "failed to store volume id %s: %v", rv, err) log.ErrorLog(ctx, "failed to store volume id %s: %v", ri, err)
return err return err
} }

View File

@ -110,6 +110,7 @@ type rbdImage struct {
// This does not have a JSON tag as it is not stashed in JSON encoded // This does not have a JSON tag as it is not stashed in JSON encoded
// config maps in v1.0.0 // config maps in v1.0.0
RequestName string RequestName string
ReservedID string
NamePrefix string NamePrefix string
// ParentName represents the parent image name of the image. // ParentName represents the parent image name of the image.
ParentName string ParentName string
@ -167,7 +168,6 @@ type rbdVolume struct {
AdminID string AdminID string
UserID string UserID string
Mounter string Mounter string
ReservedID string
MapOptions string MapOptions string
UnmapOptions string UnmapOptions string
LogDir string LogDir string
@ -190,7 +190,6 @@ type rbdSnapshot struct {
// SourceVolumeID is the volume ID of RbdImageName, that is exchanged with CSI drivers // SourceVolumeID is the volume ID of RbdImageName, that is exchanged with CSI drivers
// RbdSnapName is the name of the RBD snapshot backing this rbdSnapshot // RbdSnapName is the name of the RBD snapshot backing this rbdSnapshot
SourceVolumeID string SourceVolumeID string
ReservedID string
RbdSnapName string RbdSnapName string
} }