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.