You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ne...@apache.org on 2017/07/11 18:03:49 UTC
[8/8] mesos git commit: Added agent domain to Offer message.
Added agent domain to Offer message.
This is a convenience mechanism to allow frameworks to determine the
domain of an agent when they receive a resource offer.
Review: https://reviews.apache.org/r/59921/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/33093c89
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/33093c89
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/33093c89
Branch: refs/heads/master
Commit: 33093c893773f8c9d293afe38e9909f9a2868d32
Parents: 25111bb
Author: Neil Conway <ne...@gmail.com>
Authored: Tue Jul 11 10:43:54 2017 -0700
Committer: Neil Conway <ne...@gmail.com>
Committed: Tue Jul 11 10:43:54 2017 -0700
----------------------------------------------------------------------
include/mesos/mesos.proto | 3 +++
include/mesos/v1/mesos.proto | 3 +++
src/master/master.cpp | 4 ++++
src/tests/master_tests.cpp | 16 ++++++++++++++++
4 files changed, 26 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/33093c89/include/mesos/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto
index 64ec085..8f8079b 100644
--- a/include/mesos/mesos.proto
+++ b/include/mesos/mesos.proto
@@ -1755,6 +1755,9 @@ message Offer {
// URL for reaching the slave running on the host.
optional URL url = 8;
+ // The domain of the slave.
+ optional DomainInfo domain = 11;
+
repeated Resource resources = 5;
repeated Attribute attributes = 7;
repeated ExecutorID executor_ids = 6;
http://git-wip-us.apache.org/repos/asf/mesos/blob/33093c89/include/mesos/v1/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/v1/mesos.proto b/include/mesos/v1/mesos.proto
index 5b8d00d..720f307 100644
--- a/include/mesos/v1/mesos.proto
+++ b/include/mesos/v1/mesos.proto
@@ -1738,6 +1738,9 @@ message Offer {
// URL for reaching the agent running on the host.
optional URL url = 8;
+ // The domain of the agent.
+ optional DomainInfo domain = 11;
+
repeated Resource resources = 5;
repeated Attribute attributes = 7;
repeated ExecutorID executor_ids = 6;
http://git-wip-us.apache.org/repos/asf/mesos/blob/33093c89/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index eb660cc..d895154 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -7538,6 +7538,10 @@ void Master::offer(
offer->mutable_attributes()->MergeFrom(slave->info.attributes());
offer->mutable_allocation_info()->set_role(role);
+ if (slave->info.has_domain()) {
+ offer->mutable_domain()->MergeFrom(slave->info.domain());
+ }
+
// Add all framework's executors running on this slave.
if (slave->executors.contains(framework->id())) {
const hashmap<ExecutorID, ExecutorInfo>& executors =
http://git-wip-us.apache.org/repos/asf/mesos/blob/33093c89/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index e070e87..6e6461c 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -7389,6 +7389,8 @@ TEST_F(MasterTest, AgentDomainSameRegion)
Clock::advance(slaveFlags.registration_backoff_factor);
AWAIT_READY(slaveRegisteredMessage);
+ const SlaveID& slaveId = slaveRegisteredMessage->slave_id();
+
MockScheduler sched;
MesosSchedulerDriver driver(
&sched, DEFAULT_FRAMEWORK_INFO, master.get()->pid, DEFAULT_CREDENTIAL);
@@ -7409,6 +7411,10 @@ TEST_F(MasterTest, AgentDomainSameRegion)
AWAIT_READY(offers);
ASSERT_FALSE(offers->empty());
+ Offer offer = offers->front();
+ EXPECT_EQ(slaveId, offer.slave_id());
+ EXPECT_EQ(slaveFlags.domain.get(), offer.domain());
+
driver.stop();
driver.join();
}
@@ -7442,6 +7448,8 @@ TEST_F(MasterTest, AgentDomainDifferentRegion)
Clock::advance(slaveFlags.registration_backoff_factor);
AWAIT_READY(slaveRegisteredMessage);
+ const SlaveID& slaveId = slaveRegisteredMessage->slave_id();
+
// Launch a non-region-aware scheduler. It should NOT receive any
// resource offers for `slave`.
{
@@ -7492,6 +7500,8 @@ TEST_F(MasterTest, AgentDomainDifferentRegion)
ASSERT_FALSE(offers->empty());
Offer offer = offers->front();
+ EXPECT_EQ(slaveId, offer.slave_id());
+ EXPECT_EQ(slaveFlags.domain.get(), offer.domain());
// Check that we can launch a task in a remote region.
TaskInfo task = createTask(offer, "sleep 60");
@@ -7541,6 +7551,8 @@ TEST_F(MasterTest, AgentDomainUnset)
Clock::advance(slaveFlags.registration_backoff_factor);
AWAIT_READY(slaveRegisteredMessage);
+ const SlaveID& slaveId = slaveRegisteredMessage->slave_id();
+
MockScheduler sched;
MesosSchedulerDriver driver(
&sched, DEFAULT_FRAMEWORK_INFO, master.get()->pid, DEFAULT_CREDENTIAL);
@@ -7556,6 +7568,10 @@ TEST_F(MasterTest, AgentDomainUnset)
AWAIT_READY(offers);
ASSERT_FALSE(offers->empty());
+ Offer offer = offers->front();
+ EXPECT_EQ(slaveId, offer.slave_id());
+ EXPECT_FALSE(offer.has_domain());
+
driver.stop();
driver.join();
}