From a493c7022acf7098a0a07dba67e5e719f1d10e54 Mon Sep 17 00:00:00 2001 From: rainzm Date: Thu, 5 Aug 2021 18:59:35 +0800 Subject: [PATCH] fix(region): prohibit resizing the disk of a esxi vm with instance snapshots --- pkg/compute/models/disks.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/compute/models/disks.go b/pkg/compute/models/disks.go index 8af785e043..a9cf0e7adc 100644 --- a/pkg/compute/models/disks.go +++ b/pkg/compute/models/disks.go @@ -862,6 +862,15 @@ func (disk *SDisk) PerformResize(ctx context.Context, userCred mcclient.TokenCre if guest != nil { return nil, httperrors.NewUnsupportOperationError("try use /servers/<%s>/resize-disk API", guest.Id) } + if guest.Hypervisor == api.HYPERVISOR_ESXI { + c, err := guest.GetInstanceSnapshotCount() + if err != nil { + return nil, errors.Wrapf(err, "unable to GetInstanceSnapshotCount for guest %s", guest.GetName()) + } + if c > 0 { + return nil, httperrors.NewUnsupportOperationError("the disk of a esxi virtual machine with instance snapshots does not support resizing") + } + } sizeMb, err := input.SizeMb() if err != nil { return nil, err