Merge pull request #10434 from ioito/automated-cherry-pick-of-#10433-upstream-release-3.7

Automated cherry pick of #10433: fix: avoid stop or start vm failed
This commit is contained in:
Zexi Li
2021-03-18 10:17:26 +08:00
committed by GitHub
-26
View File
@@ -973,25 +973,7 @@ func (self *SRegion) GetInstanceStatus(instanceId string) (string, error) {
return instance.Status, nil
}
func (self *SRegion) instanceStatusChecking(instanceId, status string) error {
remoteStatus, err := self.GetInstanceStatus(instanceId)
if err != nil {
log.Errorf("Fail to get instance status: %s", err)
return err
}
if status != remoteStatus {
log.Errorf("instanceStatusChecking: vm status is %s expect %s", remoteStatus, status)
return cloudprovider.ErrInvalidStatus
}
return nil
}
func (self *SRegion) StartVM(instanceId string) error {
if err := self.instanceStatusChecking(instanceId, InstanceStatusStopped); err != nil {
return err
}
params := &ec2.StartInstancesInput{}
params.SetInstanceIds([]*string{&instanceId})
ec2Client, err := self.getEc2Client()
@@ -1003,10 +985,6 @@ func (self *SRegion) StartVM(instanceId string) error {
}
func (self *SRegion) StopVM(instanceId string, isForce bool) error {
if err := self.instanceStatusChecking(instanceId, InstanceStatusRunning); err != nil {
return err
}
params := &ec2.StopInstancesInput{}
params.SetInstanceIds([]*string{&instanceId})
ec2Client, err := self.getEc2Client()
@@ -1018,10 +996,6 @@ func (self *SRegion) StopVM(instanceId string, isForce bool) error {
}
func (self *SRegion) DeleteVM(instanceId string) error {
if err := self.instanceStatusChecking(instanceId, InstanceStatusStopped); err != nil {
return err
}
// 检查删除保护状态.如果已开启则先关闭删除保护再进行删除操作
protect, err := self.deleteProtectStatusVM(instanceId)
if err != nil {