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")