You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2015/10/30 19:23:23 UTC
mesos git commit: Cleanup of includes and using statements in the
docker registry client.
Repository: mesos
Updated Branches:
refs/heads/master ef338465c -> 6b7cb57d6
Cleanup of includes and using statements in the docker registry client.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/6b7cb57d
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/6b7cb57d
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/6b7cb57d
Branch: refs/heads/master
Commit: 6b7cb57d64d94b5a4ee1a06c1b723d25821e79be
Parents: ef33846
Author: Benjamin Mahler <be...@gmail.com>
Authored: Fri Oct 30 11:23:07 2015 -0700
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Fri Oct 30 11:23:07 2015 -0700
----------------------------------------------------------------------
.../provisioner/docker/registry_client.cpp | 77 ++++++++++++--------
1 file changed, 45 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b7cb57d/src/slave/containerizer/mesos/provisioner/docker/registry_client.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/registry_client.cpp b/src/slave/containerizer/mesos/provisioner/docker/registry_client.cpp
index 5a01f1b..d71e806 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/registry_client.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/registry_client.cpp
@@ -17,17 +17,31 @@
*/
#include <vector>
+#include <ostream>
#include <process/defer.hpp>
#include <process/dispatch.hpp>
#include <process/http.hpp>
#include <process/io.hpp>
-
-#include <stout/os.hpp>
+#include <process/owned.hpp>
+#include <process/process.hpp>
+
+#include <stout/duration.hpp>
+#include <stout/error.hpp>
+#include <stout/foreach.hpp>
+#include <stout/json.hpp>
+#include <stout/numify.hpp>
+#include <stout/option.hpp>
+#include <stout/os/close.hpp>
+#include <stout/os/mkdir.hpp>
+#include <stout/os/open.hpp>
+#include <stout/strings.hpp>
+#include <stout/try.hpp>
#include "slave/containerizer/mesos/provisioner/docker/registry_client.hpp"
#include "slave/containerizer/mesos/provisioner/docker/token_manager.hpp"
+using std::ostringstream;
using std::string;
using std::vector;
@@ -36,9 +50,9 @@ using process::Future;
using process::Owned;
using process::Process;
-using process::http::Request;
-using process::http::Response;
-using process::http::URL;
+namespace http = process::http;
+
+using http::URL;
namespace mesos {
namespace internal {
@@ -47,13 +61,10 @@ namespace docker {
namespace registry {
using FileSystemLayerInfo = RegistryClient::FileSystemLayerInfo;
-
using ManifestResponse = RegistryClient::ManifestResponse;
const Duration RegistryClient::DEFAULT_MANIFEST_TIMEOUT_SECS = Seconds(10);
-
const size_t RegistryClient::DEFAULT_MANIFEST_MAXSIZE_BYTES = 4096;
-
static const uint16_t DEFAULT_SSL_PORT = 443;
class RegistryClientProcess : public Process<RegistryClientProcess>
@@ -82,15 +93,15 @@ private:
const Owned<TokenManager>& tokenManager,
const Option<RegistryClient::Credentials>& creds);
- Future<Response> doHttpGet(
+ Future<http::Response> doHttpGet(
const URL& url,
- const Option<process::http::Headers>& headers,
+ const Option<http::Headers>& headers,
const Duration& timeout,
bool resend,
const Option<string>& lastResponse) const;
- Try<process::http::Headers> getAuthenticationAttributes(
- const Response& httpResponse) const;
+ Try<http::Headers> getAuthenticationAttributes(
+ const http::Response& httpResponse) const;
const URL registryServer_;
Owned<TokenManager> tokenManager_;
@@ -200,8 +211,8 @@ RegistryClientProcess::RegistryClientProcess(
credentials_(creds) {}
-Try<process::http::Headers> RegistryClientProcess::getAuthenticationAttributes(
- const Response& httpResponse) const
+Try<http::Headers> RegistryClientProcess::getAuthenticationAttributes(
+ const http::Response& httpResponse) const
{
if (httpResponse.headers.find("WWW-Authenticate") ==
httpResponse.headers.end()) {
@@ -219,7 +230,7 @@ Try<process::http::Headers> RegistryClientProcess::getAuthenticationAttributes(
const vector<string> authParams = strings::tokenize(authStringTokens[1], ",");
- process::http::Headers authAttributes;
+ http::Headers authAttributes;
auto addAttribute = [&authAttributes](
const string& param) -> Try<Nothing> {
const vector<string> paramTokens =
@@ -247,20 +258,20 @@ Try<process::http::Headers> RegistryClientProcess::getAuthenticationAttributes(
}
-Future<Response> RegistryClientProcess::doHttpGet(
+Future<http::Response> RegistryClientProcess::doHttpGet(
const URL& url,
- const Option<process::http::Headers>& headers,
+ const Option<http::Headers>& headers,
const Duration& timeout,
bool resend,
const Option<string>& lastResponseStatus) const
{
- return process::http::get(url, headers)
- .after(timeout, [](
- const Future<Response>& httpResponseFuture) -> Future<Response> {
+ return http::get(url, headers)
+ .after(timeout, [](const Future<http::Response>& httpResponseFuture)
+ -> Future<http::Response> {
return Failure("Response timeout");
})
- .then(defer(self(), [=](
- const Response& httpResponse) -> Future<Response> {
+ .then(defer(self(), [=](const http::Response& httpResponse)
+ -> Future<http::Response> {
VLOG(1) << "Response status: " + httpResponse.status;
// Set the future if we get a OK response.
@@ -275,7 +286,7 @@ Future<Response> RegistryClientProcess::doHttpGet(
errorResponse.error());
}
- std::ostringstream out;
+ ostringstream out;
bool first = true;
Result<JSON::Array> errorObjects =
errorResponse.get().find<JSON::Array>("errors");
@@ -322,7 +333,7 @@ Future<Response> RegistryClientProcess::doHttpGet(
// Handle 401 Unauthorized.
if (httpResponse.status == "401 Unauthorized") {
- Try<process::http::Headers> authAttributes =
+ Try<http::Headers> authAttributes =
getAuthenticationAttributes(httpResponse);
if (authAttributes.isError()) {
@@ -346,7 +357,7 @@ Future<Response> RegistryClientProcess::doHttpGet(
.then(defer(self(), [=](
const Future<Token>& tokenResponse) {
// Send request with acquired token.
- process::http::Headers authHeaders = {
+ http::Headers authHeaders = {
{"Authorization", "Bearer " + tokenResponse.get().raw}
};
@@ -450,8 +461,8 @@ Future<ManifestResponse> RegistryClientProcess::getManifest(
manifestURL.path =
"v2/" + path + "/manifests/" + repoTag;
- auto getManifestResponse = [](
- const Response& httpResponse) -> Try<ManifestResponse> {
+ auto getManifestResponse = [](const http::Response& httpResponse)
+ -> Try<ManifestResponse> {
if (!httpResponse.headers.contains("Docker-Content-Digest")) {
return Error("Docker-Content-Digest header missing in response");
}
@@ -561,8 +572,8 @@ Future<ManifestResponse> RegistryClientProcess::getManifest(
};
return doHttpGet(manifestURL, None(), timeout, true, None())
- .then([getManifestResponse] (
- const Response& response) -> Future<ManifestResponse> {
+ .then([getManifestResponse] (const http::Response& response)
+ -> Future<ManifestResponse> {
Try<ManifestResponse> manifestResponse = getManifestResponse(response);
if (manifestResponse.isError()) {
@@ -610,8 +621,8 @@ Future<size_t> RegistryClientProcess::getBlob(
blobURL.path =
"v2/" + path + "/blobs/" + digest.getOrElse("");
- auto saveBlob = [filePath](
- const Response& httpResponse) -> Future<size_t> {
+ auto saveBlob = [filePath](const http::Response& httpResponse)
+ -> Future<size_t> {
// TODO(jojy): Add verification step.
// TODO(jojy): Add check for max size.
size_t size = httpResponse.body.length();
@@ -631,7 +642,9 @@ Future<size_t> RegistryClientProcess::getBlob(
};
return doHttpGet(blobURL, None(), timeout, true, None())
- .then([saveBlob](const Response& response) { return saveBlob(response); });
+ .then([saveBlob](const http::Response& response) {
+ return saveBlob(response);
+ });
}
} // namespace registry {