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();
}