You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by an...@apache.org on 2016/07/06 05:53:34 UTC

[5/7] mesos git commit: Refactored 'master::Http::getFrameworks()' to helper function.

Refactored 'master::Http::getFrameworks()' to helper function.

This helper function will be reused by `GET_FRAMEWORKS` and
`GET_STATE` calls.

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


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

Branch: refs/heads/master
Commit: dc73420f920d948f63e8abddf37d3136969c2c88
Parents: 2517ce8
Author: Zhitao Li <zh...@gmail.com>
Authored: Tue Jul 5 21:25:46 2016 -0700
Committer: Anand Mazumdar <an...@apache.org>
Committed: Tue Jul 5 22:32:57 2016 -0700

----------------------------------------------------------------------
 src/master/http.cpp   | 33 +++++++++++++++++++++++----------
 src/master/master.hpp |  3 +++
 2 files changed, 26 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/dc73420f/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index 2341f15..7020095 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -1346,6 +1346,22 @@ Future<Response> Master::Http::getFrameworks(
 {
   CHECK_EQ(mesos::master::Call::GET_FRAMEWORKS, call.type());
 
+  return _getFrameworks(principal)
+    .then([contentType](
+        const mesos::master::Response::GetFrameworks& getFrameworks)
+          -> Future<Response> {
+      mesos::master::Response response;
+      response.set_type(mesos::master::Response::GET_FRAMEWORKS);
+      response.mutable_get_frameworks()->CopyFrom(getFrameworks);
+      return OK(serialize(contentType, evolve(response)),
+                stringify(contentType));
+    });
+}
+
+
+Future<mesos::master::Response::GetFrameworks> Master::Http::_getFrameworks(
+    const Option<string>& principal) const
+{
   // Retrieve `ObjectApprover`s for authorizing frameworks.
   Future<Owned<ObjectApprover>> frameworksApprover;
 
@@ -1364,9 +1380,9 @@ Future<Response> Master::Http::getFrameworks(
 
   return frameworksApprover
     .then(defer(master->self(),
-        [=](const Owned<ObjectApprover>& frameworksApprover) -> Response {
-      mesos::master::Response response;
-      response.set_type(mesos::master::Response::GET_FRAMEWORKS);
+        [=](const Owned<ObjectApprover>& frameworksApprover)
+          -> Future<mesos::master::Response::GetFrameworks> {
+      mesos::master::Response::GetFrameworks getFrameworks;
 
       foreachvalue (const Framework* framework,
                     master->frameworks.registered) {
@@ -1375,8 +1391,7 @@ Future<Response> Master::Http::getFrameworks(
           continue;
         }
 
-        response.mutable_get_frameworks()->add_frameworks()
-            ->CopyFrom(model(*framework));
+        getFrameworks.add_frameworks()->CopyFrom(model(*framework));
       }
 
       foreach (const std::shared_ptr<Framework>& framework,
@@ -1386,21 +1401,19 @@ Future<Response> Master::Http::getFrameworks(
           continue;
         }
 
-        response.mutable_get_frameworks()->add_completed_frameworks()
-            ->CopyFrom(model(*framework));
+        getFrameworks.add_completed_frameworks()->CopyFrom(model(*framework));
       }
 
       foreachvalue (const Slave* slave, master->slaves.registered) {
         foreachkey (const FrameworkID& frameworkId, slave->tasks) {
           if (!master->frameworks.registered.contains(frameworkId)) {
-            response.mutable_get_frameworks()->add_unsubscribed_frameworks()
+            getFrameworks.add_unsubscribed_frameworks()
                 ->set_value(frameworkId.value());
           }
         }
       }
 
-      return OK(serialize(contentType, evolve(response)),
-                stringify(contentType));
+      return getFrameworks;
     }));
 }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/dc73420f/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index 09e5105..6f2a2b5 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -1489,6 +1489,9 @@ private:
         const Option<std::string>& principal,
         ContentType contentType) const;
 
+    process::Future<mesos::master::Response::GetFrameworks> _getFrameworks(
+        const Option<std::string>& principal) const;
+
     process::Future<process::http::Response> getExecutors(
         const mesos::master::Call& call,
         const Option<std::string>& principal,