mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
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:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user