Automatic merge from release/2.1.0 -> release/2.2.0

* commit '7af93208dd1283087754b91919ba5e1d345fb01e':
  只有guest.DisableDelete==true的时候才设置
  调度失败后主机自动允许删除
This commit is contained in:
邱剑
2018-09-03 10:07:24 +08:00
2 changed files with 15 additions and 0 deletions
+12
View File
@@ -3500,3 +3500,15 @@ func (manager *SGuestManager) CleanPendingDeleteServers(ctx context.Context, use
guests[i].StartDeleteGuestTask(ctx, userCred, "", false, true)
}
}
func (self *SGuest) SetDisableDelete(val bool) error {
_, err := self.GetModelManager().TableSpec().Update(self, func() error {
if val {
self.DisableDelete = tristate.True
} else {
self.DisableDelete = tristate.False
}
return nil
})
return err
}
@@ -77,6 +77,9 @@ func (self *GuestBatchCreateTask) onScheduleFail(ctx context.Context, guest *mod
if len(msg) > 0 {
reason = fmt.Sprintf("%s: %s", reason, msg)
}
if guest.DisableDelete.IsTrue() {
guest.SetDisableDelete(false)
}
guest.SetStatus(self.UserCred, models.VM_SCHEDULE_FAILED, reason)
db.OpsLog.LogEvent(guest, db.ACT_ALLOCATE_FAIL, reason, self.UserCred)
notifyclient.NotifySystemError(guest.Id, guest.Name, models.VM_SCHEDULE_FAILED, reason)