Enabled composing containerizer as a default containerizer in tests.

This patch enforces all tests that start an agent to use composing
containerizer. This is needed to make sure that composing containerizer
is fairly covered by tests.

Review: https://reviews.apache.org/r/66817/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3d156db1
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3d156db1
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3d156db1

Branch: refs/heads/master
Commit: 3d156db1b02fdd607246a899d399fe5010a1c560
Parents: bf901da
Author: Andrei Budnik <abud...@mesosphere.com>
Authored: Fri May 25 09:08:13 2018 +0800
Committer: Qian Zhang <zhq527...@gmail.com>
Committed: Fri May 25 09:08:13 2018 +0800

----------------------------------------------------------------------
 src/tests/cluster.cpp | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/3d156db1/src/tests/cluster.cpp
----------------------------------------------------------------------
diff --git a/src/tests/cluster.cpp b/src/tests/cluster.cpp
index b56212f..a65c4fa 100644
--- a/src/tests/cluster.cpp
+++ b/src/tests/cluster.cpp
@@ -92,6 +92,7 @@
 #include "slave/slave.hpp"
 #include "slave/task_status_update_manager.hpp"
 
+#include "slave/containerizer/composing.hpp"
 #include "slave/containerizer/containerizer.hpp"
 #include "slave/containerizer/fetcher.hpp"
 
@@ -434,10 +435,28 @@ Try<process::Owned<Slave>> Slave::create(
       return Error("Failed to create containerizer: " + 
_containerizer.error());
     }
 
-    slave->ownedContainerizer.reset(_containerizer.get());
     slave->containerizer = _containerizer.get();
   }
 
+  // As composing containerizer doesn't affect behaviour of underlying
+  // containerizers, we can always use composing containerizer turned on
+  // by default in tests.
+  if (!dynamic_cast<slave::ComposingContainerizer*>(slave->containerizer)) {
+    Try<slave::ComposingContainerizer*> composing =
+      slave::ComposingContainerizer::create({slave->containerizer});
+
+    if (composing.isError()) {
+      return Error(
+          "Failed to create composing containerizer: " + composing.error());
+    }
+
+    slave->containerizer = composing.get();
+  }
+
+  if (containerizer.isNone()) {
+    slave->ownedContainerizer.reset(slave->containerizer);
+  }
+
   Option<Authorizer*> authorizer = providedAuthorizer;
 
   // If the authorizer is not provided, create a default one.

Reply via email to