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