浏览代码

Z991239-5971 #comment 去掉健康waitfordeamon的调用

oilyang 8 月之前
父节点
当前提交
4691354517

+ 5 - 5
Module/mod_healthmanager/GuardianBase.h

@@ -50,11 +50,11 @@ extern "C" {
 #   define GUARDIANBASE_API
 #endif
 
-GUARDIANBASE_API ErrorCodeEnum ShakeHands(WorkStateEnum &eState);
-GUARDIANBASE_API ErrorCodeEnum PushUpdateTask(const char *pszPackName);
-GUARDIANBASE_API bool IsInstalling();
-GUARDIANBASE_API ErrorCodeEnum UpgradeRestart(const DWORD dwParam1,const DWORD dwParam2);
-GUARDIANBASE_API ErrorCodeEnum FrameworkQuit(int eReason);
+	GUARDIANBASE_API int ShakeHands(WorkStateEnum& eState);
+	GUARDIANBASE_API int PushUpdateTask(const char* pszPackName);
+	GUARDIANBASE_API bool IsInstalling();
+	GUARDIANBASE_API int UpgradeRestart(const DWORD dwParam1, const DWORD dwParam2);
+	GUARDIANBASE_API int FrameworkQuit(int eReason);
 
 
 #ifdef __cplusplus

+ 4 - 21
Module/mod_healthmanager/HealthManagerFSM.cpp

@@ -77,8 +77,6 @@ ErrorCodeEnum CHealthManagerFSM::Initial()
 	GetEntityBase()->GetFunction()->GetSysVar("TerminalStage", csTmpTS);
 	if (csTmpTS.Compare("N") != 0)
 		GetEntityBase()->GetFunction()->SetSysVar("TerminalStage", "X");
-	WaitDeamonFinishTask* task = new WaitDeamonFinishTask(this);
-	GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
 	
 	SP::Module::Net::GetINETMacAddresses(m_netList);
 
@@ -101,6 +99,10 @@ void CHealthManagerFSM::s0_on_entry(void)
 	m_elapseTimeFromOSStart = m_ullElapseFromOSStart / 1000;
 	CSimpleStringA xMsg = CSimpleStringA::Format("{\"Decripstion\":\"Entity start\",\"version\":\"%s\",\"elapseTime\":\"%d\"}", m_sysInfo.InstallVersion.ToString().GetData(), m_elapseTimeFromOSStart);
 	LogWarn(Severity_Low, Error_Unexpect, HealthManager_UserErrorCode_Enter_SafeLoad_State, xMsg.GetData());
+
+	FSMEvent* pEvt = new FSMEvent(USER_EVT_WAIT_DEAMON_FINISHED);
+	pEvt->param1 = 0;
+	PostEventFIFO(pEvt);
 }
 void CHealthManagerFSM::s0_on_exit(void)
 {
@@ -328,25 +330,6 @@ unsigned int CHealthManagerFSM::s11_on_event(FSMEvent* pEvt)
 	return ret;
 }
 
-int CHealthManagerFSM::WaitDeamonFinish()
-{
-	int count = 0;
-	while(1)//max waiting time
-	{
-
-		count++;
-		//query if update deamon process is started oiltmp
-		//case custody
-		//case needreboot
-		//case rollback
-		//case timeout
-		if (count > 2)
-			break;
-		//Sleep(5000);
-	}
-	return 0;
-}
-
 //0:auth suc or have already authed;1:auth failed;
 int CHealthManagerFSM::AccessAuthDoWork()
 {

+ 0 - 15
Module/mod_healthmanager/HealthManagerFSM.h

@@ -159,9 +159,6 @@ public:
 
 	ErrorCodeEnum Initial();
 
-	//¸Ãº¯Êý½¨Òé·ÏÆú
-	int WaitDeamonFinish();
-
 	int AccessAuthDoWork();
 	void SetVtmLoadResult(int bResult);
 	bool GetAccessAuthFlag(){return m_iAccessAuth == VtmLoad_AccessAuth_Suc;}
@@ -230,18 +227,6 @@ private:
 	CAutoArray<SP::Module::Net::NetworkAdapterItem> m_netList;
 };
 
