Преглед на файлове

#IQRV #comment [Module][Restful] 灰度返回通用值优化

gifur преди 3 години
родител
ревизия
339af538b3
променени са 4 файла, в които са добавени 49 реда и са изтрити 36 реда
  1. 13 0
      Module/include/CommEntityRestful.hpp
  2. 14 4
      Module/include/microservices/api_comm.h
  3. 11 20
      Module/mod_Initializer/mod_Initializer.cpp
  4. 11 12
      Module/mod_UpgradeMgr/mod_UpgradeMgr.cpp

+ 13 - 0
Module/include/CommEntityRestful.hpp

@@ -13,18 +13,31 @@ namespace Module
 namespace Restful
 {
 
+/*errorCode ¶ÔÓ¦Ô­ÓÐ Http ×é¼þµÄ m_userCode£»message ¶ÔÓ¦ m_errMsg*/
 struct CommResponseJson : public MicroServices::API::CommResponse
 {
     JSONCONVERT2OBJECT_MEMEBER_REGISTER(success, errorCode, returnCode, errorMsg, message)
     JSONCONVERT2OBJECT_MEMEBER_RENAME_REGISTER("success", "code", "return_code", "error_msg", "message")
 };
 
+struct GrayResponseJson : public MicroServices::API::GrayResponseJson
+{
+    JSONCONVERT2OBJECT_MEMEBER_REGISTER(success, returnCode, message, graySwitch)
+    JSONCONVERT2OBJECT_MEMEBER_RENAME_REGISTER("success", "code", "message", "data")
+};
+
 static bool GetStatusFromDebranchResponse(const std::string& content, CommResponseJson& responseStatus)
 {
     Json::Value rawRoot;
     return (!GetJsonRootObject(rawRoot, content)) ? false : Json2Object(responseStatus, rawRoot);
 }
 
+static bool GetGrayInfoFromDebranchResponse(const std::string& content, GrayResponseJson& responseStatus)
+{
+    Json::Value rawRoot;
+    return (!GetJsonRootObject(rawRoot, content)) ? false : Json2Object(responseStatus, rawRoot);
+}
+
 template <typename T>
 static bool ExtractDataFromDebranchResponse(const std::string& content, T& outDataStruct)
 {

+ 14 - 4
Module/include/microservices/api_comm.h

@@ -33,22 +33,32 @@ struct CommResponse
     std::string errorMsg;
     std::string message;
 
-    bool IsOperatedOK() const
+    virtual bool IsOperatedOK() const
     {
-        return (returnCode == "SUC0000");
+        return (returnCode == "SUC0000" || errorCode == "0");
     }
 
-    bool IsNotEmpty() const
+    virtual bool IsNotEmpty() const
     {
         return (!errorCode.empty() || !returnCode.empty() || !errorMsg.empty() || !message.empty());
     }
 
-    std::string WhatError() const
+    virtual std::string WhatError() const
     {
         return (std::string("[") + returnCode + "] " + errorMsg);
     }
 };
 
+struct GrayResponseJson : public CommResponse
+{
+    bool graySwitch;
+
+    virtual bool IsOperatedOK() const
+    {
+        return (returnCode == "10000");
+    }
+};
+
 }
 
 }

+ 11 - 20
Module/mod_Initializer/mod_Initializer.cpp

