From ea620ef7ca68853f14c92d5fb275cf215ed8bc23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 14 Nov 2018 15:31:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8DAzure=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E7=A7=98=E9=92=A5=E6=97=B6stop=E6=9C=BA=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/guestdrivers/azure.go | 4 ++++ pkg/compute/guestdrivers/base.go | 4 ++++ pkg/compute/models/guestdrivers.go | 1 + pkg/compute/models/guests.go | 4 ++-- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/compute/guestdrivers/azure.go b/pkg/compute/guestdrivers/azure.go index 7ea284bec0..3358e4f6b2 100644 --- a/pkg/compute/guestdrivers/azure.go +++ b/pkg/compute/guestdrivers/azure.go @@ -71,6 +71,10 @@ func (self *SAzureGuestDriver) GetDeployStatus() ([]string, error) { return []string{models.VM_RUNNING}, nil } +func (self *SAzureGuestDriver) IsNeedRestartForResetLoginInfo() bool { + return false +} + func (self *SAzureGuestDriver) ValidateResizeDisk(guest *models.SGuest, disk *models.SDisk, storage *models.SStorage) error { //https://docs.microsoft.com/en-us/rest/api/compute/disks/update //Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size diff --git a/pkg/compute/guestdrivers/base.go b/pkg/compute/guestdrivers/base.go index 3f51a26c11..c6a569956c 100644 --- a/pkg/compute/guestdrivers/base.go +++ b/pkg/compute/guestdrivers/base.go @@ -119,6 +119,10 @@ func (self *SBaseGuestDriver) GetDeployStatus() ([]string, error) { return []string{}, fmt.Errorf("This Guest driver dose not implement GetDeployStatus") } +func (self *SBaseGuestDriver) IsNeedRestartForResetLoginInfo() bool { + return true +} + func (self *SBaseGuestDriver) RequestDeleteDetachedDisk(ctx context.Context, disk *models.SDisk, task taskman.ITask, isPurge bool) error { return fmt.Errorf("Not Implement") } diff --git a/pkg/compute/models/guestdrivers.go b/pkg/compute/models/guestdrivers.go index 4881724058..ac07675ae4 100644 --- a/pkg/compute/models/guestdrivers.go +++ b/pkg/compute/models/guestdrivers.go @@ -87,6 +87,7 @@ type IGuestDriver interface { GetDeployStatus() ([]string, error) ValidateResizeDisk(guest *SGuest, disk *SDisk, storage *SStorage) error CanKeepDetachDisk() bool + IsNeedRestartForResetLoginInfo() bool RequestDeleteDetachedDisk(ctx context.Context, disk *SDisk, task taskman.ITask, isPurge bool) error StartGuestDetachdiskTask(ctx context.Context, userCred mcclient.TokenCredential, guest *SGuest, params *jsonutils.JSONDict, parentTaskId string) error diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index ed60c5836f..a7605d695a 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -1916,10 +1916,10 @@ func (self *SGuest) PerformDeploy(ctx context.Context, userCred mcclient.TokenCr return nil, fmt.Errorf("Parse query body error") } - // 变更密码/密钥时需要Restart才能生效。更新普通字段不需要Restart + // 变更密码/密钥时需要Restart才能生效。更新普通字段不需要Restart, Azure需要在运行状态下操作 doRestart := false if kwargs.Contains("__delete_keypair__") || kwargs.Contains("keypair") { - doRestart = true + doRestart = self.GetDriver().IsNeedRestartForResetLoginInfo() var kpId string if !jsonutils.QueryBoolean(kwargs, "__delete_keypair__", false) { keypair, _ := kwargs.GetString("keypair")