-struct WaitDeamonFinishTask : public ITaskSp
-{
-	CHealthManagerFSM* fsm;
-	WaitDeamonFinishTask(CHealthManagerFSM* f) : fsm(f) {}
-	void Process()
-	{
-		LOG_FUNCTION();
-		FSMEvent *e = new FSMEvent(USER_EVT_WAIT_DEAMON_FINISHED);
-		e->param1 = fsm->WaitDeamonFinish();
-		fsm->PostEventFIFO(e);
-	}
-};
 
 struct AccessAuthTask : public ITaskSp
 {

+ 9 - 13
Module/mod_healthmanager/mod_healthmanager.cpp

@@ -313,8 +313,7 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 				{
 					if (m_pfUpgradeRestart != NULL)
 					{
-						eErr = m_pfUpgradeRestart(3, 0);
-						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("healthmanager say idle,so tell the guardian.%d", eErr);
+						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("healthmanager say idle,so tell the guardian.%d", m_pfUpgradeRestart(3, 0));
 					}
 				}
 				CSimpleStringA csRunCfgPath(""), csStartTime("");
@@ -348,7 +347,7 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 				if (m_pfShake != NULL)
 				{
 					WorkStateEnum eShake;
-					ErrorCodeEnum eErrShake = m_pfShake(eShake);
+					m_pfShake(eShake);
 					m_ullGuardShakeCount++;
 				}
 				if (m_ullGuardShakeCount == 2)//in the next timeout(1 minute later than before,to restart guardian)
@@ -382,8 +381,7 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 				{
 					if (m_pfUpgradeRestart != NULL)
 					{
-						eErr = m_pfUpgradeRestart(5, 0);
-						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("auth suc,so tell the guardian.%d", eErr);
+						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("auth suc,so tell the guardian.%d", m_pfUpgradeRestart(5, 0));
 					}
 				}
 			}
@@ -398,8 +396,7 @@ void CHealthManagerEntity::OnCheckTimeTimeout()
 			if (m_pfShake != NULL)
 			{
 				WorkStateEnum eShake;
-				eErr = m_pfShake(eShake);
-				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("accessauth told me not to restart framework,so that it can have time to retry.%d", eErr);
+				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("accessauth told me not to restart framework,so that it can have time to retry.%d", m_pfShake(eShake));
 			}
 		}
 	}
@@ -887,14 +884,14 @@ bool CHealthManagerEntity::DoRestart()
 		if (m_bNeedGuardian)
 		{
 			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("to tell guardian framework is starting.");
-			eErr = m_pfUpgradeRestart(4, 0);//tell guardian framework is starting...oilyang 20150514
-			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("feedback of framework is starting.%d", eErr);
+			//tell guardian framework is starting...oilyang 20150514
+			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("feedback of framework is starting.%d", m_pfUpgradeRestart(4, 0));
 		}
 		else
 		{
 			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("need Upgrade guardian only");
-			eErr = m_pfUpgradeRestart(6, 0);//tell guardian framework we need Upgrade !!!Only!!! oilyang@20211221
-			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("feedback of need Upgrade guardian only.%d", eErr);
+			//tell guardian framework we need Upgrade !!!Only!!! oilyang@20211221
+			DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("feedback of need Upgrade guardian only.%d", m_pfUpgradeRestart(6, 0));
 		}
 	}
 
@@ -1418,9 +1415,8 @@ void CHealthManagerEntity::WarnAndRestartFunc(RebootTriggerEnum eTrigger, Reboot
 		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)("to tell guardian framework is restarting.%d", m_pfUpgradeRestart(1, 0));
 		}
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("framework shutdown in restart task");
 	}

+ 4 - 4
Module/mod_healthmanager/mod_healthmanager.h

@@ -19,12 +19,12 @@ using namespace UpgradeManager;
 
 
 #include "GuardianBase.h"
-typedef ErrorCodeEnum (*pfShakeHands)(WorkStateEnum &eState);
+typedef int (*pfShakeHands)(WorkStateEnum &eState);
 
