This is an automated email from the ASF dual-hosted git repository.

junchao pushed a commit to branch recovery_ckpt
in repository https://gitbox.apache.org/repos/asf/incubator-resilientdb.git


The following commit(s) were added to refs/heads/recovery_ckpt by this push:
     new d49dca88 fix client config
d49dca88 is described below

commit d49dca887d6c3fe387c6643e5ba40f46323e2e5e
Author: Ubuntu <[email protected]>
AuthorDate: Mon Dec 22 23:53:47 2025 +0000

    fix client config
---
 platform/config/resdb_config_utils.cpp        | 36 ++++++++++++++++-----------
 service/tools/config/interface/service.config | 10 +++++++-
 2 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/platform/config/resdb_config_utils.cpp 
b/platform/config/resdb_config_utils.cpp
index daf83a76..535838b4 100644
--- a/platform/config/resdb_config_utils.cpp
+++ b/platform/config/resdb_config_utils.cpp
@@ -123,24 +123,30 @@ ResConfigData ReadConfigFromFile(const std::string& 
file_name) {
 }
 
 std::vector<ReplicaInfo> ReadConfig(const std::string& file_name) {
+
+
   std::vector<ReplicaInfo> replicas;
-  std::string line;
+  std::stringstream json_data;
   std::ifstream infile(file_name.c_str());
-  int id;
-  std::string ip;
-  int port;
-  while (infile >> id >> ip >> port) {
-    if (id == 0) {
-      continue;
-    }
-    if (ip.size() == 0) {
-      continue;
-    }
-    replicas.push_back(GenerateReplicaInfo(id, ip, port));
+  if (!infile.is_open()) {
+    std::cerr << "Failed to open file." << file_name << " " << strerror(errno)
+      << std::endl;
+    return replicas;
   }
-  if (replicas.size() == 0) {
-    LOG(ERROR) << "read config:" << file_name << " fail.";
-    assert(replicas.size() > 0);
+
+  json_data << infile.rdbuf();
+  std::string cleanJson = RemoveJsonComments(json_data.str());
+  
+  RegionInfo region_info;
+  JsonParseOptions options;
+  auto status = JsonStringToMessage(cleanJson, &region_info, options);
+  if (!status.ok()) {
+    LOG(ERROR) << "parse json :" << file_name << " fail:" << status.message();
+  }
+  assert(status.ok());
+  for(const auto& replica_info : region_info.replica_info()) {
+    LOG(ERROR) << "parse json id:" << replica_info.id() << " ip:" << 
replica_info.ip() <<" port:"<<replica_info.port();
+    replicas.push_back(GenerateReplicaInfo(replica_info.id(), 
replica_info.ip(), replica_info.port()));
   }
   return replicas;
 }
diff --git a/service/tools/config/interface/service.config 
b/service/tools/config/interface/service.config
index 2847a8d2..a6fd052b 100644
--- a/service/tools/config/interface/service.config
+++ b/service/tools/config/interface/service.config
@@ -15,6 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-5 172.31.57.186 17005
+{
+"replica_info":[
+{
+"id":5,
+"ip":"172.31.57.186",
+"port":17005
+}
+]
+}
 
 

Reply via email to