diff --git a/internal/csi-addons/rbd/replication.go b/internal/csi-addons/rbd/replication.go index a5c400de32fc..74cef7b70e19 100644 --- a/internal/csi-addons/rbd/replication.go +++ b/internal/csi-addons/rbd/replication.go @@ -862,7 +862,7 @@ func (rs *ReplicationServer) GetVolumeReplicationInfo(ctx context.Context, return nil, status.Error(codes.Internal, err.Error()) } - remoteStatus, err := RemoteStatus(mirrorStatus) + remoteStatus, err := RemoteStatus(ctx, mirrorStatus) if err != nil { log.ErrorLog(ctx, err.Error()) @@ -870,7 +870,7 @@ func (rs *ReplicationServer) GetVolumeReplicationInfo(ctx context.Context, } description := remoteStatus.Description - resp, err := getLastSyncInfo(description) + resp, err := getLastSyncInfo(ctx, description) if err != nil { if errors.Is(err, corerbd.ErrLastSyncTimeNotFound) { return nil, status.Errorf(codes.NotFound, "failed to get last sync info: %v", err) @@ -886,11 +886,14 @@ func (rs *ReplicationServer) GetVolumeReplicationInfo(ctx context.Context, // RemoteStatus returns one SiteMirrorImageStatus item from the SiteStatuses // slice that corresponds to the remote site's status. If the remote status // is not found than the error ErrNotExist will be returned. -func RemoteStatus(gmis *librbd.GlobalMirrorImageStatus) (librbd.SiteMirrorImageStatus, error) { +func RemoteStatus(ctx context.Context, gmis *librbd.GlobalMirrorImageStatus) (librbd.SiteMirrorImageStatus, error) { var ( ss librbd.SiteMirrorImageStatus err error = librbd.ErrNotExist ) + log.TraceLog( + ctx, + "Site Statuses: %s", gmis.SiteStatuses) for i := range gmis.SiteStatuses { if gmis.SiteStatuses[i].MirrorUUID != "" { ss = gmis.SiteStatuses[i] @@ -906,7 +909,7 @@ func RemoteStatus(gmis *librbd.GlobalMirrorImageStatus) (librbd.SiteMirrorImageS // This function gets the local snapshot time, last sync snapshot seconds // and last sync bytes from the description of localStatus and convert // it into required types. -func getLastSyncInfo(description string) (*replication.GetVolumeReplicationInfoResponse, error) { +func getLastSyncInfo(ctx context.Context, description string) (*replication.GetVolumeReplicationInfoResponse, error) { // Format of the description will be as followed: // description = `replaying, {"bytes_per_second":0.0,"bytes_per_snapshot":81920.0, // "last_snapshot_bytes":81920,"last_snapshot_sync_seconds":0, @@ -924,6 +927,10 @@ func getLastSyncInfo(description string) (*replication.GetVolumeReplicationInfoR if description == "" { return nil, fmt.Errorf("empty description: %w", corerbd.ErrLastSyncTimeNotFound) } + log.TraceLog( + ctx, + "description=%q", + description) splittedString := strings.SplitN(description, ",", 2) if len(splittedString) == 1 { return nil, fmt.Errorf("no snapshot details: %w", corerbd.ErrLastSyncTimeNotFound)