You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2015/07/02 00:21:42 UTC
mesos git commit: Added `version` string to MasterInfo.
Repository: mesos
Updated Branches:
refs/heads/master cc9229612 -> b5ba769c6
Added `version` string to MasterInfo.
Jira: MESOS-2957
Adds an optional version string to the `MasterInfo` protobuf,
to simplify handling versioning in HTTP API calls.
The version string is taken from <mesos/version.hpp> which is the
same used when starting up Master (master/main.cpp).
I've added a simple test on the back of the `MasterDetector` test,
as this was the place where we would expect the `MasterInfo` to
have been fully populated by real production code (as opposed to
other places, where it is actually handled by mocks).
Review: https://reviews.apache.org/r/36036
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b5ba769c
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b5ba769c
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b5ba769c
Branch: refs/heads/master
Commit: b5ba769c6619ba878d60c1bad1b5dfbafa71360b
Parents: cc92296
Author: Marco Massenzio <ma...@mesosphere.io>
Authored: Wed Jul 1 15:21:17 2015 -0700
Committer: Vinod Kone <vi...@gmail.com>
Committed: Wed Jul 1 15:21:19 2015 -0700
----------------------------------------------------------------------
include/mesos/mesos.proto | 1 +
src/common/protobuf_utils.cpp | 17 ++++++++++++++++-
src/common/type_utils.cpp | 3 ++-
src/master/master.cpp | 1 +
src/tests/master_tests.cpp | 1 +
5 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/b5ba769c/include/mesos/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto
index 5ab3c4a..1168c2e 100644
--- a/include/mesos/mesos.proto
+++ b/include/mesos/mesos.proto
@@ -344,6 +344,7 @@ message MasterInfo {
required uint32 port = 3 [default = 5050];
optional string pid = 4;
optional string hostname = 5;
+ optional string version = 6;
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/b5ba769c/src/common/protobuf_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.cpp b/src/common/protobuf_utils.cpp
index f0642ba..8a51daa 100644
--- a/src/common/protobuf_utils.cpp
+++ b/src/common/protobuf_utils.cpp
@@ -140,7 +140,22 @@ Option<bool> getTaskHealth(const Task& task)
return healthy;
}
-
+/**
+ * Creates a MasterInfo protobuf from the process's UPID.
+ *
+ * This is only used by the `StandaloneMasterDetector` (used in tests
+ * and outside tests when ZK is not used).
+ *
+ * For example, when we start a slave with
+ * `--master=master@127.0.0.1:5050`, since the slave (and consequently
+ * its detector) doesn't have enough information about `MasterInfo`, it
+ * tries to construct it based on the only available information
+ * (`UPID`).
+ *
+ * @param pid The process's assigned untyped PID.
+ * @return A fully formed `MasterInfo` with the IP/hostname information
+ * as derived from the `UPID`.
+ */
MasterInfo createMasterInfo(const process::UPID& pid)
{
MasterInfo info;
http://git-wip-us.apache.org/repos/asf/mesos/blob/b5ba769c/src/common/type_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/type_utils.cpp b/src/common/type_utils.cpp
index f7b21c6..19f79b4 100644
--- a/src/common/type_utils.cpp
+++ b/src/common/type_utils.cpp
@@ -309,7 +309,8 @@ bool operator == (const MasterInfo& left, const MasterInfo& right)
left.ip() == right.ip() &&
left.port() == right.port() &&
left.pid() == right.pid() &&
- left.hostname() == right.hostname();
+ left.hostname() == right.hostname() &&
+ left.version() == right.version();
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/b5ba769c/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 34ce744..a7486d8 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -320,6 +320,7 @@ Master::Master(
info_.set_port(self().address.port);
info_.set_pid(self());
+ info_.set_version(MESOS_VERSION);
// Determine our hostname or use the hostname provided.
string hostname;
http://git-wip-us.apache.org/repos/asf/mesos/blob/b5ba769c/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index 962455c..57721b7 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -1029,6 +1029,7 @@ TEST_F(MasterTest, MasterInfoOnReElection)
AWAIT_READY(masterInfo);
EXPECT_EQ(master.get().address.port, masterInfo.get().port());
EXPECT_EQ(master.get().address.ip, net::IP(ntohl(masterInfo.get().ip())));
+ EXPECT_EQ(MESOS_VERSION, masterInfo.get().version());
// The re-registered framework should get offers.
AWAIT_READY(resourceOffers2);