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

Reply via email to