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/31 00:09:15 UTC

mesos git commit: Moved docker registry related structs into the registry namespace.

Repository: mesos
Updated Branches:
  refs/heads/master 6b7cb57d6 -> f556d24f3


Moved docker registry related structs into the registry namespace.

Review: https://reviews.apache.org/r/38941


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/f556d24f
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/f556d24f
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/f556d24f

Branch: refs/heads/master
Commit: f556d24f345a8b4a484ff4affe65a92d76383380
Parents: 6b7cb57
Author: Jojy Varghese <jo...@mesosphere.io>
Authored: Fri Oct 30 16:07:31 2015 -0700
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Fri Oct 30 16:07:31 2015 -0700

----------------------------------------------------------------------
 .../provisioner/docker/registry_client.cpp      | 15 ++--
 .../provisioner/docker/registry_client.hpp      | 74 +++++++++-----------
 .../containerizer/provisioner_docker_tests.cpp  |  2 -
 3 files changed, 42 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/f556d24f/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 d71e806..c260684 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/registry_client.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/registry_client.cpp
@@ -60,22 +60,21 @@ namespace slave {
 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>
 {
 public:
   static Try<Owned<RegistryClientProcess>> create(
       const URL& registry,
       const URL& authServer,
-      const Option<RegistryClient::Credentials>& creds);
+      const Option<Credentials>& creds);
 
-  Future<RegistryClient::ManifestResponse> getManifest(
+  Future<ManifestResponse> getManifest(
       const string& path,
       const Option<string>& tag,
       const Duration& timeout);
@@ -91,7 +90,7 @@ private:
   RegistryClientProcess(
     const URL& registryServer,
     const Owned<TokenManager>& tokenManager,
-    const Option<RegistryClient::Credentials>& creds);
+    const Option<Credentials>& creds);
 
   Future<http::Response> doHttpGet(
       const URL& url,
@@ -105,7 +104,7 @@ private:
 
   const URL registryServer_;
   Owned<TokenManager> tokenManager_;
-  const Option<RegistryClient::Credentials> credentials_;
+  const Option<Credentials> credentials_;
 
   RegistryClientProcess(const RegistryClientProcess&) = delete;
   RegistryClientProcess& operator = (const RegistryClientProcess&) = delete;
@@ -190,7 +189,7 @@ Future<size_t> RegistryClient::getBlob(
 Try<Owned<RegistryClientProcess>> RegistryClientProcess::create(
     const URL& registryServer,
     const URL& authServer,
-    const Option<RegistryClient::Credentials>& creds)
+    const Option<Credentials>& creds)
 {
   Try<Owned<TokenManager>> tokenMgr = TokenManager::create(authServer);
   if (tokenMgr.isError()) {
@@ -205,7 +204,7 @@ Try<Owned<RegistryClientProcess>> RegistryClientProcess::create(
 RegistryClientProcess::RegistryClientProcess(
     const URL& registryServer,
     const Owned<TokenManager>& tokenMgr,
-    const Option<RegistryClient::Credentials>& creds)
+    const Option<Credentials>& creds)
   : registryServer_(registryServer),
     tokenManager_(tokenMgr),
     credentials_(creds) {}

http://git-wip-us.apache.org/repos/asf/mesos/blob/f556d24f/src/slave/containerizer/mesos/provisioner/docker/registry_client.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/registry_client.hpp b/src/slave/containerizer/mesos/provisioner/docker/registry_client.hpp
index 1d3377e..c47b133 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/registry_client.hpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/registry_client.hpp
@@ -41,49 +41,45 @@ namespace registry {
 class RegistryClientProcess;
 
 
-class RegistryClient
+// TODO(bmahler): Replace these with the existing protobuf counterparts.
+
+
+struct FileSystemLayerInfo
 {
-public:
-  /**
-   * Encapsulates information about a file system layer.
-   */
-  struct FileSystemLayerInfo {
-    // TODO(jojy): This string includes the checksum type also now. Need to
-    // separate this into checksum method and checksum.
-    const std::string checksumInfo;
-    const std::string layerId;
-  };
+  // TODO(jojy): This includes both the checksum and
+  // the type of the checksum; separate these.
+  const std::string checksumInfo;
+  const std::string layerId;
+};
 
-  /**
-   * Encapsulates response of "GET Manifest" request.
-   *
-   * Reference: https://docs.docker.com/registry/spec/api
-   */
-  struct ManifestResponse {
-    const std::string name;
-    const std::string digest;
-    const std::vector<FileSystemLayerInfo> fsLayerInfoList;
-  };
 
-  /**
-   * Encapsulates auth credentials for the client sessions.
-   * TODO(jojy): Secure heap to protect the credentials.
-   */
-  struct Credentials {
-    /**
-     * UserId for basic authentication.
-     */
-    const Option<std::string> userId;
-    /**
-     * Password for basic authentication.
-     */
-    const Option<std::string> password;
-    /**
-     * Account for fetching data from registry.
-     */
-    const Option<std::string> account;
-  };
+/**
+ * Response for a "GET Manifest" request.
+ *
+ * Reference: https://docs.docker.com/registry/spec/api
+ */
+struct ManifestResponse
+{
+  const std::string name;
+  const std::string digest;
+  const std::vector<FileSystemLayerInfo> fsLayerInfos;
+};
+
 
+/**
+ * Authentication credentials for the client sessions.
+ */
+struct Credentials
+{
+  const Option<std::string> userId;
+  const Option<std::string> password;
+  const Option<std::string> account;
+};
+
+
+class RegistryClient
+{
+public:
   /**
    * Factory method for creating RegistryClient objects.
    *

http://git-wip-us.apache.org/repos/asf/mesos/blob/f556d24f/src/tests/containerizer/provisioner_docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_docker_tests.cpp b/src/tests/containerizer/provisioner_docker_tests.cpp
index 7894368..99c2af7 100644
--- a/src/tests/containerizer/provisioner_docker_tests.cpp
+++ b/src/tests/containerizer/provisioner_docker_tests.cpp
@@ -64,8 +64,6 @@ using namespace mesos::internal::slave::docker;
 using namespace mesos::internal::slave::docker::paths;
 using namespace mesos::internal::slave::docker::registry;
 
-using ManifestResponse = RegistryClient::ManifestResponse;
-
 namespace mesos {
 namespace internal {
 namespace tests {