You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2017/08/29 15:55:42 UTC

[07/12] mesos git commit: Added master and agent validation for ContainerInfo.

Added master and agent validation for ContainerInfo.

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


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

Branch: refs/heads/master
Commit: f973d30a8e6b4f95275f2873087cccc9eef97150
Parents: 0d14817
Author: Jie Yu <yu...@gmail.com>
Authored: Sun Aug 20 16:44:15 2017 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Tue Aug 29 08:55:32 2017 -0700

----------------------------------------------------------------------
 src/master/validation.cpp | 34 +++++++++++++++++++++++++++++++++-
 src/slave/validation.cpp  | 18 ++++++++++++++++++
 2 files changed, 51 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/f973d30a/src/master/validation.cpp
----------------------------------------------------------------------
diff --git a/src/master/validation.cpp b/src/master/validation.cpp
index 7c3247d..a6e6a90 100644
--- a/src/master/validation.cpp
+++ b/src/master/validation.cpp
@@ -984,6 +984,21 @@ Option<Error> validateCommandInfo(const ExecutorInfo& executor)
 }
 
 
+// Validates the `ContainerInfo` contained within a `ExecutorInfo`.
+Option<Error> validateContainerInfo(const ExecutorInfo& executor)
+{
+  if (executor.has_container()) {
+    Option<Error> error =
+      common::validation::validateContainerInfo(executor.container());
+    if (error.isSome()) {
+      return Error("Executor's `ContainerInfo` is invalid: " + error->message);
+    }
+  }
+
+  return None();
+}
+
+
 Option<Error> validate(
     const ExecutorInfo& executor,
     Framework* framework,
@@ -1024,6 +1039,7 @@ Option<Error> validate(const ExecutorInfo& executor)
     internal::validateExecutorID,
     internal::validateShutdownGracePeriod,
     internal::validateCommandInfo,
+    internal::validateContainerInfo
   };
 
   foreach (const auto& validator, executorValidators) {
@@ -1202,6 +1218,21 @@ Option<Error> validateCommandInfo(const TaskInfo& task)
 }
 
 
+// Validates the `ContainerInfo` contained within a `TaskInfo`.
+Option<Error> validateContainerInfo(const TaskInfo& task)
+{
+  if (task.has_container()) {
+    Option<Error> error =
+      common::validation::validateContainerInfo(task.container());
+    if (error.isSome()) {
+      return Error("Task's `ContainerInfo` is invalid: " + error->message);
+    }
+  }
+
+  return None();
+}
+
+
 // Validates task specific fields except its executor (if it exists).
 Option<Error> validateTask(
     const TaskInfo& task,
@@ -1221,7 +1252,8 @@ Option<Error> validateTask(
     lambda::bind(internal::validateCheck, task),
     lambda::bind(internal::validateHealthCheck, task),
     lambda::bind(internal::validateResources, task),
-    lambda::bind(internal::validateCommandInfo, task)
+    lambda::bind(internal::validateCommandInfo, task),
+    lambda::bind(internal::validateContainerInfo, task)
   };
 
   foreach (const lambda::function<Option<Error>()>& validator, validators) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/f973d30a/src/slave/validation.cpp
----------------------------------------------------------------------
diff --git a/src/slave/validation.cpp b/src/slave/validation.cpp
index 85c43ca..a575d88 100644
--- a/src/slave/validation.cpp
+++ b/src/slave/validation.cpp
@@ -182,6 +182,15 @@ Option<Error> validate(
         }
       }
 
+      if (call.launch_nested_container().has_container()) {
+        error = common::validation::validateContainerInfo(
+            call.launch_nested_container().container());
+        if (error.isSome()) {
+          return Error("'launch_nested_container.container' is invalid"
+                       ": " + error->message);
+        }
+      }
+
       return None();
     }
 
@@ -282,6 +291,15 @@ Option<Error> validate(
         }
       }
 
+      if (call.launch_nested_container_session().has_container()) {
+        error = common::validation::validateContainerInfo(
+            call.launch_nested_container_session().container());
+        if (error.isSome()) {
+          return Error("'launch_nested_container_session.container' is invalid"
+                       ": " + error->message);
+        }
+      }
+
       return None();
     }