From fbf5f6825f31cfcc0e8222e68e91287aae38ad74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Mon, 12 Nov 2018 21:52:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=85=BE=E8=AE=AF=E4=BA=91?= =?UTF-8?q?=E4=B8=BB=E6=9C=BA=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD=E7=A3=81?= =?UTF-8?q?=E7=9B=98=E6=98=AF=E5=90=A6=E5=8F=AF=E4=BB=A5resize?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/guestdrivers/qcloud.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/compute/guestdrivers/qcloud.go b/pkg/compute/guestdrivers/qcloud.go index fae3f19f00..ef0dbc6e6d 100644 --- a/pkg/compute/guestdrivers/qcloud.go +++ b/pkg/compute/guestdrivers/qcloud.go @@ -9,6 +9,8 @@ import ( "yunion.io/x/log" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/pkg/util/sysutils" + "yunion.io/x/pkg/utils" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" @@ -67,6 +69,17 @@ func (self *SQcloudGuestDriver) GetDeployStatus() ([]string, error) { return []string{models.VM_READY, models.VM_RUNNING}, nil } +func (self *SQcloudGuestDriver) ValidateResizeDisk(guest *models.SGuest, disk *models.SDisk, storage *models.SStorage) error { + //https://cloud.tencent.com/document/product/362/5747 + if !utils.IsInStringArray(guest.Status, []string{models.VM_READY, models.VM_RUNNING}) { + return fmt.Errorf("Cannot resize disk when guest in status %s", guest.Status) + } + if utils.IsInStringArray(storage.StorageType, []string{sysutils.STORAGE_LOCAL_BASIC, sysutils.STORAGE_LOCAL_SSD}) { + return fmt.Errorf("Cannot resize %s disk", storage.StorageType) + } + return nil +} + func (self *SQcloudGuestDriver) RequestDetachDisk(ctx context.Context, guest *models.SGuest, task taskman.ITask) error { return guest.StartSyncTask(ctx, task.GetUserCred(), false, task.GetTaskId()) }