You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by mp...@apache.org on 2016/03/14 23:48:37 UTC

[1/2] mesos git commit: Updated `/tasks` master endpoint to use `jsonify`.

Repository: mesos
Updated Branches:
  refs/heads/master 3eefe6d16 -> b50b56071


Updated `/tasks` master endpoint to use `jsonify`.

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


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

Branch: refs/heads/master
Commit: 5d0c4557170a81e5a24efbd5550959ea79ad8425
Parents: 3eefe6d
Author: Neil Conway <ne...@gmail.com>
Authored: Mon Mar 14 18:00:30 2016 -0400
Committer: Michael Park <mp...@apache.org>
Committed: Mon Mar 14 18:06:48 2016 -0400

----------------------------------------------------------------------
 src/master/http.cpp | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/5d0c4557/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index bda03da..1c2ca33 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -1963,20 +1963,17 @@ Future<Response> Master::Http::tasks(
     sort(tasks.begin(), tasks.end(), TaskComparator::descending);
   }
 
-  JSON::Object object;
-
-  {
-    JSON::Array array;
-    size_t end = std::min(offset + limit, tasks.size());
-    for (size_t i = offset; i < end; i++) {
-      const Task* task = tasks[i];
-      array.values.push_back(model(*task));
-    }
-
-    object.values["tasks"] = std::move(array);
-  }
+  auto tasksWriter = [&tasks, limit, offset](JSON::ObjectWriter* writer) {
+    writer->field("tasks", [&tasks, limit, offset](JSON::ArrayWriter* writer) {
+      size_t end = std::min(offset + limit, tasks.size());
+      for (size_t i = offset; i < end; i++) {
+        const Task* task = tasks[i];
+        writer->element(*task);
+      }
+    });
+  };
 
-  return OK(object, request.url.query.get("jsonp"));
+  return OK(jsonify(tasksWriter), request.url.query.get("jsonp"));
 }
 
 


[2/2] mesos git commit: Enhanced a test case for the `/state` agent endpoint.

Posted by mp...@apache.org.
Enhanced a test case for the `/state` agent endpoint.

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


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

Branch: refs/heads/master
Commit: b50b56071e3e5db0c60310b1f5b88ef6abf23052
Parents: 5d0c455
Author: Neil Conway <ne...@gmail.com>
Authored: Mon Mar 14 18:00:37 2016 -0400
Committer: Michael Park <mp...@apache.org>
Committed: Mon Mar 14 18:10:54 2016 -0400

----------------------------------------------------------------------
 src/tests/slave_tests.cpp | 45 +++++++++++++++++++++++++++++++++---------
 1 file changed, 36 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/b50b5607/src/tests/slave_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp
index 124e958..87c5e8c 100644
--- a/src/tests/slave_tests.cpp
+++ b/src/tests/slave_tests.cpp
@@ -1316,11 +1316,38 @@ TEST_F(SlaveTest, StateEndpoint)
   parse = JSON::parse<JSON::Object>(response.get().body);
   ASSERT_SOME(parse);
 
-  // Check that executor_id is in the right format.
-  ASSERT_SOME_EQ(
-      "default",
-      parse.get().find<JSON::String>(
-          "frameworks[0].executors[0].tasks[0].executor_id"));
+  state = parse.get();
+  ASSERT_TRUE(state.values["frameworks"].is<JSON::Array>());
+  JSON::Array frameworks = state.values["frameworks"].as<JSON::Array>();
+  EXPECT_EQ(1u, frameworks.values.size());
+
+  ASSERT_TRUE(frameworks.values[0].is<JSON::Object>());
+  JSON::Object framework = frameworks.values[0].as<JSON::Object>();
+
+  EXPECT_EQ("*", framework.values["role"]);
+  EXPECT_EQ("default", framework.values["name"]);
+  EXPECT_EQ(model(resources.get()), state.values["resources"]);
+
+  ASSERT_TRUE(framework.values["executors"].is<JSON::Array>());
+  JSON::Array executors = framework.values["executors"].as<JSON::Array>();
+  EXPECT_EQ(1u, executors.values.size());
+
+  ASSERT_TRUE(executors.values[0].is<JSON::Object>());
+  JSON::Object executor = executors.values[0].as<JSON::Object>();
+
+  EXPECT_EQ("default", executor.values["id"]);
+  EXPECT_EQ("", executor.values["source"]);
+
+  Result<JSON::Array> tasks = executor.find<JSON::Array>("tasks");
+  ASSERT_SOME(tasks);
+  EXPECT_EQ(1u, tasks.get().values.size());
+
+  JSON::Object taskJSON = tasks.get().values[0].as<JSON::Object>();
+  EXPECT_EQ("default", taskJSON.values["executor_id"]);
+  EXPECT_EQ("", taskJSON.values["name"]);
+  EXPECT_EQ(taskId.value(), taskJSON.values["id"]);
+  EXPECT_EQ("TASK_RUNNING", taskJSON.values["state"]);
+  EXPECT_EQ(model(resources.get()), taskJSON.values["resources"]);
 
   EXPECT_CALL(exec, shutdown(_))
     .Times(AtMost(1));
@@ -2344,10 +2371,10 @@ TEST_F(SlaveTest, DiscoveryInfoAndPorts)
   EXPECT_EQ(JSON::Object(JSON::protobuf(discovery)), discoveryObject);
 
   // Check the ports are set in the `DiscoveryInfo` object.
-  Result<JSON::Object> portResult1 = parse.get().find<JSON::Object>(
-      "frameworks[0].executors[0].tasks[0].discovery.ports.ports[0]");
-  Result<JSON::Object> portResult2 = parse.get().find<JSON::Object>(
-      "frameworks[0].executors[0].tasks[0].discovery.ports.ports[1]");
+  Result<JSON::Object> portResult1 = discoveryObject.find<JSON::Object>(
+      "ports.ports[0]");
+  Result<JSON::Object> portResult2 = discoveryObject.find<JSON::Object>(
+      "ports.ports[1]");
 
   EXPECT_SOME(portResult1);
   EXPECT_SOME(portResult2);