提交 a4d3dedc authored 作者: blu's avatar blu

cloud cmd api for platform client

上级 e5921d9c
......@@ -542,7 +542,8 @@ private:
auto v = strutils::split(target, ':');
if(v.size() == 1 || v.size() == 3) {
json meta;
meta["type"] = body["type"];
meta["type"] = body["metaType"];
meta["value"] = body["metaValue"];
body["sender"] = devSn;
int i= z_send(pRouter, v[0], devSn, meta, body.dump());
if(i < 0) {
......@@ -568,8 +569,8 @@ private:
ret["code"] = -1;
ret["msg"] = "unkown msg";
spdlog::info("handle cmd");
if(body.count("target") != 0 && body["target"].is_string() && body.count("type") !=0 && body["type"].is_string() &&
body.count("data") != 0 && body["data"].is_object()) {
if(body.count("target") != 0 && body["target"].is_string() && body.count("metaType") !=0 && body["metaType"].is_string() &&
body.count("data") != 0 && body["data"].is_object() && body.count("metaValue") !=0 && body["metaValue"].is_string()) {
// it's msg to edge.
return sendEdgeMsg(body);
}else{
......
......@@ -486,13 +486,14 @@ private:
int handleCloudMsg(vector<vector<uint8_t> > &v)
{
int ret = 0;
string msg;
// ID_SENDER, meta ,MSG
string msg;
string peerId, meta;
for(auto &s:v) {
msg += body2str(s) + ";";
}
if(v.size() != 3) {
for(auto &s:v) {
msg += body2str(s) + ";";
}
spdlog::error("evdaemon {} received invalid msg from cloud {}", devSn, msg);
}
......@@ -540,8 +541,8 @@ private:
}
}else if(meta == EV_MSG_META_TYPE_CMD){
spdlog::info("evdaemon {} received cmd from cloud: {}", devSn, msg);
if(data.count("target") != 0 && data["target"].is_string() && data.count("type") !=0 && data["type"].is_string() &&
data.count("data") != 0 && data["data"].is_object()) {
if(data.count("target") != 0 && data["target"].is_string() && data.count("metaType") !=0 && data["metaType"].is_string() &&
data.count("data") != 0 && data["data"].is_object() && data.count("metaValue") !=0 && data["metaValue"].is_string()) {
string target = data["target"];
auto v = strutils::split(target, ':');
if(v.size() == 1) {
......@@ -550,11 +551,11 @@ private:
if(this->peerData["status"].count(target) == 0 || this->peerData["status"][target] == 0 || this->peerData["status"] == -1) {
spdlog::error("evdaemon {} received {} msg from cloud to {}: {}, but its offline", devSn, meta, target, data.dump());
}else{
ret = sendCmd2Peer(target, "", data.dump());
ret = sendCmd2Peer(target, data["metaValue"], data.dump());
if(ret < 0) {
spdlog::error("evdaemon {} failed to send msg to peer {}: {}", devSn, data.dump(), zmq_strerror(zmq_errno()));
}else{
spdlog::error("evdaemon {} successfully relayed {} msg from cloud to {}: {}", devSn, meta, target, data.dump());
spdlog::info("evdaemon {} successfully relayed {} msg from cloud to {}: {}", devSn, meta, target, data.dump());
}
}
}else{
......
......@@ -155,15 +155,22 @@ private:
if(meta.count("value") != 0) {
metaValue = meta["value"];
}
string daemonId = this->devSn + ":evdaemon:0";
// msg from cluster mgr
if(peerId == daemonId) {
if(metaValue == EV_MSG_META_VALUE_CMD_STOP || metaValue == EV_MSG_META_VALUE_CMD_RESTART) {
spdlog::info("evslicer {} received {} cmd from cluster mgr {}", selfId, metaValue, daemonId);
bProcessed = true;
exit(0);
}else if(metaValue == "record") {
try{
}catch(exception &e) {
}
}else{
}
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论