Skip to content
This repository has been archived by the owner on Aug 19, 2019. It is now read-only.

Handle error response codes to HTTP requests. #61

Merged
merged 3 commits into from
Feb 26, 2018

Conversation

igorpeshansky
Copy link
Member

@igorpeshansky igorpeshansky commented Feb 25, 2018

Depends on #59, but will rebase and merge to master once that's in.

Copy link
Contributor

@supriyagarg supriyagarg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes look good. However, the watch response in kubernetes.cc (L750) and the oauth response in oauth2.cc (L238) don't have the error handling code.

@igorpeshansky
Copy link
Member Author

Thanks for the review. I've added the handling in oauth2.cc.
Unfortunately, there doesn't seem to be a way to do this in the watch code (streaming HTTP), as the cpp-netlib library doesn't support that. I'll bring it up with the upstream maintainers.
PTAL.

@igorpeshansky igorpeshansky force-pushed the igorp-handle-http-codes branch from 7bc2c05 to 32e3db1 Compare February 26, 2018 02:11
@igorpeshansky igorpeshansky changed the base branch from igorp-docker-instance-id to master February 26, 2018 02:12
@igorpeshansky
Copy link
Member Author

Rebased off master.

Copy link
Contributor

@supriyagarg supriyagarg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

LOG(INFO) << "Metadata request sent successfully";
}
} catch (const boost::system::system_error& e) {
LOG(ERROR) << "Unsuccessful: " << e.what();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/Unsuccessful/Metadata request unsuccessful/

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -204,6 +210,13 @@ void SendMetadataRequest(std::vector<json::value>&& entries,
request << boost::network::header("Authorization", auth_header);
request << boost::network::body(request_body);
http::client::response response = client.post(request);
if (status(response) != 200) {
throw boost::system::system_error(
boost::system::errc::make_error_code(boost::system::errc::not_connected),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe not_connected is the best exception to throw here, but if it's just a matter of getting "something" to throw, it's fine.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that code is never examined.

@@ -204,6 +210,13 @@ void SendMetadataRequest(std::vector<json::value>&& entries,
request << boost::network::header("Authorization", auth_header);
request << boost::network::body(request_body);
http::client::response response = client.post(request);
if (status(response) != 200) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would accept anything in the 2xx range, technically a POST can result in a 201 Created. Applies to other posts as well. I'm sure it's not our contract with the resource metadata api yet, but just something to be mindful of.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

src/docker.cc Outdated
@@ -169,6 +170,13 @@ json::value DockerReader::QueryDocker(const std::string& path) const
}
try {
http::local_client::response response = client.get(request);
if (status(response) != 200) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just as a note, I'm fine with just a 200 here as you have it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed for consistency.

@@ -20,6 +20,19 @@

namespace format {

namespace {
template<class T>
std::string AsString(T v) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see this being used anywhere.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lines 32-34 below.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, my eyes certainly failed me 🤣

@igorpeshansky igorpeshansky force-pushed the igorp-handle-http-codes branch from 03e04f2 to b64acd4 Compare February 26, 2018 06:13
Copy link
Member Author

@igorpeshansky igorpeshansky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed feedback. PTAL.

LOG(INFO) << "Metadata request sent successfully";
}
} catch (const boost::system::system_error& e) {
LOG(ERROR) << "Unsuccessful: " << e.what();
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -204,6 +210,13 @@ void SendMetadataRequest(std::vector<json::value>&& entries,
request << boost::network::header("Authorization", auth_header);
request << boost::network::body(request_body);
http::client::response response = client.post(request);
if (status(response) != 200) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -204,6 +210,13 @@ void SendMetadataRequest(std::vector<json::value>&& entries,
request << boost::network::header("Authorization", auth_header);
request << boost::network::body(request_body);
http::client::response response = client.post(request);
if (status(response) != 200) {
throw boost::system::system_error(
boost::system::errc::make_error_code(boost::system::errc::not_connected),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that code is never examined.

src/docker.cc Outdated
@@ -169,6 +170,13 @@ json::value DockerReader::QueryDocker(const std::string& path) const
}
try {
http::local_client::response response = client.get(request);
if (status(response) != 200) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed for consistency.

@@ -20,6 +20,19 @@

namespace format {

namespace {
template<class T>
std::string AsString(T v) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lines 32-34 below.

Copy link
Contributor

@bmoyles0117 bmoyles0117 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :shipit:

@igorpeshansky igorpeshansky merged commit 5a459be into master Feb 26, 2018
@igorpeshansky igorpeshansky deleted the igorp-handle-http-codes branch March 3, 2018 22:14
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants