From b5a8bb1f6091b4b8075037d96b4966626006a419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Fri, 15 Mar 2019 11:54:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=81=BF=E5=85=8DPerformCreateEip=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E5=90=8Eguest=E7=8A=B6=E6=80=81=E4=B8=80=E7=9B=B4?= =?UTF-8?q?=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/tasks/eip_allocate_task.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkg/compute/tasks/eip_allocate_task.go b/pkg/compute/tasks/eip_allocate_task.go index 1f90eaa240..ebe13127da 100644 --- a/pkg/compute/tasks/eip_allocate_task.go +++ b/pkg/compute/tasks/eip_allocate_task.go @@ -22,9 +22,23 @@ func init() { func (self *EipAllocateTask) onFailed(ctx context.Context, resion string) { self.finalReleasePendingUsage(ctx) + self.setGuestAllocateEipFailed(resion) self.SetStageFailed(ctx, resion) } +func (self *EipAllocateTask) setGuestAllocateEipFailed(resion string) { + if self.Params != nil && self.Params.Contains("instance_id") { + instanceId, _ := self.Params.GetString("instance_id") + instance, err := models.GuestManager.FetchById(instanceId) + if err != nil { + log.Errorf("failed to find guest by id: %s error: %v", instanceId, err) + return + } + guest := instance.(*models.SGuest) + guest.SetStatus(self.UserCred, models.VM_ASSOCIATE_EIP_FAILED, resion) + } +} + func (self *EipAllocateTask) finalReleasePendingUsage(ctx context.Context) { pendingUsage := models.SQuota{} if err := self.GetPendingUsage(&pendingUsage); err == nil && !pendingUsage.IsEmpty() { @@ -79,3 +93,8 @@ func (self *EipAllocateTask) OnInit(ctx context.Context, obj db.IStandaloneModel func (self *EipAllocateTask) OnEipAssociateComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { self.SetStageComplete(ctx, nil) } + +func (self *EipAllocateTask) OnEipAssociateCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { + self.setGuestAllocateEipFailed(data.String()) + self.SetStageFailed(ctx, data.String()) +} From 0aebfd37a526a1d8531140b9602e028e72ee9d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Sun, 17 Mar 2019 14:43:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A1=A5=E5=85=85esix=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E7=9A=84ValidateDiskSize?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/hostdrivers/esxi.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/compute/hostdrivers/esxi.go b/pkg/compute/hostdrivers/esxi.go index 8f56cd07b0..907eafe31f 100644 --- a/pkg/compute/hostdrivers/esxi.go +++ b/pkg/compute/hostdrivers/esxi.go @@ -26,6 +26,10 @@ func (self *SESXiHostDriver) GetHostType() string { return models.HOST_TYPE_ESXI } +func (self *SESXiHostDriver) ValidateDiskSize(storage *models.SStorage, sizeGb int) error { + return nil +} + func (self *SESXiHostDriver) CheckAndSetCacheImage(ctx context.Context, host *models.SHost, storageCache *models.SStoragecache, task taskman.ITask) error { params := task.GetParams() imageId, err := params.GetString("image_id")