-typedef ErrorCodeEnum (*pfPushUpdateTask)(const char *pszPackName);
+typedef int (*pfPushUpdateTask)(const char *pszPackName);
 typedef bool (*pfIsInstalling)();
-typedef ErrorCodeEnum (*pfUpgradeRestart)(const DWORD dwParam1,const DWORD dwParam2);
-typedef ErrorCodeEnum (*pfFrameworkQuit)(RebootTriggerEnum eReason);
+typedef int (*pfUpgradeRestart)(const DWORD dwParam1,const DWORD dwParam2);
+typedef int (*pfFrameworkQuit)(RebootTriggerEnum eReason);
 
 #define DEPLOYSTATE_NOTINIT 0
 #define DEPLOYSTATE_DONE 1

+ 11 - 8
Tool/GuardianBase/GuardianBase.cpp

@@ -48,12 +48,12 @@ int GetSocket()
 	int client_socket = socket(AF_INET, SOCK_STREAM, 0);
 	if (client_socket < 0)
 	{
-		LOG4VTM(ERROR, "Create Socket Failed!");
+		//LOG4VTM(ERROR, "Create Socket Failed!");
 		return -1;
 	}
 	if (bind(client_socket, (struct sockaddr*) & client_addr, sizeof(client_addr)))
 	{
-		LOG4VTM(ERROR, "Client Bind Port Failed!");
+		//LOG4VTM(ERROR, "Client Bind Port Failed!");
 		return -1;
 	}
 
@@ -67,7 +67,7 @@ int GetSocket()
 	//向服务器发起连接,连接成功后client_socket代表了客户机和服务器的一个socket连接
 	if (connect(client_socket, (struct sockaddr*) & server_addr, server_addr_length) < 0)
 	{
-		LOG4VTM(ERROR, "Can Not Connect To server!");
+		//LOG4VTM(ERROR, "Can Not Connect To server!");
 		return -1;
 	}
 	syslog(LOG_ERR,"after getsocket");
@@ -160,6 +160,7 @@ int GetSocket()
 }
 int SendData(GuardianInfo& info,int &sendSocket)
 {
+	//LOG4VTM(INFO, "SendData");
 #ifdef linux
 
 	openlog("gdbase",LOG_CONS|LOG_PID,LOG_LOCAL0);
@@ -168,7 +169,7 @@ int SendData(GuardianInfo& info,int &sendSocket)
 	ConnectSocket = GetSocket();
 
 	if (ConnectSocket == -1) {
-		LOG4VTM(ERROR, "Unable to connect to server!" );
+		//LOG4VTM(ERROR, "Unable to connect to server!" );
 		return -1;
 }
 	sendSocket = ConnectSocket;
@@ -269,6 +270,7 @@ int ShakeHands(WorkStateEnum &eState)
 	memset(pGdInfo, 0, sizeof(GuardianInfo));
 	pGdInfo->eType = GdOpShakeHand;
 	int socket = -1;
+	//LOG4VTM(INFO, "ShakeHands to SendData");
 	int eErr = SendData(*pGdInfo, socket);
 	if (eErr != 0)
 		return eErr;
@@ -280,6 +282,7 @@ int ShakeHands(WorkStateEnum &eState)
     do {
 
         iResult = recv(socket, recvbuf, recvbuflen, 0);
+		//LOG4VTM(INFO, "ShakeHands to recv:" << iResult << "recvbuflen:" << recvbuflen << "recvbuf:" << recvbuf);
 		if (iResult > 0)
 		{
 			//printf("Bytes received: %d\n%s\n", iResult,recvbuf);
@@ -301,10 +304,10 @@ int ShakeHands(WorkStateEnum &eState)
 				break;
 			}
 		}
-		else if (iResult == 0)
-			LOG4VTM(INFO, "Connection closed\n");
-		else
-			LOG4VTM(ERROR, "recv failed with error:" << iResult);
+		//else if (iResult == 0)
+		//	LOG4VTM(INFO, "Connection closed\n");
+		//else
+		//	LOG4VTM(ERROR, "recv failed with error:" << iResult);
 
     } while( iResult > 0 );