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/09/28 20:27:20 UTC

[06/10] mesos git commit: Consistent use of case insensitive keys for HTTP headers.

Consistent use of case insensitive keys for HTTP headers.

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


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

Branch: refs/heads/master
Commit: 605a8b62796d5f9a7ae52a798ba1f7a08a71742f
Parents: bf207e3
Author: Benjamin Mahler <be...@gmail.com>
Authored: Mon Sep 21 19:55:48 2015 -0700
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Mon Sep 28 11:09:48 2015 -0700

----------------------------------------------------------------------
 src/scheduler/scheduler.cpp                     |  2 +-
 .../provisioner/docker/registry_client.cpp      | 19 +++++++++----------
 src/tests/executor_http_api_tests.cpp           | 14 +++++++-------
 src/tests/http_api_tests.cpp                    | 20 ++++++++++----------
 src/tests/master_maintenance_tests.cpp          |  2 +-
 src/tests/reservation_endpoints_tests.cpp       | 12 ++++++------
 src/tests/teardown_tests.cpp                    | 10 +++++-----
 7 files changed, 39 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/605a8b62/src/scheduler/scheduler.cpp
----------------------------------------------------------------------
diff --git a/src/scheduler/scheduler.cpp b/src/scheduler/scheduler.cpp
index ee146eb..56801ca 100644
--- a/src/scheduler/scheduler.cpp
+++ b/src/scheduler/scheduler.cpp
@@ -306,7 +306,7 @@ protected:
     // the scheduler driver does.
 
     const string body = serialize(contentType, call);
-    const hashmap<string, string> headers{{"Accept", stringify(contentType)}};
+    const http::Headers headers{{"Accept", stringify(contentType)}};
 
     Future<Response> response;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/605a8b62/src/slave/containerizer/provisioner/docker/registry_client.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/provisioner/docker/registry_client.cpp b/src/slave/containerizer/provisioner/docker/registry_client.cpp
index 0a96631..c2040b4 100644
--- a/src/slave/containerizer/provisioner/docker/registry_client.cpp
+++ b/src/slave/containerizer/provisioner/docker/registry_client.cpp
@@ -20,6 +20,7 @@
 
 #include <process/defer.hpp>
 #include <process/dispatch.hpp>
+#include <process/http.hpp>
 #include <process/io.hpp>
 
 #include "slave/containerizer/provisioner/docker/registry_client.hpp"
@@ -81,12 +82,12 @@ private:
 
   Future<Response> doHttpGet(
       const URL& url,
-      const Option<hashmap<string, string>>& headers,
+      const Option<process::http::Headers>& headers,
       const Duration& timeout,
       bool resend,
       const Option<string>& lastResponse) const;
 
