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, ®ion_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
+}
+]
+}