提交 095f6938 编写于 作者: S Shengliang Guan

refactor: node mgmt

上级 65da2ea0
...@@ -119,7 +119,7 @@ int32_t dmOpenNode(SMgmtWrapper *pWrapper) { ...@@ -119,7 +119,7 @@ int32_t dmOpenNode(SMgmtWrapper *pWrapper) {
pInput->name = pWrapper->name; pInput->name = pWrapper->name;
pInput->path = pWrapper->path; pInput->path = pWrapper->path;
pInput->msgCb = dmGetMsgcb(pWrapper); pInput->msgCb = dmGetMsgcb(pWrapper);
if (pWrapper->nodeType == DNODE) { if (pWrapper->nodeType == DNODE || pWrapper->procType == DND_PROC_CHILD) {
tmsgSetDefaultMsgCb(&pInput->msgCb); tmsgSetDefaultMsgCb(&pInput->msgCb);
} }
...@@ -222,7 +222,12 @@ static int32_t dmOpenNodes(SDnode *pDnode) { ...@@ -222,7 +222,12 @@ static int32_t dmOpenNodes(SDnode *pDnode) {
for (EDndNodeType ntype = DNODE; ntype < NODE_END; ++ntype) { for (EDndNodeType ntype = DNODE; ntype < NODE_END; ++ntype) {
SMgmtWrapper *pWrapper = &pDnode->wrappers[ntype]; SMgmtWrapper *pWrapper = &pDnode->wrappers[ntype];
if (!pWrapper->required) continue; if (!pWrapper->required) continue;
if (ntype == DNODE) {
pWrapper->procType = DND_PROC_SINGLE;
if (dmOpenNode(pWrapper) != 0) {
return -1;
}
} else {
if (pDnode->ptype == DND_PROC_CHILD) { if (pDnode->ptype == DND_PROC_CHILD) {
if (pDnode->ntype == ntype) { if (pDnode->ntype == ntype) {
pWrapper->procType = DND_PROC_CHILD; pWrapper->procType = DND_PROC_CHILD;
...@@ -232,25 +237,23 @@ static int32_t dmOpenNodes(SDnode *pDnode) { ...@@ -232,25 +237,23 @@ static int32_t dmOpenNodes(SDnode *pDnode) {
} else { } else {
pWrapper->required = false; pWrapper->required = false;
} }
} else {
if (ntype == DNODE) {
pWrapper->procType = DND_PROC_SINGLE;
} else { } else {
pWrapper->procType = pDnode->ptype; pWrapper->procType = pDnode->ptype;
}
if (dmOpenNode(pWrapper) != 0) { if (dmOpenNode(pWrapper) != 0) {
return -1; return -1;
} }
} }
} }
}
dmSetStatus(pDnode, DND_STAT_RUNNING); dmSetStatus(pDnode, DND_STAT_RUNNING);
return 0; return 0;
} }
static int32_t dmStartNodes(SDnode *pDnode) { static int32_t dmStartNodes(SDnode *pDnode) {
for (EDndNodeType n = DNODE; n < NODE_END; ++n) { for (EDndNodeType ntype = DNODE; ntype < NODE_END; ++ntype) {
SMgmtWrapper *pWrapper = &pDnode->wrappers[n]; SMgmtWrapper *pWrapper = &pDnode->wrappers[ntype];
if (ntype == DNODE && (pDnode->ptype == DND_PROC_CHILD || pDnode->ptype == DND_PROC_TEST)) continue;
if (dmStartNode(pWrapper) != 0) { if (dmStartNode(pWrapper) != 0) {
dError("node:%s, failed to start since %s", pWrapper->name, terrstr()); dError("node:%s, failed to start since %s", pWrapper->name, terrstr());
return -1; return -1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册