|
@@ -3622,9 +3622,9 @@ void CUpgradeTaskFSM::SendUpgradeTaskProgress(CTaskProcess &process, CSimpleStri
|
|
|
}else{
|
|
|
root["installVersion"]=process.installVersion.GetData();
|
|
|
}
|
|
|
- string currentBuildStr = CSimpleStringA::Format("%d.%d.%d",process.CurrentVersion.GetMajor(),process.CurrentVersion.GetMinor(),process.CurrentVersion.GetRevision()).GetData();
|
|
|
- root["CurrentVersion"]=process.CurrentVersion.ToString().GetData();
|
|
|
- root["CurrentBuild"]=currentBuildStr.c_str();
|
|
|
+ //string currentBuildStr = CSimpleStringA::Format("%d.%d.%d",process.CurrentVersion.GetMajor(),process.CurrentVersion.GetMinor(),process.CurrentVersion.GetRevision()).GetData();
|
|
|
+ root["CurrentVersion"]=process.CurrentVersion.GetData();
|
|
|
+ root["CurrentBuild"]= process.CurrentVersion.GetData();
|
|
|
root["upgradeTimeStr"]=CSmallDateTime::GetNow().ToTimeString().GetData();
|
|
|
|
|
|
if(!process.cInstallState.IsNullOrEmpty()){
|
|
@@ -6264,43 +6264,65 @@ unsigned int CUpgradeTaskFSM::s2_on_event(FSMEvent* event)
|
|
|
|
|
|
//告警回滚和升级成功
|
|
|
if(m_currentTask.cPendingState=="T"){
|
|
|
- if(m_currentTask.NewVersion == m_currentVersion.ToString()||
|
|
|
- m_currentTask.depNewVersion == m_currentDepVersion ||
|
|
|
- (m_currentTask.NewVersion == "" && m_currentTask.depNewVersion == "")) {
|
|
|
- //安装成功
|
|
|
+ if (isTerminalInstall()) {
|
|
|
+ //安装情况
|
|
|
struct CTaskProcess up;
|
|
|
- up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
- up.installVersion = m_currentVersion.ToString();//当前的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
- up.cInstallState = "A";
|
|
|
- up.strInstallComment = "启动成功";
|
|
|
- if (m_currentTask.task_type.Compare("U")==0) {
|
|
|
- SendUpgradeTaskProgress(up, UpgradeMgr_START_ID);
|
|
|
+ up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
+ if (!m_currentTask.depNewVersion.IsNullOrEmpty()) {
|
|
|
+ up.installVersion = m_currentVersion.ToString();//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
}
|
|
|
else {
|
|
|
- SendUpgradeTaskProgress(up, UpgradeMgr_ROLLBACK_START_ID);
|
|
|
+ up.installVersion = m_currentTask.depNewVersion.GetData();//适配器版本
|
|
|
+ up.CurrentVersion = m_currentDepVersion;//适配器当前版本
|
|
|
}
|
|
|
+ up.cInstallState = "A";
|
|
|
+ up.strInstallComment = "启动成功";
|
|
|
+ SendUpgradeTaskProgress(up, UpgradeMgr_START_ID);
|
|
|
upgradeSuccStateBroadCast();//广播告知升级成功
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ //非安装情况
|
|
|
+ if (m_currentTask.NewVersion == m_currentVersion.ToString() ||
|
|
|
+ m_currentTask.depNewVersion == m_currentDepVersion ||
|
|
|
+ (m_currentTask.NewVersion == "" && m_currentTask.depNewVersion == "")) {
|
|
|
+ //安装成功
|
|
|
+ struct CTaskProcess up;
|
|
|
+ up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
+ up.installVersion = m_currentVersion.ToString();//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
+ up.cInstallState = "A";
|
|
|
+ up.strInstallComment = "启动成功";
|
|
|
+ if (m_currentTask.task_type.Compare("U") == 0) {
|
|
|
+ SendUpgradeTaskProgress(up, UpgradeMgr_START_ID);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ SendUpgradeTaskProgress(up, UpgradeMgr_ROLLBACK_START_ID);
|
|
|
+ }
|
|
|
+ upgradeSuccStateBroadCast();//广播告知升级成功
|
|
|
|
|
|
- }else{
|
|
|
- //回滚
|
|
|
- struct CTaskProcess upRoll;
|
|
|
- upRoll.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
- upRoll.installVersion = m_currentTask.NewVersion.GetData();//任务升级后的版本号
|
|
|
- upRoll.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
- upRoll.cInstallState = "R";
|
|
|
- upRoll.strInstallComment = "自动倒回";
|
|
|
- if (m_currentTask.task_type.Compare("U")==0) {
|
|
|
- SendUpgradeTaskProgress(upRoll, UpgradeMgr_START_ID, " RTA5667");
|
|
|
}
|
|
|
else {
|
|
|
- SendUpgradeTaskProgress(upRoll, UpgradeMgr_ROLLBACK_START_ID, " RTA5672");
|
|
|
+ //回滚
|
|
|
+ struct CTaskProcess upRoll;
|
|
|
+ upRoll.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
+ upRoll.installVersion = m_currentTask.NewVersion.GetData();//任务升级后的版本号
|
|
|
+ upRoll.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
+ upRoll.cInstallState = "R";
|
|
|
+ upRoll.strInstallComment = "自动倒回";
|
|
|
+ if (m_currentTask.task_type.Compare("U") == 0) {
|
|
|
+ SendUpgradeTaskProgress(upRoll, UpgradeMgr_START_ID, " RTA5667");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ SendUpgradeTaskProgress(upRoll, UpgradeMgr_ROLLBACK_START_ID, " RTA5672");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
ErrorCodeEnum rc = SetRunSucceed(m_currentTask.pack_name.GetData());
|
|
|
- if(rc!=Error_Succeed){
|
|
|
- DbgWithLink(LOG_LEVEL_INFO,LOG_TYPE_SYSTEM)("SetRunSucceed is fail: %d",(int)rc);
|
|
|
+ if (rc != Error_Succeed) {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("SetRunSucceed is fail: %d", (int)rc);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//清除运行时文件和内存任务,跳转到S3
|
|
@@ -6550,7 +6572,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//安装的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "D";
|
|
|
up.strInstallComment = "正在下载";
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_DOWNLOAD_ID);
|
|
@@ -6563,7 +6585,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//安装的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "B";
|
|
|
up.strInstallComment = "正在回退";
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_ROLLBACK_ID);
|
|
@@ -6707,7 +6729,7 @@ unsigned int CUpgradeTaskFSM::s4_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//安装的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "C";
|
|
|
up.strInstallComment = pEvent->errMsg.c_str();
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_DOWNLOAD_ID,"RTA5660");
|
|
@@ -6735,7 +6757,7 @@ unsigned int CUpgradeTaskFSM::s4_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//安装的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "C";
|
|
|
up.strInstallComment = "任务策略已取消";
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_DOWNLOAD_ID,"RTA5661");
|
|
@@ -6925,7 +6947,7 @@ unsigned int CUpgradeTaskFSM::s5_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//安装的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "C";
|
|
|
up.strInstallComment = "解压失败";
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_INSTALL_ID,"RTA5662");
|
|
@@ -6988,7 +7010,7 @@ unsigned int CUpgradeTaskFSM::s5_on_event(FSMEvent* event)
|
|
|
up.installVersion = m_currentVersion.ToString();//当前版本号
|
|
|
}
|
|
|
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "W";
|
|
|
up.strInstallComment = "安装成功";
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_INSTALL_ID);
|
|
@@ -7019,7 +7041,7 @@ unsigned int CUpgradeTaskFSM::s5_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//安装的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "C";
|
|
|
up.strInstallComment = pEvent->errMsg;//错误信息
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_INSTALL_ID,"RTA5663");
|
|
@@ -7042,7 +7064,7 @@ unsigned int CUpgradeTaskFSM::s5_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//安装的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "X";
|
|
|
up.strInstallComment = pEvent->errMsg;//错误信息
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_INSTALL_ID,"RTA5664");
|
|
@@ -7105,7 +7127,7 @@ unsigned int CUpgradeTaskFSM::s5_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = "";//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//回退的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "C";
|
|
|
up.strInstallComment = pEvent->errMsg;//错误信息
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_ROLLBACK_ID,"RTA5668");
|
|
@@ -7128,7 +7150,7 @@ unsigned int CUpgradeTaskFSM::s5_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = "";//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//回退的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "X";
|
|
|
up.strInstallComment = pEvent->errMsg;//错误信息
|
|
|
SendUpgradeTaskProgress(up,UpgradeMgr_ROLLBACK_ID,"RTA5669");
|
|
@@ -7204,7 +7226,7 @@ unsigned int CUpgradeTaskFSM::s6_on_event(FSMEvent* event)
|
|
|
up.installVersion = m_currentVersion.ToString();//当前版本号
|
|
|
}
|
|
|
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "S";
|
|
|
up.strInstallComment = "已设为启动版本";
|
|
|
if (m_currentTask.task_type.Compare("U")==0) {
|
|
@@ -7268,7 +7290,7 @@ unsigned int CUpgradeTaskFSM::s6_on_event(FSMEvent* event)
|
|
|
}else {
|
|
|
up.installVersion = m_currentVersion.ToString();//当前版本号
|
|
|
}
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "C";
|
|
|
up.strInstallComment = "更新active文件失败";//错误信息
|
|
|
if (m_currentTask.task_type.Compare("U")==0) {
|
|
@@ -7301,7 +7323,7 @@ unsigned int CUpgradeTaskFSM::s6_on_event(FSMEvent* event)
|
|
|
struct CTaskProcess up;
|
|
|
up.strPackName = m_currentTask.pack_name;//安装包名
|
|
|
up.installVersion = m_currentTask.pack_version;//安装的版本
|
|
|
- up.CurrentVersion = m_currentVersion;//当前的版本
|
|
|
+ up.CurrentVersion = m_currentVersion.ToString();//当前的版本
|
|
|
up.cInstallState = "C";
|
|
|
up.strInstallComment = "任务策略已取消";
|
|
|
if (m_currentTask.task_type.Compare("U")==0) {
|