mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-01 04:27:15 +08:00
fix: server purge may fail (#7696)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
@@ -46,7 +46,7 @@ type SSubTask struct {
|
||||
Stage string `width:"64" charset:"ascii" nullable:"false" primary:"true"` // Column(VARCHAR(64, charset='ascii'), nullable=False, primary_key=True)
|
||||
SubtaskId string `width:"36" charset:"ascii" nullable:"false" primary:"true"` // Column(VARCHAR(36, charset='ascii'), nullable=False, primary_key=True)
|
||||
Status string `width:"36" charset:"ascii" nullable:"false" default:"init"` // Column(VARCHAR(36, charset='ascii'), nullable=False, default=SUBTASK_INIT)
|
||||
Result string `length:"medium" charset:"ascii" nullable:"true"` // Column(MEDIUMTEXT(charset='ascii'), nullable=True)
|
||||
Result string `length:"medium" charset:"utf8" nullable:"true"` // Column(MEDIUMTEXT(charset='ascii'), nullable=True)
|
||||
}
|
||||
|
||||
func (manager *SSubTaskmanager) GetSubTask(ptaskId string, subtaskId string) *SSubTask {
|
||||
|
||||
@@ -91,7 +91,7 @@ func (self *SGuest) PreCheckPerformAction(
|
||||
) error {
|
||||
if self.Hypervisor == api.HYPERVISOR_KVM {
|
||||
host := self.GetHost()
|
||||
if (host.HostStatus == api.HOST_OFFLINE || !host.Enabled.Bool()) &&
|
||||
if host != nil && (host.HostStatus == api.HOST_OFFLINE || !host.Enabled.Bool()) &&
|
||||
utils.IsInStringArray(action,
|
||||
[]string{
|
||||
"start", "restart", "stop", "reset", "rebuild-root",
|
||||
|
||||
@@ -174,8 +174,12 @@ func (self *GuestDeleteTask) doClearSecurityGroupComplete(ctx context.Context, g
|
||||
models.IsolatedDeviceManager.ReleaseDevicesOfGuest(ctx, guest, self.UserCred)
|
||||
guest.RevokeAllSecgroups(ctx, self.UserCred)
|
||||
// sync revoked secgroups to remote cloud
|
||||
self.SetStage("OnSyncConfigComplete", nil)
|
||||
guest.StartSyncTaskWithoutSyncstatus(ctx, self.UserCred, false, self.GetTaskId())
|
||||
if jsonutils.QueryBoolean(self.Params, "purge", false) {
|
||||
self.OnSyncConfigComplete(ctx, guest, nil)
|
||||
} else {
|
||||
self.SetStage("OnSyncConfigComplete", nil)
|
||||
guest.StartSyncTaskWithoutSyncstatus(ctx, self.UserCred, false, self.GetTaskId())
|
||||
}
|
||||
}
|
||||
|
||||
func (self *GuestDeleteTask) OnSyncConfigComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
|
||||
|
||||
Reference in New Issue
Block a user