You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ab...@apache.org on 2020/06/10 13:07:44 UTC
[mesos] branch master updated: Added URI to failure messages in URI
fetcher plugins.
This is an automated email from the ASF dual-hosted git repository.
abudnik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
The following commit(s) were added to refs/heads/master by this push:
new 5cc10d6 Added URI to failure messages in URI fetcher plugins.
5cc10d6 is described below
commit 5cc10d680f85570a0ce1bf695484f5ff7271e1a8
Author: Andrei Budnik <ab...@apache.org>
AuthorDate: Mon Jun 8 14:16:17 2020 +0200
Added URI to failure messages in URI fetcher plugins.
Review: https://reviews.apache.org/r/72575
---
src/uri/fetchers/curl.cpp | 26 +++++++++++++++-----------
src/uri/fetchers/docker.cpp | 37 +++++++++++++++++++++----------------
2 files changed, 36 insertions(+), 27 deletions(-)
diff --git a/src/uri/fetchers/curl.cpp b/src/uri/fetchers/curl.cpp
index 1796620..1e6b382 100644
--- a/src/uri/fetchers/curl.cpp
+++ b/src/uri/fetchers/curl.cpp
@@ -153,49 +153,53 @@ Future<Nothing> CurlFetcherPlugin::fetch(
s->status(),
io::read(s->out().get()),
io::read(s->err().get()))
- .then([](const tuple<
+ .then([uri](const tuple<
Future<Option<int>>,
Future<string>,
Future<string>>& t) -> Future<Nothing> {
const Future<Option<int>>& status = std::get<0>(t);
if (!status.isReady()) {
return Failure(
- "Failed to get the exit status of the curl subprocess: " +
+ "Failed to get the exit status of the curl subprocess for '" +
+ stringify(uri) + "': " +
(status.isFailed() ? status.failure() : "discarded"));
}
if (status->isNone()) {
- return Failure("Failed to reap the curl subprocess");
+ return Failure("Failed to reap the curl subprocess for '" +
+ stringify(uri) + "'");
}
if (status->get() != 0) {
const Future<string>& error = std::get<2>(t);
if (!error.isReady()) {
return Failure(
- "Failed to perform 'curl'. Reading stderr failed: " +
+ "Failed to perform 'curl' for '" + stringify(uri) +
+ "'. Reading stderr failed: " +
(error.isFailed() ? error.failure() : "discarded"));
}
- return Failure("Failed to perform 'curl': " + error.get());
+ return Failure("Failed to perform 'curl' for '" + stringify(uri) +
+ "': " + error.get());
}
const Future<string>& output = std::get<1>(t);
if (!output.isReady()) {
return Failure(
- "Failed to read stdout from 'curl': " +
- (output.isFailed() ? output.failure() : "discarded"));
+ "Failed to read stdout from 'curl' for '" + stringify(uri) +
+ "': " + (output.isFailed() ? output.failure() : "discarded"));
}
// Parse the output and get the HTTP response code.
Try<int> code = numify<int>(output.get());
if (code.isError()) {
- return Failure("Unexpected output from 'curl': " + output.get());
+ return Failure("Unexpected output from 'curl' for '" + stringify(uri) +
+ "': " + output.get());
}
if (code.get() != http::Status::OK) {
- return Failure(
- "Unexpected HTTP response code: " +
- http::Status::string(code.get()));
+ return Failure("Unexpected HTTP response code for '" + stringify(uri) +
+ "': " + http::Status::string(code.get()));
}
return Nothing();
diff --git a/src/uri/fetchers/docker.cpp b/src/uri/fetchers/docker.cpp
index 09feb68..ed71495 100644
--- a/src/uri/fetchers/docker.cpp
+++ b/src/uri/fetchers/docker.cpp
@@ -170,36 +170,38 @@ static Future<http::Response> curl(
s->status(),
io::read(s->out().get()),
io::read(s->err().get()))
- .then([](const tuple<
+ .then([uri](const tuple<
Future<Option<int>>,
Future<string>,
Future<string>>& t) -> Future<http::Response> {
const Future<Option<int>>& status = std::get<0>(t);
if (!status.isReady()) {
return Failure(
- "Failed to get the exit status of the curl subprocess: " +
- (status.isFailed() ? status.failure() : "discarded"));
+ "Failed to get the exit status of the curl subprocess for '" +
+ uri + "': " + (status.isFailed() ? status.failure() : "discarded"));
}
if (status->isNone()) {
- return Failure("Failed to reap the curl subprocess");
+ return Failure("Failed to reap the curl subprocess for '" + uri + "'");
}
if (status->get() != 0) {
const Future<string>& error = std::get<2>(t);
if (!error.isReady()) {
return Failure(
- "Failed to perform 'curl'. Reading stderr failed: " +
+ "Failed to perform 'curl' for '" + uri +
+ "'. Reading stderr failed: " +
(error.isFailed() ? error.failure() : "discarded"));
}
- return Failure("Failed to perform 'curl': " + error.get());
+ return Failure("Failed to perform 'curl' for '" + uri +
+ "': " + error.get());
}
const Future<string>& output = std::get<1>(t);
if (!output.isReady()) {
return Failure(
- "Failed to read stdout from 'curl': " +
+ "Failed to read stdout from 'curl' for '" + uri + "': " +
(output.isFailed() ? output.failure() : "discarded"));
}
@@ -303,29 +305,31 @@ static Future<int> download(
const Future<Option<int>>& status = std::get<0>(t);
if (!status.isReady()) {
return Failure(
- "Failed to get the exit status of the curl subprocess: " +
- (status.isFailed() ? status.failure() : "discarded"));
+ "Failed to get the exit status of the curl subprocess for '" + uri +
+ "': " + (status.isFailed() ? status.failure() : "discarded"));
}
if (status->isNone()) {
- return Failure("Failed to reap the curl subprocess");
+ return Failure("Failed to reap the curl subprocess for '" + uri + "'");
}
if (status->get() != 0) {
const Future<string>& error = std::get<2>(t);
if (!error.isReady()) {
return Failure(
- "Failed to perform 'curl'. Reading stderr failed: " +
+ "Failed to perform 'curl' for '" + uri +
+ "'. Reading stderr failed: " +
(error.isFailed() ? error.failure() : "discarded"));
}
- return Failure("Failed to perform 'curl': " + error.get());
+ return Failure("Failed to perform 'curl' for '" + uri +
+ "': " + error.get());
}
const Future<string>& output = std::get<1>(t);
if (!output.isReady()) {
return Failure(
- "Failed to read stdout from 'curl': " +
+ "Failed to read stdout from 'curl' for '" + uri + "': " +
(output.isFailed() ? output.failure() : "discarded"));
}
@@ -335,14 +339,15 @@ static Future<int> download(
vector<string> tokens = strings::tokenize(output.get(), "\n", 2);
#endif // __WINDOWS__
if (tokens.empty()) {
- return Failure("Unexpected 'curl' output: " + output.get());
+ return Failure("Unexpected 'curl' output for '" + uri +
+ "': " + output.get());
}
// Parse the output and get the HTTP response code.
Try<int> code = numify<int>(tokens[0]);
if (code.isError()) {
- return Failure(
- "Unexpected HTTP response code from 'curl': " + tokens[0]);
+ return Failure("Unexpected HTTP response code from 'curl' for '" + uri +
+ "': " + tokens[0]);
}
// If there are two tokens, it means that the redirect url