Переглянути джерело

读取Python27目录的配置文件,获取 xml的保存路径;

scbc.sat2 5 роки тому
батько
коміт
4d7019ed1c

+ 37 - 1
SATService/SATService/Global.cpp

@@ -43,7 +43,7 @@ namespace GLOBAL
 	TCHAR g_szDBAccount[MAX_PATH];				// 数据库登录用户;
 	TCHAR g_szDBPassWord[MAX_PATH];				// 数据库登录密码;
 	TCHAR g_szDBName[MAX_PATH];					// 数据库名称;	
-
+	TCHAR g_szPython27Dir[MAX_PATH] = {0};
 	std::string g_strIPAddress;
 
 	//////////////////////////////////////////////////////////////////////////
@@ -221,6 +221,16 @@ namespace GLOBAL
 		GetPrivateProfileString(_T("LinuxDevice"), _T("hardwareversion"), _T(""), g_stSATConfig.stLinuxDevice.szHardwareVersion, MAX_PATH, szIniPath);
 		GetPrivateProfileString(_T("LinuxDevice"), _T("model"), _T(""), g_stSATConfig.stLinuxDevice.szModel, MAX_PATH, szIniPath);
 
+		// 读取其他目录的配置文件;sat_result_dir
+		_stprintf_s(szIniPath, _T("%s%s"), g_szPython27Dir, "Lib\site-packages\ssat_sdk\config\resource_run.cfg");
+		GetPrivateProfileString(_T("COMM"), _T("sat_result_dir"), _T(""), g_stSATConfig.szDetailXmlDir, MAX_PATH, szIniPath);
+		// 将反斜转正斜;
+		std::string dir = Replace(g_stSATConfig.szDetailXmlDir, "\\", "/");
+		_stprintf_s(g_stSATConfig.szDetailXmlDir, dir.c_str());
+		if (g_stSATConfig.szDetailXmlDir[_tcslen(g_stSATConfig.szDetailXmlDir) - 1] != '\\')
+			_tcscat_s(g_stSATConfig.szDetailXmlDir, MAX_PATH, "\\");
+		_tcscat_s(g_stSATConfig.szDetailXmlDir, MAX_PATH, "detail\\");
+
 		return 0;
 	}
 
@@ -1365,4 +1375,30 @@ namespace GLOBAL
 		} 
 		return strSrc; 
 	}
+
+	BOOL Python27Dir()
+	{
+		HKEY hKey;
+		int ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\WOW6432Node\\Python\\PythonCore\\2.7\\InstallPath"), 0, KEY_QUERY_VALUE, &hKey);
+		if (ret != ERROR_SUCCESS)
+			return FALSE;
+
+		//读取KEY
+		DWORD dwType = REG_SZ; //数据类型
+		DWORD cbData = MAX_PATH;
+		ret = RegQueryValueEx(hKey, _T(""), NULL, &dwType, (LPBYTE)g_szPython27Dir, &cbData);
+		if (ret != ERROR_SUCCESS)
+		{
+			RegCloseKey(hKey);
+			return FALSE;
+		}
+		RegCloseKey(hKey);
+
+		// 给尾加杠;
+		if ( g_szPython27Dir[_tcslen(g_szPython27Dir) - 1] != '\\')
+			_tcscat_s(g_szPython27Dir, MAX_PATH, "\\");
+
+		return TRUE;
+	}
+
 };

+ 5 - 1
SATService/SATService/Global.h

@@ -58,6 +58,8 @@ namespace GLOBAL
 		DWORD dwTCPSvrPort;
 		// 脚本超时值设置;
 		DWORD dwScriptTimeout;
+		// xml目录;
+		TCHAR szDetailXmlDir[MAX_PATH];
 		// 这个可以忽略不要;
 		typedef struct  __ST_LD__
 		{
@@ -90,7 +92,7 @@ namespace GLOBAL
 	extern TCHAR g_szCurModulePath[MAX_PATH];
 	extern TCHAR g_szFna[_MAX_FNAME];
 	extern TCHAR g_szExt[_MAX_EXT];
-
+	extern TCHAR g_szPython27Dir[MAX_PATH];
 	extern std::string g_strIPAddress;
 
 	//////////////////////////////////////////////////////////////////////////
@@ -181,6 +183,8 @@ namespace GLOBAL
 	std::string GetLocalAddress(int nType = MIB_IF_TYPE_ETHERNET);
 	// 替换指定字符串;
 	std::string Replace(std::string strSrc, std::string strNew, std::string strOld);
+	// 获取Python27路径;
+	BOOL Python27Dir();
 };
 
 #endif

+ 2 - 1
SATService/SATService/SATExecutor.cpp

@@ -62,6 +62,7 @@ void CSATExecutor::DelFinishedTask()
 	for ( ; it != m_vtTask.end(); it++ ) {
 		// 状态为2的完成任务;
 		if ( it->_nExecutionState == 2 ) {
+			GLOBAL::WriteTextLog("删除已完成任务:%s", it->Job.strUniqueId.c_str());
 			// 删除所有执行器对象;
 			for (std::vector<SATHTTP::STCase>::iterator _case = it->Job.vtCases.begin(); _case != it->Job.vtCases.end(); _case++ ) {
 				if ( _case->_pExcutor )
@@ -565,7 +566,7 @@ bool CSATExecutor::ReportCaseFinish(SATHTTP::STTask* pTask, SATHTTP::STCase *pCa
 bool CSATExecutor::ReportCaseResult(SATHTTP::STTask* pTask, SATHTTP::STCase *pCase)
 {
 	// 获取xml文件内容;
-	std::string xmlpath = "D:\\SAT\\results\\detail\\";
+	std::string xmlpath = GLOBAL::g_stSATConfig.szDetailXmlDir;
 	xmlpath.append(pCase->_strFileName);
 	xmlpath.append("_result.xml");
 	std::vector<STCaseItem> vtCaseItem;