From 1ca3435c433232d3f0ae8b3a1e4809a4a6e56455 Mon Sep 17 00:00:00 2001 From: xing-yang Date: Mon, 30 Dec 2019 04:41:01 +0000 Subject: [PATCH] Check ReadyToUse in sidecar --- pkg/sidecar-controller/snapshot_controller.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/sidecar-controller/snapshot_controller.go b/pkg/sidecar-controller/snapshot_controller.go index 87c1d0ab..72fd5230 100644 --- a/pkg/sidecar-controller/snapshot_controller.go +++ b/pkg/sidecar-controller/snapshot_controller.go @@ -80,6 +80,13 @@ func (ctrl *csiSnapshotSideCarController) syncContent(content *crdv1.VolumeSnaps return err } } else { + // Skip checkandUpdateContentStatus() if ReadyToUse is + // already true. We don't want to keep calling CreateSnapshot + // or ListSnapshots CSI methods over and over again for + // performance reasons. + if content.Status != nil && content.Status.ReadyToUse != nil && *content.Status.ReadyToUse == true { + return nil + } if err = ctrl.checkandUpdateContentStatus(content); err != nil { ctrl.updateContentErrorStatusWithEvent(content, v1.EventTypeWarning, "SnapshotContentStatusUpdateFailed", fmt.Sprintf("Failed to update snapshot content status with error %v", err)) return err