You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ch...@apache.org on 2018/09/22 06:34:13 UTC

[mesos] 09/10: Tested container cleanup in `AgentResourceProviderConfigApiTest.Remove`.

This is an automated email from the ASF dual-hosted git repository.

chhsiao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit 678fa8b44bc9c09f5f9908a3a4511f7195150d7b
Author: Chun-Hung Hsiao <ch...@mesosphere.io>
AuthorDate: Tue Sep 18 21:40:35 2018 -0700

    Tested container cleanup in `AgentResourceProviderConfigApiTest.Remove`.
    
    Review: https://reviews.apache.org/r/68762
---
 .../agent_resource_provider_config_api_tests.cpp   | 29 +++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/tests/agent_resource_provider_config_api_tests.cpp b/src/tests/agent_resource_provider_config_api_tests.cpp
index 891678f..15c83b3 100644
--- a/src/tests/agent_resource_provider_config_api_tests.cpp
+++ b/src/tests/agent_resource_provider_config_api_tests.cpp
@@ -37,6 +37,10 @@
 
 #include "slave/slave.hpp"
 
+#include "slave/containerizer/fetcher.hpp"
+
+#include "slave/containerizer/mesos/containerizer.hpp"
+
 #include "tests/flags.hpp"
 #include "tests/mesos.hpp"
 
@@ -867,10 +871,21 @@ TEST_P(AgentResourceProviderConfigApiTest, Remove)
   ResourceProviderInfo info = createResourceProviderInfo("volume1:4GB");
   ASSERT_SOME(os::write(configPath, stringify(JSON::protobuf(info))));
 
+  slave::Flags slaveFlags = CreateSlaveFlags();
+
+  slave::Fetcher fetcher(slaveFlags);
+
+  Try<slave::MesosContainerizer*> _containerizer =
+    slave::MesosContainerizer::create(slaveFlags, false, &fetcher);
+  ASSERT_SOME(_containerizer);
+
+  Owned<slave::MesosContainerizer> containerizer(_containerizer.get());
+
   Future<SlaveRegisteredMessage> slaveRegisteredMessage =
     FUTURE_PROTOBUF(SlaveRegisteredMessage(), _, _);
 
-  Try<Owned<cluster::Slave>> slave = StartSlave(detector.get());
+  Try<Owned<cluster::Slave>> slave =
+    StartSlave(detector.get(), containerizer.get(), slaveFlags);
   ASSERT_SOME(slave);
 
   AWAIT_READY(slaveRegisteredMessage);
@@ -907,6 +922,15 @@ TEST_P(AgentResourceProviderConfigApiTest, Remove)
   AWAIT_READY(oldOffers);
   ASSERT_FALSE(oldOffers->empty());
 
+  Future<hashset<ContainerID>> pluginContainers = containerizer->containers();
+
+  // Check that there is one plugin container running.
+  AWAIT_READY(pluginContainers);
+  ASSERT_EQ(1u, pluginContainers->size());
+
+  Future<Option<mesos::slave::ContainerTermination>> pluginTermination =
+    containerizer->wait(*pluginContainers->begin());
+
   Future<OfferID> rescinded;
 
   EXPECT_CALL(sched, offerRescinded(&driver, oldOffers->at(0).id()))
@@ -922,6 +946,9 @@ TEST_P(AgentResourceProviderConfigApiTest, Remove)
 
   // Wait for the old offer to be rescinded.
   AWAIT_READY(rescinded);
+
+  // Check that the plugin container has been destroyed.
+  AWAIT_READY(pluginTermination);
 }