Merge pull request #486 in YUNIONIO/onecloud from ~QIUJIAN/onecloud:hotfix/qj-delete-server-ignore-stop-error to release/2.0.0

* commit 'cda1edfc45cfaedc935be32b939928b341ecb3f3':
  修正:删除主机时忽略停机错误
This commit is contained in:
邱剑
2018-11-13 19:08:27 +08:00
2 changed files with 15 additions and 2 deletions
+3
View File
@@ -1343,6 +1343,9 @@ func (self *SGuest) Attach2Network(ctx context.Context, userCred mcclient.TokenC
}
}
notes := jsonutils.NewDict()
if len(address) == 0 {
address = guestnic.IpAddr
}
notes.Add(jsonutils.NewString(address), "ip_addr")
db.OpsLog.LogAttachEvent(self, network, userCred, notes)
return nil
+12 -2
View File
@@ -33,8 +33,10 @@ func (self *GuestDeleteTask) OnInit(ctx context.Context, obj db.IStandaloneModel
self.SetStage("on_guest_stop_complete", nil)
err := guest.GetDriver().RequestStopGuestForDelete(ctx, guest, self)
if err != nil {
errMsg := jsonutils.NewString(err.Error())
self.OnGuestStopCompleteFailed(ctx, obj, errMsg)
log.Errorf("RequestStopGuestForDelete fail %s", err)
// errMsg := jsonutils.NewString(err.Error())
// self.OnGuestStopCompleteFailed(ctx, obj, errMsg)
self.OnGuestStopComplete(ctx, obj, data)
}
}
@@ -56,6 +58,10 @@ func (self *GuestDeleteTask) OnGuestStopComplete(ctx context.Context, obj db.ISt
}
func (self *GuestDeleteTask) OnGuestStopCompleteFailed(ctx context.Context, obj db.IStandaloneModel, err jsonutils.JSONObject) {
self.OnGuestStopComplete(ctx, obj, err) // ignore stop error
}
func (self *GuestDeleteTask) OnGuestDeleteFailed(ctx context.Context, obj db.IStandaloneModel, err jsonutils.JSONObject) {
guest := obj.(*models.SGuest)
guest.SetStatus(self.UserCred, models.VM_DELETE_FAIL, err.String())
db.OpsLog.LogEvent(guest, db.ACT_DELOCATE_FAIL, err, self.UserCred)
@@ -94,6 +100,10 @@ func (self *GuestDeleteTask) OnGuestDetachDisksComplete(ctx context.Context, obj
self.DoDeleteGuest(ctx, guest)
}
func (self *GuestDeleteTask) OnGuestDetachDisksCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
self.OnGuestDeleteFailed(ctx, obj, data)
}
func (self *GuestDeleteTask) DoDeleteGuest(ctx context.Context, guest *models.SGuest) {
models.IsolatedDeviceManager.ReleaseDevicesOfGuest(guest, self.UserCred)
host := guest.GetHost()