Эх сурвалжийг харах

Z991239-5629 #comment feat: 1.增加重启事件码,根据事件码决定做版本回退与否 2. 修改弹窗标题话术

陈纪林80310970 1 жил өмнө
parent
commit
afc3a41b82

+ 67 - 16
Module/mod_healthmanager/mod_healthmanager.cpp

@@ -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

+ 7 - 2
Module/mod_healthmanager/mod_healthmanager.h

@@ -226,7 +226,7 @@ public:
 	void ReadCenterConfigStr(SpReqAnsContext<HealthManagerService_ReadCenterConfigStr_Req, HealthManagerService_ReadCenterConfigStr_Ans>::Pointer ctx);
 	void GetAuthErrMsg(SpReqAnsContext<HealthManagerService_GetAuthErrMsg_Req, HealthManagerService_GetAuthErrMsg_Ans>::Pointer ctx);
 	bool StartManagerDesktopPage(CSimpleStringA pageName);
-	void WarnAndRestartFramwork();
+	void WarnAndRestartFunc(RebootTriggerEnum eTrigger, RebootWayEnum eWay, bool needWarn = false, bool needVerctrl = false);
 	void RealCheck(SpReqAnsContext<HealthManagerService_RealCheck_Req, HealthManagerService_RealCheck_Ans>::Pointer ctx);
 	void OnAnswer(CSmartPointer<IAsynWaitSp> pAsynWaitSp);
 	ErrorCodeEnum ExceptionErrorProcess(const char* pszEntityName, ErrorCodeEnum eTestResult);
@@ -296,11 +296,16 @@ private:
 
 struct FrameworkRestartTask : public ITaskSp
 {
+	RebootTriggerEnum eTrigger;
+	RebootWayEnum eWay;
+	bool needWarn; 
+	bool needVerctrl;
+
 	CHealthManagerEntity* m_entity;
 	FrameworkRestartTask(CHealthManagerEntity* entity) : m_entity(entity) {}
 	void Process()
 	{
-		m_entity->WarnAndRestartFramwork();
+		m_entity->WarnAndRestartFunc(eTrigger, eWay, needWarn, needVerctrl);
 	}
 };
 

+ 1 - 1
addin/res/ManagerDesktop/upgradeRestart.html

@@ -21,7 +21,7 @@
 			</div>
 		</nav>
 		<div class="hareword-info upgrade-restart">
-			<h3 class="fz_44">系统升级中,稍后自动重启应用<dot class="dot">●●●●●●</dot></h3>
+			<h3 class="fz_44">版本切换中,稍后自动重启应用<dot class="dot">●●●●●●</dot></h3>
 			<!-- <p id="errorInfo">
 				该设备硬件地址信息和后台记录不一致,请联系分行设备管理员扫描下方二维码。
 			</p> -->