| | |
| | | //#todo nodes have counter? |
| | | //#todo nodeName Automatic generated? |
| | | //#todo devId+num |
| | | // 生成节点id - uuid |
| | | std::string uuid = GetUUId::getUUID(); |
| | | |
| | | // 获取当前机器ip |
| | | unsigned char ip_old[15] = {0}; |
| | | std::string str_netIfName = appConfig.getStringProperty("netIfName"); |
| | | GetIpAddress(str_netIfName.c_str(), ip_old); |
| | | std::string str_ip((char *) ip_old); |
| | | // 节点名称 |
| | | std::string nodeName = uuid.append("@" + str_ip); |
| | | |
| | | std::string cookie = value["cookie"].asString(); |
| | | // 引导节点 |
| | | std::string FatherNodeName = value["fatherNodeName"].asString(); |
| | | |
| | | //#todo ClusterID ClusterName |
| | | // 集群id |
| | | std::string clusterID = value["culID"].asString(); |
| | | // 为空则生成,否则直接使用 |
| | | clusterID = clusterID.size() > 0 ? clusterID : GetUUId::getUUID(); |
| | | std::string clusterName = value["culName"].asString(); |
| | | |
| | | std::string devID = value["devID"].asString(); |
| | | std::string devName = value["devName"].asString(); |
| | | |
| | | |
| | | // erlang节点保存路径/opt/erlang/${uuid} |
| | | std::string path = std::string("/opt/erlang/").append(nodeName.substr(0, nodeName.find("@"))); |
| | | if (erlangDbTool != nullptr) { |
| | | //gaunbi node |
| | |
| | | |
| | | if (cookie.size() > 0 && (clusterID.size() > 0 || clusterName.size() > 0)) { |
| | | // erlangDbTool = new ErlangTool::ErlangDbTool(path, nodeName, cookie); |
| | | // #todo 进程名 -> get from argv[0] |
| | | string str_tmp = "DataWebserver"; |
| | | erlangDbTool = new ErlangTool::ErlangDbTool(path, nodeName, cookie, clusterID, clusterName, str_tmp); |
| | | bool ret = erlangDbTool->initErlang(); |
| | |
| | | ret = erlangDbTool->startNodeDb(FatherNodeName, devID); |
| | | |
| | | if (ret) { |
| | | //如果成功则更新配置文件 |
| | | appConfig.setStringProperty("erlNode", nodeName); |
| | | appConfig.setStringProperty("erlCookie", cookie); |
| | | appConfig.setStringProperty("erlPath", path); |
| | |
| | | runAllApp(); |
| | | // sleep(4); |
| | | } else { |
| | | // 否则则置空配置文件 |
| | | appConfig.setStringProperty("erlNode", ""); |
| | | appConfig.setStringProperty("erlCookie", ""); |
| | | appConfig.setStringProperty("erlPath", ""); |
| | |
| | | |
| | | ret = erlangDbTool->removeNode(); |
| | | |
| | | // 置空配置文件 |
| | | appConfig.setStringProperty("erlNode", ""); |
| | | appConfig.setStringProperty("erlCookie", ""); |
| | | appConfig.setStringProperty("erlPath", ""); |
| | |
| | | std::string Uuid = value["uuid"].asString(); |
| | | std::string TableType = value["TableType"].asString(); |
| | | std::string TableName = value["TableName"].asString(); |
| | | // 集群内同步 |
| | | int SyncType = atoi(value["SyncType"].asCString()); |
| | | std::string BwType = value["BwType"].asString(); |
| | | std::string StartTime = value["StartTime"].asString(); |
| | | std::string EndTime = value["EndTime"].asString(); |
| | | |
| | | // 是否上传 |
| | | std::string UploadFlag = value["IsSync"].asString(); |
| | | UploadFlag = UploadFlag.empty() ? "0" : UploadFlag; |
| | | |
| | | // 底库阈值 |
| | | std::string CmpThreshold = value["threshold"].asString(); |
| | | CmpThreshold = CmpThreshold.empty() ? "60" : CmpThreshold; |
| | | // 是否启用 |
| | | std::string Enabled = value["enabled"].asString(); |
| | | Enabled = Enabled.empty() ? "1" : Enabled; |
| | | |
| | |
| | | // Enabled); |
| | | // } |
| | | |
| | | |
| | | // send message to other CNode |
| | | erlangDbTool->sendMessage(); |
| | | std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}"); |
| | | return str_result; |