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);