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

cloud cmd api for platform client

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