diff --git a/internal/rbd/rbd_util.go b/internal/rbd/rbd_util.go index 3b72b7c4c..d623327a8 100644 --- a/internal/rbd/rbd_util.go +++ b/internal/rbd/rbd_util.go @@ -1641,6 +1641,10 @@ func (ri *rbdImage) GetCreationTime(ctx context.Context) (*time.Time, error) { return nil, err } + if ri.CreatedAt == nil { + return nil, fmt.Errorf("failed to get creation time for image %q", ri) + } + return ri.CreatedAt, nil } diff --git a/internal/rbd/snapshot.go b/internal/rbd/snapshot.go index d0234e8ca..e903a74f3 100644 --- a/internal/rbd/snapshot.go +++ b/internal/rbd/snapshot.go @@ -145,11 +145,16 @@ func (rbdSnap *rbdSnapshot) toVolume() *rbdVolume { } func (rbdSnap *rbdSnapshot) ToCSI(ctx context.Context) (*csi.Snapshot, error) { + created, err := rbdSnap.GetCreationTime(ctx) + if err != nil { + return nil, err + } + return &csi.Snapshot{ SizeBytes: rbdSnap.VolSize, SnapshotId: rbdSnap.VolID, SourceVolumeId: rbdSnap.SourceVolumeID, - CreationTime: timestamppb.New(*rbdSnap.CreatedAt), + CreationTime: timestamppb.New(*created), ReadyToUse: true, }, nil }