You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by al...@apache.org on 2017/03/15 20:30:12 UTC
mesos git commit: Implemented 'ComposingContainerizer::remove(const
ContainerID&)'.
Repository: mesos
Updated Branches:
refs/heads/master 4575e3879 -> 809b90f1e
Implemented 'ComposingContainerizer::remove(const ContainerID&)'.
Review: https://reviews.apache.org/r/57644/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/809b90f1
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/809b90f1
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/809b90f1
Branch: refs/heads/master
Commit: 809b90f1edcc7da588f7e7a0e8e5f47e3a634295
Parents: 4575e38
Author: Gast�n Kleiman <ga...@mesosphere.io>
Authored: Wed Mar 15 21:16:05 2017 +0100
Committer: Alexander Rukletsov <al...@apache.org>
Committed: Wed Mar 15 21:29:35 2017 +0100
----------------------------------------------------------------------
src/slave/containerizer/composing.cpp | 27 +++++++++++++++++++++++++++
src/slave/containerizer/composing.hpp | 2 ++
2 files changed, 29 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/809b90f1/src/slave/containerizer/composing.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/composing.cpp b/src/slave/containerizer/composing.cpp
index 46539e4..b5b66b3 100644
--- a/src/slave/containerizer/composing.cpp
+++ b/src/slave/containerizer/composing.cpp
@@ -102,6 +102,8 @@ public:
Future<hashset<ContainerID>> containers();
+ Future<Nothing> remove(const ContainerID& containerId);
+
private:
// Continuations.
Future<Nothing> _recover();
@@ -277,6 +279,12 @@ Future<hashset<ContainerID>> ComposingContainerizer::containers()
}
+Future<Nothing> ComposingContainerizer::remove(const ContainerID& containerId)
+{
+ return dispatch(process, &ComposingContainerizerProcess::remove, containerId);
+}
+
+
ComposingContainerizerProcess::~ComposingContainerizerProcess()
{
foreach (Containerizer* containerizer, containerizers_) {
@@ -696,6 +704,25 @@ Future<hashset<ContainerID>> ComposingContainerizerProcess::containers()
return containers_.keys();
}
+
+Future<Nothing> ComposingContainerizerProcess::remove(
+ const ContainerID& containerId)
+{
+ // A precondition of this method is that the nested container has already
+ // been terminated, hence `containers_` won't contain it. To work around it,
+ // we use the containerizer that launched the root container to remove the
+ // nested container.
+
+ const ContainerID rootContainerId = protobuf::getRootContainerId(containerId);
+
+ if (!containers_.contains(rootContainerId)) {
+ return Failure(
+ "Root container " + stringify(rootContainerId) + " not found");
+ }
+
+ return containers_[rootContainerId]->containerizer->remove(containerId);
+}
+
} // namespace slave {
} // namespace internal {
} // namespace mesos {
http://git-wip-us.apache.org/repos/asf/mesos/blob/809b90f1/src/slave/containerizer/composing.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/composing.hpp b/src/slave/containerizer/composing.hpp
index 292374a..8e04bfe 100644
--- a/src/slave/containerizer/composing.hpp
+++ b/src/slave/containerizer/composing.hpp
@@ -91,6 +91,8 @@ public:
virtual process::Future<hashset<ContainerID>> containers();
+ virtual process::Future<Nothing> remove(const ContainerID& containerId);
+
private:
ComposingContainerizerProcess* process;
};