diff --git a/pkg/compute/models/cachedimages.go b/pkg/compute/models/cachedimages.go index 81f66fa1b8..4a2018eb16 100644 --- a/pkg/compute/models/cachedimages.go +++ b/pkg/compute/models/cachedimages.go @@ -300,6 +300,8 @@ func (manager *SCachedimageManager) GetImageById(ctx context.Context, userCred m oSTypeOk := options.Options.NoCheckOsTypeForCachedImage || len(cachedImage.GetOSType()) > 0 if !refresh && cachedImage.GetStatus() == cloudprovider.IMAGE_STATUS_ACTIVE && oSTypeOk && !cachedImage.isRefreshSessionExpire() { return cachedImage.GetImage() + } else if options.Options.ProhibitRefreshingCloudImage { + return cachedImage.GetImage() } else if len(cachedImage.ExternalId) > 0 { // external image, request refresh return cachedImage.requestRefreshExternalImage(ctx, userCred) } @@ -323,6 +325,8 @@ func (manager *SCachedimageManager) getImageByName(ctx context.Context, userCred cachedImage := imgObj.(*SCachedimage) if !refresh && cachedImage.GetStatus() == cloudprovider.IMAGE_STATUS_ACTIVE && len(cachedImage.GetOSType()) > 0 && !cachedImage.isRefreshSessionExpire() { return cachedImage.GetImage() + } else if options.Options.ProhibitRefreshingCloudImage { + return cachedImage.GetImage() } else if len(cachedImage.ExternalId) > 0 { // external image, request refresh return cachedImage.requestRefreshExternalImage(ctx, userCred) } diff --git a/pkg/compute/options/options.go b/pkg/compute/options/options.go index 55e2ec34a7..efe663d3a9 100644 --- a/pkg/compute/options/options.go +++ b/pkg/compute/options/options.go @@ -173,6 +173,8 @@ type ComputeOptions struct { NoCheckOsTypeForCachedImage bool `help:"Don't check os type for cached image"` + ProhibitRefreshingCloudImage bool `help:"Prohibit refreshing cloud image"` + esxi.EsxiOptions }