-  Try<hashmap<string, string>> getAuthenticationAttributes(
+  Try<process::http::Headers> getAuthenticationAttributes(
       const Response& httpResponse) const;
 
   Owned<TokenManager> tokenManager_;
@@ -197,8 +198,7 @@ RegistryClientProcess::RegistryClientProcess(
     credentials_(creds) {}
 
 
-Try<hashmap<string, string>>
-RegistryClientProcess::getAuthenticationAttributes(
+Try<process::http::Headers> RegistryClientProcess::getAuthenticationAttributes(
     const Response& httpResponse) const
 {
   if (httpResponse.headers.find("WWW-Authenticate") ==
@@ -217,7 +217,7 @@ RegistryClientProcess::getAuthenticationAttributes(
 
   const vector<string> authParams = strings::tokenize(authStringTokens[1], ",");
 
-  hashmap<string, string> authAttributes;
+  process::http::Headers authAttributes;
   auto addAttribute = [&authAttributes](
       const string& param) -> Try<Nothing> {
     const vector<string> paramTokens =
@@ -245,10 +245,9 @@ RegistryClientProcess::getAuthenticationAttributes(
 }
 
 
-Future<Response>
-RegistryClientProcess::doHttpGet(
+Future<Response> RegistryClientProcess::doHttpGet(
     const URL& url,
-    const Option<hashmap<string, string>>& headers,
+    const Option<process::http::Headers>& headers,
     const Duration& timeout,
     bool resend,
     const Option<string>& lastResponseStatus) const
@@ -319,7 +318,7 @@ RegistryClientProcess::doHttpGet(
 
       // Handle 401 Unauthorized.
       if (httpResponse.status == "401 Unauthorized") {
-        Try<hashmap<string, string>> authAttributes =
+        Try<process::http::Headers> authAttributes =
           getAuthenticationAttributes(httpResponse);
 
         if (authAttributes.isError()) {
@@ -343,7 +342,7 @@ RegistryClientProcess::doHttpGet(
           .then(defer(self(), [=](
               const Future<Token>& tokenResponse) {
             // Send request with acquired token.
-            hashmap<string, string> authHeaders = {
+            process::http::Headers authHeaders = {
               {"Authorization", "Bearer " + tokenResponse.get().raw}
             };
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/605a8b62/src/tests/executor_http_api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/executor_http_api_tests.cpp b/src/tests/executor_http_api_tests.cpp
index c2c05f4..31938c2 100644
--- a/src/tests/executor_http_api_tests.cpp
+++ b/src/tests/executor_http_api_tests.cpp
@@ -139,7 +139,7 @@ TEST_F(ExecutorHttpApiTest, ValidJsonButInvalidProtobuf)
   JSON::Object object;
   object.values["string"] = "valid_json";
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = APPLICATION_JSON;
 
   Future<Response> response = process::http::post(
@@ -176,7 +176,7 @@ TEST_P(ExecutorHttpApiTest, MalformedContent)
   const string body = "MALFORMED_CONTENT";
 
   const ContentType contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = stringify(contentType);
 
   Future<Response> response = process::http::post(
@@ -211,7 +211,7 @@ TEST_P(ExecutorHttpApiTest, UnsupportedContentMediaType)
   Clock::settle();
 
   ContentType contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = stringify(contentType);
 
   Call call;
@@ -254,7 +254,7 @@ TEST_P(ExecutorHttpApiTest, MessageFromUnknownFramework)
   Clock::settle();
 
   ContentType contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = stringify(contentType);
 
   Call call;
@@ -325,7 +325,7 @@ TEST_P(ExecutorHttpApiTest, DefaultAccept)
   Clock::pause();
   Clock::settle();
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = "*/*";
 
   // Only subscribe needs to 'Accept' JSON or protobuf.
@@ -376,7 +376,7 @@ TEST_P(ExecutorHttpApiTest, NoAcceptHeader)
 
   // No 'Accept' header leads to all media types considered
   // acceptable. JSON will be chosen by default.
-  hashmap<string, string> headers;
+  process::http::Headers headers;
 
   // Only subscribe needs to 'Accept' JSON or protobuf.
   Call call;
@@ -420,7 +420,7 @@ TEST_P(ExecutorHttpApiTest, NotAcceptable)
   // Retrieve the parameter passed as content type to this test.
   const ContentType contentType = GetParam();
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = "foo";
 
   // Only subscribe needs to 'Accept' JSON or protobuf.

http://git-wip-us.apache.org/repos/asf/mesos/blob/605a8b62/src/tests/http_api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/http_api_tests.cpp b/src/tests/http_api_tests.cpp
index 7938bbb..df87afe 100644
--- a/src/tests/http_api_tests.cpp
+++ b/src/tests/http_api_tests.cpp
@@ -181,7 +181,7 @@ TEST_F(HttpApiTest, ValidJsonButInvalidProtobuf)
   JSON::Object object;
   object.values["string"] = "valid_json";
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = APPLICATION_JSON;
 
   Future<Response> response = process::http::post(
@@ -209,7 +209,7 @@ TEST_P(HttpApiTest, MalformedContent)
   const string body = "MALFORMED_CONTENT";
 
   const string contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = contentType;
 
   Future<Response> response = process::http::post(
@@ -235,7 +235,7 @@ TEST_P(HttpApiTest, UnsupportedContentMediaType)
   ASSERT_SOME(master);
 
   const string contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = contentType;
 
   Call call;
@@ -277,7 +277,7 @@ TEST_P(HttpApiTest, Subscribe)
 
   // Retrieve the parameter passed as content type to this test.
   const string contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = contentType;
 
   Future<Response> response = process::http::streaming::post(
@@ -347,7 +347,7 @@ TEST_P(HttpApiTest, SubscribedOnRetryWithForce)
 
   // Retrieve the parameter passed as content type to this test.
   const string contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = contentType;
 
   auto deserializer =
@@ -472,7 +472,7 @@ TEST_P(HttpApiTest, UpdatePidToHttpScheduler)
 
   // Retrieve the parameter passed as content type to this test.
   const string contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = contentType;
 
   Future<Response> response = process::http::streaming::post(
@@ -559,7 +559,7 @@ TEST_P(HttpApiTest, UpdatePidToHttpSchedulerWithoutForce)
 
   // Retrieve the parameter passed as content type to this test.
   const string contentType = GetParam();
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = contentType;
 
   Future<Response> response = process::http::streaming::post(
@@ -618,7 +618,7 @@ TEST_P(HttpApiTest, NotAcceptable)
   // Retrieve the parameter passed as content type to this test.
   const string contentType = GetParam();
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = "foo";
 
   // Only subscribe needs to 'Accept' json or protobuf.
@@ -653,7 +653,7 @@ TEST_P(HttpApiTest, NoAcceptHeader)
 
   // No 'Accept' header leads to all media types considered
   // acceptable. JSON will be chosen by default.
-  hashmap<string, string> headers;
+  process::http::Headers headers;
 
   // Only subscribe needs to 'Accept' json or protobuf.
   Call call;
@@ -683,7 +683,7 @@ TEST_P(HttpApiTest, DefaultAccept)
   Try<PID<Master> > master = StartMaster(flags);
   ASSERT_SOME(master);
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Accept"] = "*/*";
 
   // Only subscribe needs to 'Accept' json or protobuf.

http://git-wip-us.apache.org/repos/asf/mesos/blob/605a8b62/src/tests/master_maintenance_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_maintenance_tests.cpp b/src/tests/master_maintenance_tests.cpp
index 89ad138..e89ce3b 100644
--- a/src/tests/master_maintenance_tests.cpp
+++ b/src/tests/master_maintenance_tests.cpp
@@ -139,7 +139,7 @@ public:
   }
 
   // Default headers for all POST's to maintenance endpoints.
-  hashmap<string, string> headers;
+  process::http::Headers headers;
 
   const string maintenanceHostname = "maintenance-host";
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/605a8b62/src/tests/reservation_endpoints_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/reservation_endpoints_tests.cpp b/src/tests/reservation_endpoints_tests.cpp
index 398a2e1..d411852 100644
--- a/src/tests/reservation_endpoints_tests.cpp
+++ b/src/tests/reservation_endpoints_tests.cpp
@@ -103,10 +103,10 @@ public:
     return info;
   }
 
-  hashmap<string, string> createBasicAuthHeaders(
+  process::http::Headers createBasicAuthHeaders(
       const Credential& credential) const
   {
-    return hashmap<string, string>{{
+    return process::http::Headers{{
       "Authorization",
       "Basic " +
         base64::encode(credential.principal() + ":" + credential.secret())
@@ -698,7 +698,7 @@ TEST_F(ReservationEndpointsTest, InsufficientResources)
       frameworkInfo.role(),
       createReservationInfo(DEFAULT_CREDENTIAL.principal()));
 
-  hashmap<string, string> headers = createBasicAuthHeaders(DEFAULT_CREDENTIAL);
+  process::http::Headers headers = createBasicAuthHeaders(DEFAULT_CREDENTIAL);
   string body = createRequestBody(slaveId.get(), dynamicallyReserved);
 
   Future<Response> response =
@@ -791,7 +791,7 @@ TEST_F(ReservationEndpointsTest, BadCredentials)
   Resources dynamicallyReserved = unreserved.flatten(
       "role", createReservationInfo(DEFAULT_CREDENTIAL.principal()));
 
-  hashmap<string, string> headers = createBasicAuthHeaders(credential);
+  process::http::Headers headers = createBasicAuthHeaders(credential);
   string body = createRequestBody(slaveId.get(), dynamicallyReserved);
 
   Future<Response> response =
@@ -825,7 +825,7 @@ TEST_F(ReservationEndpointsTest, NoSlaveId)
   Resources dynamicallyReserved = unreserved.flatten(
       "role", createReservationInfo(DEFAULT_CREDENTIAL.principal()));
 
-  hashmap<string, string> headers = createBasicAuthHeaders(DEFAULT_CREDENTIAL);
+  process::http::Headers headers = createBasicAuthHeaders(DEFAULT_CREDENTIAL);
   string body = "resources=" + stringify(toJSONArray(dynamicallyReserved));
 
   Future<Response> response =
@@ -860,7 +860,7 @@ TEST_F(ReservationEndpointsTest, NoResources)
   Try<PID<Slave>> slave = StartSlave();
   ASSERT_SOME(slave);
 
-  hashmap<string, string> headers = createBasicAuthHeaders(DEFAULT_CREDENTIAL);
+  process::http::Headers headers = createBasicAuthHeaders(DEFAULT_CREDENTIAL);
   string body = "slaveId=" + slaveId.get().value();
 
   Future<Response> response =

http://git-wip-us.apache.org/repos/asf/mesos/blob/605a8b62/src/tests/teardown_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/teardown_tests.cpp b/src/tests/teardown_tests.cpp
index daf748c..2eeead7 100644
--- a/src/tests/teardown_tests.cpp
+++ b/src/tests/teardown_tests.cpp
@@ -85,7 +85,7 @@ TEST_F(TeardownTest, TeardownEndpoint)
 
   AWAIT_READY(frameworkId);
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Authorization"] = "Basic " +
     base64::encode(DEFAULT_CREDENTIAL.principal() +
                    ":" + DEFAULT_CREDENTIAL.secret());
@@ -124,7 +124,7 @@ TEST_F(TeardownTest, TeardownEndpointBadCredentials)
 
   AWAIT_READY(frameworkId);
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Authorization"] = "Basic " +
     base64::encode("badPrincipal:badSecret");
 
@@ -174,7 +174,7 @@ TEST_F(TeardownTest, TeardownEndpointGoodACLs)
 
   AWAIT_READY(frameworkId);
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Authorization"] = "Basic " +
     base64::encode(DEFAULT_CREDENTIAL.principal() +
                    ":" + DEFAULT_CREDENTIAL.secret());
@@ -222,7 +222,7 @@ TEST_F(TeardownTest, TeardownEndpointBadACLs)
 
   AWAIT_READY(frameworkId);
 
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Authorization"] = "Basic " +
     base64::encode(DEFAULT_CREDENTIAL.principal() +
                    ":" + DEFAULT_CREDENTIAL.secret());
@@ -262,7 +262,7 @@ TEST_F(TeardownTest, TeardownEndpointNoFrameworkId)
   ASSERT_EQ(DRIVER_RUNNING, driver.start());
 
   AWAIT_READY(frameworkId);
-  hashmap<string, string> headers;
+  process::http::Headers headers;
   headers["Authorization"] = "Basic " +
     base64::encode("badPrincipal:badSecret");
   Future<Response> response =