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