@@ -77,7 +77,12 @@ struct GateReqTask :public ITaskSp {
 	CInitializerFSM* m_fsm;
 	CInitializerEntity* m_entity;
 	GateReqTask(CInitializerFSM* fsm, CInitializerEntity* entity) :m_fsm(fsm), m_entity(entity) {}
-	void Process() {
+
+	void Process() 
+	{
+
+		LOG_FUNCTION();
+
 		CSmartPointer<IEntityFunction> spFunction = m_entity->GetFunction();
 		CSmartPointer<IConfigInfo> spConfig;
 		ErrorCodeEnum eErr = spFunction->OpenConfig(Config_CenterSetting, spConfig);
@@ -95,7 +100,6 @@ struct GateReqTask :public ITaskSp {
 		CSystemStaticInfo si;
 		m_entity->GetFunction()->GetSystemStaticInfo(si);
 
-
 #ifdef WITH_CPPRESTSDK
 
 		m_entity->m_bACS = false;
@@ -111,11 +115,6 @@ struct GateReqTask :public ITaskSp {
 
         } instanceReq;
 
-        struct InstanceAnsJson : public MicroServices::API::CommResponse
-        {
-            bool data;
-            JSONCONVERT2OBJECT_MEMEBER_REGISTER(data)
-        } instanceAns;
 
         HttpClientResponseResult result;
         HttpClientRequestConfig config(HttpRequestMethod::POST, grayUrl.GetData());
@@ -132,21 +131,13 @@ struct GateReqTask :public ITaskSp {
 
         if (result.ResponseOK()) {
 
-            SP::Module::Restful::CommResponseJson responseStatus;
-            SP::Module::Restful::GetStatusFromDebranchResponse(result.content, responseStatus);
-
-            if (!responseStatus.IsOperatedOK()) {
-				Dbg("gray: %s", responseStatus.errorMsg.c_str());
+            SP::Module::Restful::GrayResponseJson grayResponse;
+            SP::Module::Restful::GetGrayInfoFromDebranchResponse(result.content, grayResponse);
 
+            if (!grayResponse.IsOperatedOK()) {
+				Dbg("gray: %s,%s", grayResponse.errorMsg.c_str(), result.content.c_str());
 			} else {
-
-				//特殊处理
-                Json::Value rawRoot;
-				GetJsonRootObject(rawRoot, result.content);
-				bool graySetValue(false);
-				Json2Object(graySetValue, rawRoot["data"]);
-				m_entity->m_bACS = graySetValue;
-
+				m_entity->m_bACS = grayResponse.graySwitch;
 				if (m_entity->m_bACS) {
 					LogWarn(Severity_Middle, Error_Unexpect, Initializer_UserErrorCode_Init_ACS, "灰度提示走总行");
 				} else {

+ 11 - 12
Module/mod_UpgradeMgr/mod_UpgradeMgr.cpp

@@ -231,21 +231,20 @@ namespace Task
             config.PreDo();
             client.Do(&config, &result);
             if (result.ResponseOK()) {
-                SP::Module::Restful::CommResponseJson responseStatus;
-                SP::Module::Restful::GetStatusFromDebranchResponse(result.content, responseStatus);
-                if (!responseStatus.IsOperatedOK()) {
+
+                SP::Module::Restful::GrayResponseJson grayResponse;
+                SP::Module::Restful::GetGrayInfoFromDebranchResponse(result.content, grayResponse);
+
+                if (!grayResponse.IsOperatedOK()) {
+                    Dbg("gray: %s,%s", grayResponse.errorMsg.c_str(), result.content.c_str());
                     LogWarn(Severity_Middle, Error_Exception, ERR_TASK_QUERY_UPGRADE_MODE, CSimpleStringA::Format("QueryUpgradeControl http response fail,url=%s, %s"
-																												  , Mgr->m_grayLaunchUrl.GetData(), responseStatus.errorMsg.c_str()));
+                                                                                                                  , Mgr->m_grayLaunchUrl.GetData(), grayResponse.errorMsg.c_str()));
 					return false;
+                } else {
+					isNewUpgradeMgr = grayResponse.graySwitch;
+                    Dbg("isNewUpgradeMgr:%d", isNewUpgradeMgr);
+					return true;
                 }
-
-                Json::Value rawRoot;
-                GetJsonRootObject(rawRoot, result.content);
-                bool graySetValue(false);
-                Json2Object(graySetValue, rawRoot["data"]);
-				isNewUpgradeMgr = graySetValue;
-                Dbg("isNewUpgradeMgr:%d", isNewUpgradeMgr);
-				return true;
             } else {
                 LogWarn(Severity_Middle, Error_Exception, ERR_TASK_QUERY_UPGRADE_MODE, CSimpleStringA::Format("QueryUpgradeControl http req fail,url=%s, %s"
                                                                                                               , Mgr->m_grayLaunchUrl.GetData(), result.WhatError().c_str()));