Repository: mesos Updated Branches: refs/heads/master da2fc8da2 -> 82979512b
Added containerClass() to MesosContainerizerProcess::Container. This function always returns a ContainerClass, with `DEFAULT` being the default value returned. Also simplifies the conditional statements in mesos/containerizer.cpp to use the function added. Review: https://reviews.apache.org/r/64575/ Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/e809c3ee Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/e809c3ee Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/e809c3ee Branch: refs/heads/master Commit: e809c3eea5058ea9d956fc5e97222b91fa9ef6ba Parents: da2fc8d Author: Armand Grillet <agril...@mesosphere.io> Authored: Tue Dec 19 19:41:02 2017 +0100 Committer: Alexander Rukletsov <al...@apache.org> Committed: Tue Dec 19 19:41:02 2017 +0100 ---------------------------------------------------------------------- src/slave/containerizer/mesos/containerizer.cpp | 17 +++++++++++------ src/slave/containerizer/mesos/containerizer.hpp | 6 +++++- 2 files changed, 16 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/e809c3ee/src/slave/containerizer/mesos/containerizer.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp index 1a398a8..0504cf9 100644 --- a/src/slave/containerizer/mesos/containerizer.cpp +++ b/src/slave/containerizer/mesos/containerizer.cpp @@ -1640,8 +1640,7 @@ Future<Containerizer::LaunchResult> MesosContainerizerProcess::_launch( Environment containerEnvironment; // Inherit environment from the parent container for DEBUG containers. - if (container->config->has_container_class() && - container->config->container_class() == ContainerClass::DEBUG) { + if (container->containerClass() == ContainerClass::DEBUG) { // DEBUG containers must have a parent. CHECK(containerId.has_parent()); if (containers_[containerId.parent()]->launchInfo.isSome()) { @@ -1658,8 +1657,7 @@ Future<Containerizer::LaunchResult> MesosContainerizerProcess::_launch( } // DEBUG containers inherit MESOS_SANDBOX from their parent. - if (!container->config->has_container_class() || - container->config->container_class() != ContainerClass::DEBUG) { + if (container->containerClass() == ContainerClass::DEFAULT) { // TODO(jieyu): Consider moving this to filesystem isolator. // // NOTE: For the command executor case, although it uses the host @@ -1711,8 +1709,7 @@ Future<Containerizer::LaunchResult> MesosContainerizerProcess::_launch( // // TODO(alexr): Determining working directory is a convoluted process. We // should either simplify the logic or extract it into a helper routine. - if (container->config->has_container_class() && - container->config->container_class() == ContainerClass::DEBUG) { + if (container->containerClass() == ContainerClass::DEBUG) { // DEBUG containers must have a parent. CHECK(containerId.has_parent()); @@ -2892,6 +2889,14 @@ Future<Nothing> MesosContainerizerProcess::pruneImages( } +ContainerClass MesosContainerizerProcess::Container::containerClass() +{ + return (config.isSome() && config->has_container_class()) + ? config->container_class() + : ContainerClass::DEFAULT; +} + + MesosContainerizerProcess::Metrics::Metrics() : container_destroy_errors( "containerizer/mesos/container_destroy_errors") http://git-wip-us.apache.org/repos/asf/mesos/blob/e809c3ee/src/slave/containerizer/mesos/containerizer.hpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/containerizer.hpp b/src/slave/containerizer/mesos/containerizer.hpp index 85cb325..6a141eb 100644 --- a/src/slave/containerizer/mesos/containerizer.hpp +++ b/src/slave/containerizer/mesos/containerizer.hpp @@ -350,11 +350,15 @@ private: // The configuration for the container to be launched. // This can only be None if the underlying container is launched - // before we checkpiont `ContainerConfig` in MESOS-6894. + // before we checkpoint `ContainerConfig` in MESOS-6894. // TODO(zhitao): Drop the `Option` part at the end of deprecation // cycle. Option<mesos::slave::ContainerConfig> config; + // The container class that can be `DEFAULT` or `DEBUG`. + // Returns `DEFAULT` even if the container class is not defined. + mesos::slave::ContainerClass containerClass(); + // Container's information at the moment it was launched. For example, // used to bootstrap the launch information of future child DEBUG // containers. Checkpointed and restored on recovery. Optional because