You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2016/08/18 00:54:33 UTC

mesos git commit: Use http instead of https for localhost registry on non 443 port.

Repository: mesos
Updated Branches:
  refs/heads/master 6bc6a40a5 -> e65801485


Use http instead of https for localhost registry on non 443 port.

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


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

Branch: refs/heads/master
Commit: e65801485ab8ec8adf8f9a390c78a9b6c4725b43
Parents: 6bc6a40
Author: Zhitao Li <zh...@gmail.com>
Authored: Wed Aug 17 17:54:21 2016 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Wed Aug 17 17:54:21 2016 -0700

----------------------------------------------------------------------
 src/docker/spec.cpp                           | 16 +++++++++--
 src/tests/containerizer/docker_spec_tests.cpp | 31 ++++++++++++++++++++--
 2 files changed, 43 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/e6580148/src/docker/spec.cpp
----------------------------------------------------------------------
diff --git a/src/docker/spec.cpp b/src/docker/spec.cpp
index 2711578..2f2c32e 100644
--- a/src/docker/spec.cpp
+++ b/src/docker/spec.cpp
@@ -125,8 +125,20 @@ Try<string> getRegistryScheme(const string& registry)
   Result<int> port = getRegistryPort(registry);
   if (port.isError()) {
     return Error("Failed to get registry port: " + port.error());
-  } else if (port.isSome() && port.get() == 80) {
-    return "http";
+  } else if (port.isSome()) {
+    if (port.get() == 443) {
+      return "https";
+    }
+
+    if (port.get() == 80) {
+      return "http";
+    }
+
+    // NOTE: For a local registry, it's typically a http server.
+    const string host = getRegistryHost(registry);
+    if (host == "localhost" || host == "127.0.0.1") {
+      return "http";
+    }
   }
 
   return "https";

http://git-wip-us.apache.org/repos/asf/mesos/blob/e6580148/src/tests/containerizer/docker_spec_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/docker_spec_tests.cpp b/src/tests/containerizer/docker_spec_tests.cpp
index 1c6473a..82bddd2 100644
--- a/src/tests/containerizer/docker_spec_tests.cpp
+++ b/src/tests/containerizer/docker_spec_tests.cpp
@@ -121,14 +121,14 @@ TEST_F(DockerSpecTest, GetRegistrySpec)
   ASSERT_ERROR(scheme);
   EXPECT_TRUE(host.empty());
 
-  registry = "invalid_port:x80";
+  registry = "invalid_host:x80";
   port = spec::getRegistryPort(registry);
   scheme = spec::getRegistryScheme(registry);
   host = spec::getRegistryHost(registry);
 
   ASSERT_ERROR(port);
   ASSERT_ERROR(scheme);
-  EXPECT_EQ("invalid_port", host);
+  EXPECT_EQ("invalid_host", host);
 
   registry = "invalid_port:80:80";
   port = spec::getRegistryPort(registry);
@@ -165,6 +165,33 @@ TEST_F(DockerSpecTest, GetRegistrySpec)
   EXPECT_SOME_EQ(443, port);
   EXPECT_SOME_EQ("https", scheme);
   EXPECT_EQ("registry-1.docker.io", host);
+
+  registry = "127.0.0.1:443";
+  port = spec::getRegistryPort(registry);
+  scheme = spec::getRegistryScheme(registry);
+  host = spec::getRegistryHost(registry);
+
+  EXPECT_SOME_EQ(443, port);
+  EXPECT_SOME_EQ("https", scheme);
+  EXPECT_EQ("127.0.0.1", host);
+
+  registry = "127.0.0.1:1234";
+  port = spec::getRegistryPort(registry);
+  scheme = spec::getRegistryScheme(registry);
+  host = spec::getRegistryHost(registry);
+
+  EXPECT_SOME_EQ(1234, port);
+  EXPECT_SOME_EQ("http", scheme);
+  EXPECT_EQ("127.0.0.1", host);
+
+  registry = "localhost:1234";
+  port = spec::getRegistryPort(registry);
+  scheme = spec::getRegistryScheme(registry);
+  host = spec::getRegistryHost(registry);
+
+  EXPECT_SOME_EQ(1234, port);
+  EXPECT_SOME_EQ("http", scheme);
+  EXPECT_EQ("localhost", host);
 }