From 4a9385177095b909bd8a48733bbdf21751c903fa Mon Sep 17 00:00:00 2001 From: yewk Date: Mon, 22 May 2023 14:29:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0start=20-u=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cm_agent/cma_instance_management_res.cpp | 14 +++++++++----- src/include/cm/cm_misc.h | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/cm_agent/cma_instance_management_res.cpp b/src/cm_agent/cma_instance_management_res.cpp index 3a01f80..c23f889 100644 --- a/src/cm_agent/cma_instance_management_res.cpp +++ b/src/cm_agent/cma_instance_management_res.cpp @@ -71,8 +71,14 @@ static int CusResCmdExecute(const char *scriptPath, const char *oper, uint32 tim status_t StartOneResInst(const CmResConfList *conf) { + int ret; char oper[MAX_OPTION_LEN] = {0}; - int ret = snprintf_s(oper, MAX_OPTION_LEN, MAX_OPTION_LEN - 1, "-start %u %s", conf->resInstanceId, conf->arg); + if (conf->resType == CUSTOM_RESOURCE_DN && undocumentedVersion > 0) { + ret = snprintf_s(oper, MAX_OPTION_LEN, MAX_OPTION_LEN - 1, "-start %u %s '-u %u'", conf->resInstanceId, + conf->arg, undocumentedVersion); + } else { + ret = snprintf_s(oper, MAX_OPTION_LEN, MAX_OPTION_LEN - 1, "-start %u %s", conf->resInstanceId, conf->arg); + } securec_check_intval(ret, (void)ret); ret = CusResCmdExecute(conf->script, oper, (uint32)conf->checkInfo.timeOut, CM_FALSE); @@ -627,10 +633,8 @@ static status_t InitLocalAllDnResInstConf(const CusResConfJson *resJson, CmResCo static status_t InitLocalOneResConf(const OneCusResConfJson *oneResJson) { - CmResConfList newLocalConf; - errno_t rc = memset_s(&newLocalConf, sizeof(CmResConfList), 0, sizeof(CmResConfList)); - securec_check_errno(rc, (void)rc); - + CmResConfList newLocalConf = {{0}}; + newLocalConf.resType = (int)oneResJson->resType; if (oneResJson->resType == CUSTOM_RESOURCE_APP) { CM_RETURN_IFERR(InitLocalCommConfOfDefRes(&oneResJson->appResConf, &newLocalConf)); CM_RETURN_IFERR(InitLocalAllAppResInstConf(&oneResJson->appResConf, &newLocalConf)); diff --git a/src/include/cm/cm_misc.h b/src/include/cm/cm_misc.h index af06770..141b0f1 100644 --- a/src/include/cm/cm_misc.h +++ b/src/include/cm/cm_misc.h @@ -168,6 +168,7 @@ typedef struct CmResConfListSt { uint32 cmInstanceId; uint32 resInstanceId; ResStatusCheckInfo checkInfo; + int resType; } CmResConfList; // instance type before INST_TYPE_UNKNOWN shouldn't be change -- Gitee