|
@@ -1032,6 +1032,7 @@ void CHealthManagerEntity::OnLog(const CAutoArray<CUUID>& SubIDs, const CUUID nL
|
|
|
case LOG_EVT_IEBROWSER_RESET_SITE_RESTART: //重设root.ini的site,重启框架
|
|
|
|
|
|
case Event_Req_Framework_No_Upgrade_Restart://升级请求重启框架(体系外升级等等)
|
|
|
+ case Event_Req_Framework_Rollback_Restart:
|
|
|
{
|
|
|
//TODO oilyang@20230613 all of the Privilege CMD need to been collated
|
|
|
LogWarn(Severity_Low, Error_Unexpect, HealthManager_UserErrorCode_PrivilegeCMD, CSimpleStringA::Format("%x", dwUserCode));
|
|
@@ -1050,7 +1051,12 @@ void CHealthManagerEntity::OnLog(const CAutoArray<CUUID>& SubIDs, const CUUID nL
|
|
|
}
|
|
|
if (dwUserCode == Event_Req_Framework_Restart)
|
|
|
{
|
|
|
- FrameworkRestartTask* task = new FrameworkRestartTask(this); //通过工作线程弹窗并重启
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Event_Req_Framework_Restart.!!!!");
|
|
|
+ FrameworkRestartTask* task = new FrameworkRestartTask(this); //版本升级,有监控
|
|
|
+ task->needWarn = true;
|
|
|
+ task->needVerctrl = true;
|
|
|
+ task->eTrigger = RebootTrigger_FrameUpgrade;
|
|
|
+ task->eWay = RebootWay_Framework;
|
|
|
GetFunction()->PostThreadPoolTask(task);
|
|
|
break;
|
|
|
}
|
|
@@ -1058,13 +1064,34 @@ void CHealthManagerEntity::OnLog(const CAutoArray<CUUID>& SubIDs, const CUUID nL
|
|
|
{
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("version rollback succeed.to restart framework");
|
|
|
m_bVerRollback = false;
|
|
|
- m_fsm.QuitFrameworkAndSaveInfo(RebootTrigger_RollBack, RebootWay_Framework);
|
|
|
+ FrameworkRestartTask* task = new FrameworkRestartTask(this); //心跳重启,无监控
|
|
|
+ task->needWarn = true;
|
|
|
+ task->needVerctrl = false;
|
|
|
+ task->eTrigger = RebootTrigger_RollBack;
|
|
|
+ task->eWay = RebootWay_Framework;
|
|
|
+ GetFunction()->PostThreadPoolTask(task);
|
|
|
break;
|
|
|
}
|
|
|
else if (dwUserCode == Event_Req_Framework_No_Upgrade_Restart)
|
|
|
{
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Event_Req_Framework_No_Upgrade_Restart.!!!!");
|
|
|
- FrameworkRestartTask* task = new FrameworkRestartTask(this); //通过工作线程弹窗并重启
|
|
|
+ FrameworkRestartTask* task = new FrameworkRestartTask(this); //体系外升级,无监控
|
|
|
+ task->needWarn = true;
|
|
|
+ task->needVerctrl = false;
|
|
|
+ task->eTrigger = RebootTrigger_FrameUpgrade;
|
|
|
+ task->eWay = RebootWay_Framework;
|
|
|
+ GetFunction()->PostThreadPoolTask(task);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ else if (dwUserCode == Event_Req_Framework_Rollback_Restart)
|
|
|
+ {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("version rollback succeed.to restart framework");
|
|
|
+ m_bVerRollback = false;
|
|
|
+ FrameworkRestartTask* task = new FrameworkRestartTask(this); //回退,无监控
|
|
|
+ task->needWarn = true;
|
|
|
+ task->needVerctrl = false;
|
|
|
+ task->eTrigger = RebootTrigger_RollBack;
|
|
|
+ task->eWay = RebootWay_Framework;
|
|
|
GetFunction()->PostThreadPoolTask(task);
|
|
|
break;
|
|
|
}
|
|
@@ -1073,12 +1100,30 @@ void CHealthManagerEntity::OnLog(const CAutoArray<CUUID>& SubIDs, const CUUID nL
|
|
|
break;
|
|
|
case EVENT_RESTART_MACHINE:
|
|
|
case Event_Req_OS_Restart://case os restart after outside update
|
|
|
+ case Event_Req_OS_Upgrade_Restart:
|
|
|
case EVENT_CONSOLE_REQ_RESTART_POWER:
|
|
|
{
|
|
|
LogWarn(Severity_Low, Error_Unexpect, HealthManager_UserErrorCode_PrivilegeCMD, CSimpleStringA::Format("%x", dwUserCode));
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("restart [%x]", dwUserCode);
|
|
|
if (dwUserCode == Event_Req_OS_Restart)
|
|
|
- m_fsm.QuitFrameworkAndSaveInfo(RebootTrigger_OSUpgrade, RebootWay_OS);
|
|
|
+ {
|
|
|
+
|
|
|
+ FrameworkRestartTask* task = new FrameworkRestartTask(this);
|
|
|
+ task->needWarn = false;
|
|
|
+ task->needVerctrl = false;
|
|
|
+ task->eTrigger = RebootTrigger_OSUpgrade;
|
|
|
+ task->eWay = RebootWay_OS;
|
|
|
+ GetFunction()->PostThreadPoolTask(task);
|
|
|
+ }
|
|
|
+ else if (dwUserCode == Event_Req_OS_Upgrade_Restart)
|
|
|
+ {
|
|
|
+ FrameworkRestartTask* task = new FrameworkRestartTask(this);
|
|
|
+ task->needWarn = false;
|
|
|
+ task->needVerctrl = true;
|
|
|
+ task->eTrigger = RebootTrigger_OSUpgrade;
|
|
|
+ task->eWay = RebootWay_OS;
|
|
|
+ GetFunction()->PostThreadPoolTask(task);
|
|
|
+ }
|
|
|
else
|
|
|
m_fsm.QuitFrameworkAndSaveInfo(RebootTrigger_Unknown, RebootWay_OS);
|
|
|
}
|
|
@@ -1338,22 +1383,28 @@ bool CHealthManagerEntity::StartManagerDesktopPage(CSimpleStringA pageName)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
-void CHealthManagerEntity::WarnAndRestartFramwork()
|
|
|
+void CHealthManagerEntity::WarnAndRestartFunc(RebootTriggerEnum eTrigger, RebootWayEnum eWay, bool needWarn, bool needVerctrl)
|
|
|
{
|
|
|
- StartManagerDesktopPage("upgradeRestart.html");
|
|
|
- Sleep(5000);
|
|
|
+ if (needWarn)
|
|
|
+ {
|
|
|
+ StartManagerDesktopPage("upgradeRestart.html");
|
|
|
+ Sleep(5000);
|
|
|
+ }
|
|
|
|
|
|
- SaveCurrentVersion();
|
|
|
- SaveFrameStartTimeForUpgrade();
|
|
|
- if (CheckGuardianIsRun(true) > 0)
|
|
|
+ if (needVerctrl)
|
|
|
{
|
|
|
- ErrorCodeEnum eErr = Error_Unexpect;
|
|
|
- eErr = m_pfUpgradeRestart(1, 0);
|
|
|
- //Dbg("to tell guardian framework is restarting.%d",eErr);
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("to tell guardian framework is restarting.%d", eErr);
|
|
|
+ SaveCurrentVersion();
|
|
|
+ SaveFrameStartTimeForUpgrade();
|
|
|
+ if (CheckGuardianIsRun(true) > 0)
|
|
|
+ {
|
|
|
+ ErrorCodeEnum eErr = Error_Unexpect;
|
|
|
+ eErr = m_pfUpgradeRestart(1, 0);
|
|
|
+ //Dbg("to tell guardian framework is restarting.%d",eErr);
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("to tell guardian framework is restarting.%d", eErr);
|
|
|
+ }
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("framework shutdown in restart task");
|
|
|
}
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("framework shutdown in restart task");
|
|
|
- m_fsm.QuitFrameworkAndSaveInfo(RebootTrigger_FrameUpgrade, RebootWay_Framework);
|
|
|
+ m_fsm.QuitFrameworkAndSaveInfo(eTrigger, eWay);
|
|
|
}
|
|
|
|
|
|
namespace
|