mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
server delete etc fix
This commit is contained in:
@@ -147,6 +147,12 @@ func (self *SManagedVirtualizedGuestDriver) RequestUndeployGuestOnHost(ctx conte
|
||||
log.Errorf("host.GetIHost fail %s", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 创建失败时external id为空。此时直接返回即可。不需要再调用公有云api
|
||||
if len(guest.ExternalId) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
ivm, err := ihost.GetIVMById(guest.ExternalId)
|
||||
if err != nil {
|
||||
if err == cloudprovider.ErrNotFound {
|
||||
|
||||
@@ -189,6 +189,12 @@ func (self *SInstance) Refresh() error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if new.Status == InstanceStatusTerminated {
|
||||
log.Debugf("Instance already terminated.")
|
||||
return cloudprovider.ErrNotFound
|
||||
}
|
||||
|
||||
return jsonutils.Update(self, new)
|
||||
}
|
||||
|
||||
@@ -418,6 +424,11 @@ func (self *SInstance) StopVM(ctx context.Context, isForce bool) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
if self.Status == InstanceStatusTerminated {
|
||||
log.Debugf("Instance already terminated.")
|
||||
return nil
|
||||
}
|
||||
|
||||
err := self.host.zone.region.StopVM(self.GetId(), isForce)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -426,6 +437,10 @@ func (self *SInstance) StopVM(ctx context.Context, isForce bool) error {
|
||||
}
|
||||
|
||||
func (self *SInstance) DeleteVM(ctx context.Context) error {
|
||||
if self.Status == InstanceStatusTerminated {
|
||||
return nil
|
||||
}
|
||||
|
||||
for {
|
||||
err := self.host.zone.region.DeleteVM(self.GetId())
|
||||
if err != nil && self.Status != InstanceStatusTerminated {
|
||||
@@ -828,10 +843,6 @@ func (self *SRegion) DeleteVM(instanceId string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if remoteStatus == InstanceStatusTerminated {
|
||||
return nil
|
||||
}
|
||||
|
||||
if remoteStatus != InstanceStatusStopped {
|
||||
log.Errorf("DeleteVM vm status is %s expect %s", remoteStatus, InstanceStatusStopped)
|
||||
return cloudprovider.ErrInvalidStatus
|
||||
|
||||
Reference in New Issue
Block a user