mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Automatic merge from release/2.1.0 -> release/2.2.0
* commit '7af93208dd1283087754b91919ba5e1d345fb01e': 只有guest.DisableDelete==true的时候才设置 调度失败后主机自动允许删除
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user