From b9f808fced6ee315dc3dbb0d195afe79048c73df Mon Sep 17 00:00:00 2001 From: xml Date: Thu, 12 Mar 2026 20:40:40 +0800 Subject: [PATCH] fix: Adjust the conditions for reporting environment check results. Task: https://pms.uniontech.com/task-view-387367.html --- docs/platform.md | 28 ++++ src/internal/updateplatform/message_report.go | 15 +- src/lastore-daemon/manager.go | 5 +- src/lastore-daemon/manager_check.go | 5 +- src/lastore-daemon/manager_download.go | 87 ++++++---- src/lastore-daemon/manager_update.go | 101 +++++++----- src/lastore-daemon/manager_upgrade.go | 154 +++++++++++------- 7 files changed, 250 insertions(+), 145 deletions(-) create mode 100644 docs/platform.md diff --git a/docs/platform.md b/docs/platform.md new file mode 100644 index 000000000..2032556a0 --- /dev/null +++ b/docs/platform.md @@ -0,0 +1,28 @@ +## 更新环境、过程检查或修复结果: +| 事件名称 | 变量 | 公网 API | 内网 API | +|----|--- | ----| ----| +|检查更新前 | preUpdateCheck | ✗ | /api/v1/process/events | +|检查更新后|postUpdateCheck | ✗ | /api/v1/process/events | +|下载更新前|preDownloadCheck | ✗ | /api/v1/process/events | +|下载更新后|postDownloadCheck| ✗ | /api/v1/process/events | +|备份前|preBackupCheck | ✗ | /api/v1/process/events | +|备份后|postBackupCheck | ✗ | /api/v1/process/events | +|系统升级前|preCheck | ✗ | /api/v1/process/events | +|系统升级后|midCheck | ✗ | /api/v1/process/events | +|系统升级完成重启后|postCheck | ✗ | /api/v1/process/events | + +## 更新事件上报: +|描述 | 公网 API | 内网 API | +|----|---- | ----| +|检查到更新 | /api/v1/process | /api/v1/process/events | +|检查更新失败 | /api/v1/process | /api/v1/process/events | +|开始下载 | ✗ | /api/v1/process/events | +|下载完成 | /api/v1/process | /api/v1/process/events | +|下载失败 | /api/v1/process | /api/v1/process/events | +|开始备份 | ✗ | /api/v1/process/events | +|备份成功 | /api/v1/process | /api/v1/process/events | +|备份失败 | ✗ | /api/v1/process/events | +|开始安装 | /api/v1/process | /api/v1/process/events | +|安装失败 | /api/v1/process | /api/v1/process/events | + +> 上述结果只代表当前代码逻辑状态 \ No newline at end of file diff --git a/src/internal/updateplatform/message_report.go b/src/internal/updateplatform/message_report.go index a8c7a0b66..556d812f8 100644 --- a/src/internal/updateplatform/message_report.go +++ b/src/internal/updateplatform/message_report.go @@ -45,6 +45,7 @@ type ProcessEvent struct { EventType int `json:"eventType"` EventStatus bool `json:"eventStatus"` EventContent string `json:"eventContent"` + ExecAct int64 `json:"execAct"` } const ( @@ -55,6 +56,16 @@ const ( StartBackUp int = 5 BackUpComplete int = 6 StartInstall int = 7 + + PreUpdateCheck int = 101 + PostUpdateCheck int = 102 + PreDownloadCheck int = 103 + PostDownloadCheck int = 104 + PreBackupCheck int = 105 + PostBackupCheck int = 106 + PreUpgradeCheck int = 107 + MidUpgradeCheck int = 108 + PostUpgradeCheck int = 109 ) type ShellCheck struct { @@ -1445,6 +1456,9 @@ func (m *UpdatePlatformManager) PostProcessEventMessage(body ProcessEvent) { } logger.Debug("post process event msg:", body) body.TaskID = m.taskID + if body.ExecAct == 0 { + body.ExecAct = time.Now().Unix() + } if (m.config.PlatformDisabled & DisabledProcess) != 0 { logger.Warning("platform is disabled") return @@ -1488,7 +1502,6 @@ func (m *UpdatePlatformManager) PostProcessEventMessage(body ProcessEvent) { if err != nil { logger.Warningf("get post process event msg response failed:%v", err) } - return } // PostStatusMessage 将检查\下载\安装过程中所有异常状态和每个阶段成功的正常状态上报 diff --git a/src/lastore-daemon/manager.go b/src/lastore-daemon/manager.go index 3670d2557..583cb0984 100644 --- a/src/lastore-daemon/manager.go +++ b/src/lastore-daemon/manager.go @@ -162,13 +162,12 @@ func NewManager(service *dbusutil.Service, updateApi system.System, c *config.Co Type: "error", Detail: msg, }, true) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.GetUpdateEvent, EventStatus: false, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) err = m.delRebootCheckOption(all) if err != nil { diff --git a/src/lastore-daemon/manager_check.go b/src/lastore-daemon/manager_check.go index 3e85c2299..b95ab0654 100644 --- a/src/lastore-daemon/manager_check.go +++ b/src/lastore-daemon/manager_check.go @@ -124,13 +124,12 @@ func (m *Manager) checkUpgrade(sender dbus.Sender, checkMode system.UpdateType, Detail: msg, }, false) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.CheckEnv, EventStatus: false, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) m.reportLog(upgradeStatusReport, false, job.Description) }() inhibit(false) diff --git a/src/lastore-daemon/manager_download.go b/src/lastore-daemon/manager_download.go index 66b4fabc9..caabdcfd4 100644 --- a/src/lastore-daemon/manager_download.go +++ b/src/lastore-daemon/manager_download.go @@ -123,13 +123,12 @@ func (m *Manager) prepareDistUpgrade(sender dbus.Sender, origin system.UpdateTyp if m.config.IntranetUpdate { msg := gettext.Tr("New version available! The download of the update package will begin shortly") go m.sendNotify(updateNotifyShow, 0, "preferences-system", "", msg, nil, nil, system.NotifyExpireTimeoutPrivate) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.StartDownload, EventStatus: true, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) } job.initiator = initiator currentJob := job @@ -167,16 +166,24 @@ func (m *Manager) prepareDistUpgrade(sender dbus.Sender, origin system.UpdateTyp } j.setPreHooks(map[string]func() error{ string(system.RunningStatus): func() error { - systemErr := dut.CheckSystem(dut.PreDownloadCheck, nil) - if systemErr != nil { + checkType := dut.PreDownloadCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PreDownloadCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PreDownloadCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } return nil @@ -239,44 +246,44 @@ func (m *Manager) prepareDistUpgrade(sender dbus.Sender, origin system.UpdateTyp JobDescription: job.Description, Detail: msg, }, true) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.StartDownload, EventStatus: false, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) }() - systemErr := dut.CheckSystem(dut.PostDownloadCheck, nil) - if systemErr != nil { + checkType := dut.PostDownloadCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostDownloadCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostDownloadCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } return nil }, string(system.SucceedStatus): func() error { msg := fmt.Sprintf("download %v package success", j.updateTyp.JobType()) - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "info", - UpdateType: mode.JobType(), - JobDescription: j.Description, - Detail: msg, - }, false) // 上报下载成功状态 - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.DownloadComplete, EventStatus: true, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) // 上报下载成功状态 + }) // 上报下载成功状态 logger.Infof("enter download job succeed callback, UpdateNowForce: %v", m.updatePlatform.UpdateNowForce) m.statusManager.SetUpdateStatus(j.updateTyp, system.CanUpgrade) if j.next == nil { @@ -313,16 +320,24 @@ func (m *Manager) prepareDistUpgrade(sender dbus.Sender, origin system.UpdateTyp m.reportLog(downloadStatusReport, true, "") }() - systemErr := dut.CheckSystem(dut.PostDownloadCheck, nil) - if systemErr != nil { + checkType := dut.PostDownloadCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostDownloadCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostDownloadCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } if m.updatePlatform.UpdateNowForce { diff --git a/src/lastore-daemon/manager_update.go b/src/lastore-daemon/manager_update.go index b8aa8f7f9..299c58009 100644 --- a/src/lastore-daemon/manager_update.go +++ b/src/lastore-daemon/manager_update.go @@ -54,36 +54,33 @@ func prepareUpdateSource() { func (m *Manager) beforeUpdateSourceEnvCheck() bool { supportArchs, err := system.SystemArchitectures() if err != nil { - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.CheckEnv, EventStatus: false, EventContent: err.Error(), - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) return false } installedMap, err := loadPkgStatusVersion() if err != nil { - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.CheckEnv, EventStatus: false, EventContent: err.Error(), - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) return false } cmd := exec.Command("dpkg", "--audit") if err := cmd.Run(); err != nil { - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.CheckEnv, EventStatus: false, EventContent: err.Error(), - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) return false } @@ -116,13 +113,12 @@ func (m *Manager) beforeUpdateSourceEnvCheck() bool { if len(errMsg) > 0 { status = false } - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.CheckEnv, EventStatus: status, EventContent: errMsg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) return status } @@ -270,16 +266,24 @@ func (m *Manager) updateSource(sender dbus.Sender) (*Job, error) { m.updatePlatform.SaveCache(m.config) job.setPropProgress(1.0) - systemErr := dut.CheckSystem(dut.PostUpdateCheck, nil) - if systemErr != nil { + checkType := dut.PostUpdateCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostUpdateCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostUpdateCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } return nil @@ -311,25 +315,32 @@ func (m *Manager) updateSource(sender dbus.Sender) (*Job, error) { JobDescription: job.Description, Detail: msg, }, false) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.GetUpdateEvent, EventStatus: false, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) }() - systemErr := dut.CheckSystem(dut.PostUpdateCheck, nil) - if systemErr != nil { + checkType := dut.PostUpdateCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostUpdateCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostUpdateCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } return nil @@ -387,16 +398,24 @@ func (m *Manager) updateSource(sender dbus.Sender) (*Job, error) { m.updatePlatform.PrepareCheckScripts() m.updater.setPropUpdateTarget(m.updatePlatform.GetUpdateTarget()) // 更新目标 历史版本控制中心获取UpdateTarget,获取更新日志 - systemErr := dut.CheckSystem(dut.PreUpdateCheck, nil) - if systemErr != nil { + checkType := dut.PreUpdateCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PreUpdateCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PreUpdateCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } // 从更新平台获取数据并处理完成后,进度更新到10% @@ -642,13 +661,12 @@ func (m *Manager) refreshUpdateInfos(sync bool) { Type: "error", Detail: msg, }, false) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.GetUpdateEvent, EventStatus: false, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) }() logger.Warning(e) } @@ -669,13 +687,12 @@ func (m *Manager) refreshUpdateInfos(sync bool) { Type: "error", Detail: msg, }, false) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.GetUpdateEvent, EventStatus: false, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) }() logger.Warning(e) } diff --git a/src/lastore-daemon/manager_upgrade.go b/src/lastore-daemon/manager_upgrade.go index 04f39267f..482a8f9ba 100644 --- a/src/lastore-daemon/manager_upgrade.go +++ b/src/lastore-daemon/manager_upgrade.go @@ -137,13 +137,12 @@ func (m *Manager) distUpgradePartly(sender dbus.Sender, origin system.UpdateType UpdateType: mode.JobType(), Detail: msg, }, true) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.StartInstall, EventStatus: true, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) return m.jobManager.MarkStart(upgradeJob.Id) } @@ -205,62 +204,75 @@ func (m *Manager) distUpgradePartly(sender dbus.Sender, origin system.UpdateType go m.sendNotify(updateNotifyShow, 0, "preferences-system", "", msg, nil, nil, system.NotifyExpireTimeoutNoHide) } - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.StartBackUp, EventStatus: true, EventContent: "start backup", - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) - systemErr := dut.CheckSystem(dut.PreBackupCheck, nil) - if systemErr != nil { + checkType := dut.PreBackupCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PreBackupCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PreBackupCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } return nil }, string(system.SucceedStatus): func() error { m.statusManager.SetABStatus(mode, system.HasBackedUp, system.NoABError) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.BackUpComplete, EventStatus: true, EventContent: "backup successfully completed", - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) inhibit(false) - systemErr := dut.CheckSystem(dut.PostBackupCheck, nil) - if systemErr != nil { + checkType := dut.PostBackupCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostBackupCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostBackupCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } return nil }, string(system.FailedStatus): func() error { m.statusManager.SetABStatus(mode, system.BackupFailed, system.OtherError) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.BackUpComplete, EventStatus: false, EventContent: "backup failed", - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) // 备份失败时重置UpdateStatus为CanUpgrade,让用户可以重新操作 m.statusManager.SetUpdateStatus(mode, system.CanUpgrade) inhibit(false) @@ -275,16 +287,24 @@ func (m *Manager) distUpgradePartly(sender dbus.Sender, origin system.UpdateType buildDistUpgradePartlyCommand(mode, false))} go m.sendNotify(updateNotifyShowOptional, 0, "preferences-system", "", msg, action, hints, system.NotifyExpireTimeoutDefault) - systemErr := dut.CheckSystem(dut.PostBackupCheck, nil) - if systemErr != nil { + checkType := dut.PostBackupCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostBackupCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) }(systemErr) + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PostBackupCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } return nil @@ -446,13 +466,12 @@ func (m *Manager) distUpgrade(sender dbus.Sender, mode system.UpdateType, needAd UpdateType: mode.JobType(), Detail: msg, }, true) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.StartInstall, EventStatus: false, EventContent: msg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) if unref != nil { unref() @@ -461,25 +480,33 @@ func (m *Manager) distUpgrade(sender dbus.Sender, mode system.UpdateType, needAd } logger.Info("update UUID:", uuid) m.updatePlatform.CreateJobPostMsgInfo(uuid, job.updateTyp) - systemErr := dut.CheckSystem(dut.PreUpgradeCheck, nil) - if systemErr != nil { + checkType := dut.PreUpgradeCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PreUpgradeCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) + + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.StartInstall, EventStatus: false, EventContent: err.Error(), - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) }(systemErr) return systemErr + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.PreUpgradeCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } if !system.CheckInstallAddSize(mode) { return &system.JobError{ @@ -499,25 +526,33 @@ func (m *Manager) distUpgrade(sender dbus.Sender, mode system.UpdateType, needAd endJob.setPreHooks(map[string]func() error{ string(system.SucceedStatus): func() error { - systemErr := dut.CheckSystem(dut.MidUpgradeCheck, nil) - if systemErr != nil { + checkType := dut.MidUpgradeCheck + if systemErr := dut.CheckSystem(checkType, nil); systemErr != nil { logger.Warning(systemErr) - go func(err *system.JobError) { - m.updatePlatform.PostStatusMessage(updateplatform.StatusMessage{ - Type: "error", - JobDescription: err.ErrType.String(), - Detail: err.ErrDetail, - }, true) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.MidUpgradeCheck, + EventStatus: false, + EventContent: err.ErrDetail, + }) + + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.StartInstall, EventStatus: false, EventContent: err.Error(), - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) }(systemErr) + return systemErr + } else { + go m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ + TaskID: 1, + EventType: updateplatform.MidUpgradeCheck, + EventStatus: true, + EventContent: fmt.Sprintf("%v success", checkType), + }) } if m.statusManager.abStatus == system.HasBackedUp { if err := m.immutableManager.osTreeRefresh(); err != nil { @@ -750,13 +785,12 @@ func (m *Manager) preFailedHook(job *Job, mode system.UpdateType, uuid string) e UpdateType: mode.JobType(), Detail: detailMsg, }, true) - procEvent := updateplatform.ProcessEvent{ + m.updatePlatform.PostProcessEventMessage(updateplatform.ProcessEvent{ TaskID: 1, EventType: updateplatform.StartInstall, EventStatus: false, EventContent: detailMsg, - } - m.updatePlatform.PostProcessEventMessage(procEvent) + }) } }() m.statusManager.SetUpdateStatus(mode, system.UpgradeErr)