[bug] Sia provider error responses are not being logged #30
This commit is contained in:
parent
c69818fed6
commit
5b5ac0937c
@ -69,6 +69,15 @@ auto sia_provider::create_directory_impl(const std::string &api_path,
|
||||
put_file.path = "/api/worker/objects" + api_path + "/";
|
||||
put_file.query["bucket"] = get_bucket(get_sia_config());
|
||||
|
||||
std::string error_data;
|
||||
put_file.response_handler = [&error_data](auto &&data, long response_code) {
|
||||
if (response_code == http_error_codes::ok) {
|
||||
return;
|
||||
}
|
||||
|
||||
error_data = std::string(data.begin(), data.end());
|
||||
};
|
||||
|
||||
long response_code{};
|
||||
stop_type stop_requested{};
|
||||
if (not get_comm().make_request(put_file, response_code, stop_requested)) {
|
||||
@ -79,8 +88,9 @@ auto sia_provider::create_directory_impl(const std::string &api_path,
|
||||
}
|
||||
|
||||
if (response_code != http_error_codes::ok) {
|
||||
utils::error::raise_api_path_error(function_name, api_path, response_code,
|
||||
"failed to create directory");
|
||||
utils::error::raise_api_path_error(
|
||||
function_name, api_path, response_code,
|
||||
fmt::format("failed to create directory|response|{}", error_data));
|
||||
return api_error::comm_error;
|
||||
}
|
||||
|
||||
@ -290,11 +300,15 @@ auto sia_provider::get_object_info(const std::string &api_path,
|
||||
get.path = "/api/bus/objects" + api_path;
|
||||
get.query["bucket"] = get_bucket(get_sia_config());
|
||||
|
||||
get.response_handler = [&object_info](const data_buffer &data,
|
||||
long response_code) {
|
||||
std::string error_data;
|
||||
get.response_handler = [&error_data, &object_info](auto &&data,
|
||||
long response_code) {
|
||||
if (response_code == http_error_codes::ok) {
|
||||
object_info = nlohmann::json::parse(data.begin(), data.end());
|
||||
return;
|
||||
}
|
||||
|
||||
error_data = std::string(data.begin(), data.end());
|
||||
};
|
||||
|
||||
long response_code{};
|
||||
@ -308,8 +322,9 @@ auto sia_provider::get_object_info(const std::string &api_path,
|
||||
}
|
||||
|
||||
if (response_code != http_error_codes::ok) {
|
||||
utils::error::raise_api_path_error(function_name, api_path, response_code,
|
||||
"failed to get object info");
|
||||
utils::error::raise_api_path_error(
|
||||
function_name, api_path, response_code,
|
||||
fmt::format("failed to get object info|response|{}", error_data));
|
||||
return api_error::comm_error;
|
||||
}
|
||||
|
||||
@ -331,11 +346,15 @@ auto sia_provider::get_object_list(const std::string &api_path,
|
||||
get.path = "/api/bus/objects" + api_path + "/";
|
||||
get.query["bucket"] = get_bucket(get_sia_config());
|
||||
|
||||
get.response_handler = [&object_list](const data_buffer &data,
|
||||
long response_code) {
|
||||
std::string error_data;
|
||||
get.response_handler = [&error_data, &object_list](auto &&data,
|
||||
long response_code) {
|
||||
if (response_code == http_error_codes::ok) {
|
||||
object_list = nlohmann::json::parse(data.begin(), data.end());
|
||||
return;
|
||||
}
|
||||
|
||||
error_data = std::string(data.begin(), data.end());
|
||||
};
|
||||
|
||||
long response_code{};
|
||||
@ -348,8 +367,9 @@ auto sia_provider::get_object_list(const std::string &api_path,
|
||||
}
|
||||
|
||||
if (response_code != http_error_codes::ok) {
|
||||
utils::error::raise_api_path_error(function_name, api_path, response_code,
|
||||
"failed to get object list");
|
||||
utils::error::raise_api_path_error(
|
||||
function_name, api_path, response_code,
|
||||
fmt::format("failed to get object list|response|{}", error_data));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -365,12 +385,16 @@ auto sia_provider::get_total_drive_space() const -> std::uint64_t {
|
||||
get.path = "/api/autopilot/config";
|
||||
get.query["bucket"] = get_bucket(get_sia_config());
|
||||
|
||||
json config_data{};
|
||||
get.response_handler = [&config_data](const data_buffer &data,
|
||||
long response_code) {
|
||||
json config_data;
|
||||
std::string error_data;
|
||||
get.response_handler = [&error_data, &config_data](auto &&data,
|
||||
long response_code) {
|
||||
if (response_code == http_error_codes::ok) {
|
||||
config_data = nlohmann::json::parse(data.begin(), data.end());
|
||||
return;
|
||||
}
|
||||
|
||||
error_data = std::string(data.begin(), data.end());
|
||||
};
|
||||
|
||||
long response_code{};
|
||||
@ -380,8 +404,10 @@ auto sia_provider::get_total_drive_space() const -> std::uint64_t {
|
||||
}
|
||||
|
||||
if (response_code != http_error_codes::ok) {
|
||||
utils::error::raise_error(function_name, response_code,
|
||||
"failed to get total drive space");
|
||||
utils::error::raise_api_path_error(
|
||||
function_name, api_path, response_code,
|
||||
fmt::format("failed to get total drive space|response|{}",
|
||||
error_data));
|
||||
return 0U;
|
||||
}
|
||||
|
||||
@ -466,12 +492,16 @@ auto sia_provider::is_online() const -> bool {
|
||||
get.path = "/api/bus/consensus/state";
|
||||
get.query["bucket"] = get_bucket(get_sia_config());
|
||||
|
||||
json state_data{};
|
||||
get.response_handler = [&state_data](const data_buffer &data,
|
||||
long response_code) {
|
||||
std::string error_data;
|
||||
json state_data;
|
||||
get.response_handler = [&error_data, &state_data](auto &&data,
|
||||
long response_code) {
|
||||
if (response_code == http_error_codes::ok) {
|
||||
state_data = nlohmann::json::parse(data.begin(), data.end());
|
||||
return;
|
||||
}
|
||||
|
||||
error_data = std::string(data.begin(), data.end());
|
||||
};
|
||||
|
||||
long response_code{};
|
||||
@ -483,8 +513,10 @@ auto sia_provider::is_online() const -> bool {
|
||||
}
|
||||
|
||||
if (response_code != http_error_codes::ok) {
|
||||
utils::error::raise_error(function_name, response_code,
|
||||
"failed to determine if provider is online");
|
||||
utils::error::raise_api_path_error(
|
||||
function_name, api_path, response_code,
|
||||
fmt::format("failed to determine if provider is online|response|{}",
|
||||
error_data));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -510,8 +542,9 @@ auto sia_provider::read_file_bytes(const std::string &api_path,
|
||||
offset,
|
||||
offset + size - 1U,
|
||||
}};
|
||||
get.response_handler = [&buffer](const data_buffer &data,
|
||||
long /*response_code*/) { buffer = data; };
|
||||
get.response_handler = [&buffer](auto &&data, long /* response_code */) {
|
||||
buffer = data;
|
||||
};
|
||||
|
||||
auto res = api_error::comm_error;
|
||||
for (std::uint32_t idx = 0U;
|
||||
|
Loading…
x
Reference in New Issue
Block a user