Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions cloud/src/common/http_helper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -710,7 +710,7 @@ HttpResponse process_statistics_recycle(RecyclerServiceImpl* service, brpc::Cont
"failed to parse StatisticsRecycleRequest");
}
MetaServiceCode code = MetaServiceCode::OK;
std::string msg;
std::string msg = "OK";
service->statistics_recycle(req, code, msg);
return http_text_reply(code, msg, msg);
}
Expand All @@ -721,7 +721,7 @@ HttpResponse process_recycle_copy_jobs(RecyclerServiceImpl* service, brpc::Contr
return http_json_reply(MetaServiceCode::INVALID_ARGUMENT, "no instance id");
}
MetaServiceCode code = MetaServiceCode::OK;
std::string msg;
std::string msg = "OK";
recycle_copy_jobs(service->txn_kv(), *instance_id, code, msg,
service->recycler()->thread_pool_group(), service->txn_lazy_committer());
return http_text_reply(code, msg, msg);
Expand All @@ -748,7 +748,7 @@ HttpResponse process_check_instance(RecyclerServiceImpl* service, brpc::Controll
return http_json_reply(MetaServiceCode::INVALID_ARGUMENT, "checker not enabled");
}
MetaServiceCode code = MetaServiceCode::OK;
std::string msg;
std::string msg = "OK";
service->check_instance(*instance_id, code, msg);
return http_text_reply(code, msg, msg);
}
Expand Down Expand Up @@ -776,7 +776,7 @@ HttpResponse process_check_meta(RecyclerServiceImpl* service, brpc::Controller*
!password || !user || user->empty()) {
return http_json_reply(MetaServiceCode::INVALID_ARGUMENT, "missing required parameters");
}
std::string msg;
std::string msg = "OK";
check_meta(service->txn_kv(), *instance_id, *host, *port, *user, *password, msg);
return http_text_reply(MetaServiceCode::OK, msg, msg);
}
Expand Down
10 changes: 7 additions & 3 deletions cloud/src/meta-service/meta_service_http.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,15 +106,19 @@ std::tuple<int, std::string_view> convert_ms_code_to_http_code(MetaServiceCode r
HttpResponse http_json_reply(MetaServiceCode code, const std::string& msg,
std::optional<std::string> body) {
auto [status_code, status_msg] = convert_ms_code_to_http_code(code);
std::string_view response_msg =
code == MetaServiceCode::OK && msg.empty() ? status_msg : std::string_view(msg);
rapidjson::Document d;
d.SetObject();
if (code == MetaServiceCode::OK) {
d.AddMember("code", "OK", d.GetAllocator());
d.AddMember("msg", rapidjson::StringRef(msg.data(), msg.size()), d.GetAllocator());
d.AddMember("msg", rapidjson::StringRef(response_msg.data(), response_msg.size()),
d.GetAllocator());
} else {
d.AddMember("code", rapidjson::StringRef(status_msg.data(), status_msg.size()),
d.GetAllocator());
d.AddMember("msg", rapidjson::StringRef(msg.data(), msg.size()), d.GetAllocator());
d.AddMember("msg", rapidjson::StringRef(response_msg.data(), response_msg.size()),
d.GetAllocator());
}

rapidjson::Document result;
Expand All @@ -134,7 +138,7 @@ HttpResponse http_json_reply(MetaServiceCode code, const std::string& msg,
rapidjson::StringBuffer sb;
rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(sb);
d.Accept(writer);
return {status_code, msg, sb.GetString()};
return {.status_code = status_code, .msg = std::string(response_msg), .body = sb.GetString()};
}

static std::string format_http_request(brpc::Controller* cntl) {
Expand Down
6 changes: 4 additions & 2 deletions cloud/src/meta-service/meta_service_http.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,10 @@ inline static HttpResponse http_json_reply_message(const MetaServiceResponseStat

inline static HttpResponse http_text_reply(MetaServiceCode code, const std::string& msg,
const std::string& body) {
auto [status_code, _] = convert_ms_code_to_http_code(code);
return {status_code, msg, body};
auto [status_code, status_msg] = convert_ms_code_to_http_code(code);
std::string response_msg =
code == MetaServiceCode::OK && msg.empty() ? std::string(status_msg) : msg;
return {.status_code = status_code, .msg = std::move(response_msg), .body = body};
}

inline static HttpResponse http_text_reply(const MetaServiceResponseStatus& status,
Expand Down
6 changes: 3 additions & 3 deletions cloud/test/meta_service_http_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -867,7 +867,7 @@ TEST(MetaServiceHttpTest, AlterClusterTest) {
auto [status_code, resp] = ctx.forward<MetaServiceResponseStatus>("add_cluster", req);
ASSERT_EQ(status_code, 200);
ASSERT_EQ(resp.code(), MetaServiceCode::OK);
ASSERT_EQ(resp.msg(), "");
ASSERT_EQ(resp.msg(), "OK");
}

// case: request has invalid argument
Expand Down Expand Up @@ -2848,7 +2848,7 @@ TEST(MetaServiceHttpTest, VirtualClusterTest) {
node->set_edit_log_port(9990);
node->set_node_type(NodeInfoPB::FE_MASTER);
ret = ctx.forward<MetaServiceResponseStatus>("add_cluster", req_before_fe);
ASSERT_EQ(std::get<1>(ret).msg(), "");
ASSERT_EQ(std::get<1>(ret).msg(), "OK");
ASSERT_EQ(std::get<0>(ret), 200);
ASSERT_EQ(std::get<1>(ret).code(), MetaServiceCode::OK);

Expand All @@ -2859,7 +2859,7 @@ TEST(MetaServiceHttpTest, VirtualClusterTest) {
policy.add_standby_cluster_names(mock_exist_cluster_name1);
ret = add_cluster(ctx, mock_vcg_name1, mock_vcg_id1, ClusterPB::VIRTUAL,
{mock_exist_cluster_name1, mock_exist_cluster_name2}, &policy);
ASSERT_EQ(std::get<1>(ret).msg(), "");
ASSERT_EQ(std::get<1>(ret).msg(), "OK");
ASSERT_EQ(std::get<0>(ret), 200);
ASSERT_EQ(std::get<1>(ret).code(), MetaServiceCode::OK);

Expand Down
Loading