You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2017/12/06 20:05:02 UTC
[5/8] mesos git commit: Added excluded image parameter to
containerizer pruneImages().
Added excluded image parameter to containerizer pruneImages().
Review: https://reviews.apache.org/r/64264
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/1f164fb6
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/1f164fb6
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/1f164fb6
Branch: refs/heads/master
Commit: 1f164fb6b3da49ffc5e1b97e026969f3d5703470
Parents: c399377
Author: Gilbert Song <so...@gmail.com>
Authored: Sun Nov 26 15:46:01 2017 -0500
Committer: Gilbert Song <so...@gmail.com>
Committed: Wed Dec 6 12:04:19 2017 -0800
----------------------------------------------------------------------
src/slave/containerizer/composing.cpp | 13 ++++++-----
src/slave/containerizer/composing.hpp | 3 ++-
src/slave/containerizer/containerizer.hpp | 3 ++-
src/slave/containerizer/docker.cpp | 3 ++-
src/slave/containerizer/docker.hpp | 3 ++-
src/slave/containerizer/mesos/containerizer.cpp | 23 +++++++++++++-------
src/slave/containerizer/mesos/containerizer.hpp | 6 +++--
src/tests/containerizer.cpp | 10 +++++----
src/tests/containerizer.hpp | 7 +++---
src/tests/containerizer/mock_containerizer.hpp | 5 ++++-
10 files changed, 49 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/slave/containerizer/composing.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/composing.cpp b/src/slave/containerizer/composing.cpp
index 8388096..9ace70d 100644
--- a/src/slave/containerizer/composing.cpp
+++ b/src/slave/containerizer/composing.cpp
@@ -95,7 +95,7 @@ public:
Future<Nothing> remove(const ContainerID& containerId);
- Future<Nothing> pruneImages();
+ Future<Nothing> pruneImages(const vector<Image>& excludedImages);
private:
// Continuations.
@@ -265,9 +265,11 @@ Future<Nothing> ComposingContainerizer::remove(const ContainerID& containerId)
}
-Future<Nothing> ComposingContainerizer::pruneImages()
+Future<Nothing> ComposingContainerizer::pruneImages(
+ const vector<Image>& excludedImages)
{
- return dispatch(process, &ComposingContainerizerProcess::pruneImages);
+ return dispatch(
+ process, &ComposingContainerizerProcess::pruneImages, excludedImages);
}
@@ -697,12 +699,13 @@ Future<Nothing> ComposingContainerizerProcess::remove(
}
-Future<Nothing> ComposingContainerizerProcess::pruneImages()
+Future<Nothing> ComposingContainerizerProcess::pruneImages(
+ const vector<Image>& excludedImages)
{
list<Future<Nothing>> futures;
foreach (Containerizer* containerizer, containerizers_) {
- futures.push_back(containerizer->pruneImages());
+ futures.push_back(containerizer->pruneImages(excludedImages));
}
return collect(futures)
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/slave/containerizer/composing.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/composing.hpp b/src/slave/containerizer/composing.hpp
index 3d00609..1221d9b 100644
--- a/src/slave/containerizer/composing.hpp
+++ b/src/slave/containerizer/composing.hpp
@@ -86,7 +86,8 @@ public:
virtual process::Future<Nothing> remove(const ContainerID& containerId);
- virtual process::Future<Nothing> pruneImages();
+ virtual process::Future<Nothing> pruneImages(
+ const std::vector<Image>& excludedImages);
private:
ComposingContainerizerProcess* process;
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/slave/containerizer/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/containerizer.hpp b/src/slave/containerizer/containerizer.hpp
index 7a0c6fc..836283a 100644
--- a/src/slave/containerizer/containerizer.hpp
+++ b/src/slave/containerizer/containerizer.hpp
@@ -167,7 +167,8 @@ public:
}
// Prune unused images from supported image stores.
- virtual process::Future<Nothing> pruneImages() = 0;
+ virtual process::Future<Nothing> pruneImages(
+ const std::vector<Image>& excludedImages) = 0;
};
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp
index d837442..229891d 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -876,7 +876,8 @@ Future<hashset<ContainerID>> DockerContainerizer::containers()
}
-Future<Nothing> DockerContainerizer::pruneImages()
+Future<Nothing> DockerContainerizer::pruneImages(
+ const vector<Image>& excludedImages)
{
VLOG(1) << "DockerContainerizer does not support pruneImages";
return Nothing();
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/slave/containerizer/docker.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.hpp b/src/slave/containerizer/docker.hpp
index 9df9849..f1b56c8 100644
--- a/src/slave/containerizer/docker.hpp
+++ b/src/slave/containerizer/docker.hpp
@@ -109,7 +109,8 @@ public:
virtual process::Future<hashset<ContainerID>> containers();
- virtual process::Future<Nothing> pruneImages();
+ virtual process::Future<Nothing> pruneImages(
+ const std::vector<Image>& excludedImages);
private:
process::Owned<DockerContainerizerProcess> process;
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/slave/containerizer/mesos/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp
index 44e8f7a..a673117 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -660,9 +660,11 @@ Future<Nothing> MesosContainerizer::remove(const ContainerID& containerId)
}
-Future<Nothing> MesosContainerizer::pruneImages()
+Future<Nothing> MesosContainerizer::pruneImages(
+ const vector<Image>& excludedImages)
{
- return dispatch(process.get(), &MesosContainerizerProcess::pruneImages);
+ return dispatch(
+ process.get(), &MesosContainerizerProcess::pruneImages, excludedImages);
}
@@ -2828,10 +2830,11 @@ Future<hashset<ContainerID>> MesosContainerizerProcess::containers()
}
-Future<Nothing> MesosContainerizerProcess::pruneImages()
+Future<Nothing> MesosContainerizerProcess::pruneImages(
+ const vector<Image>& excludedImages)
{
- vector<Image> excludedImages;
- excludedImages.reserve(containers_.size());
+ vector<Image> _excludedImages;
+ _excludedImages.reserve(containers_.size() + excludedImages.size());
foreachpair (
const ContainerID& containerId,
@@ -2850,14 +2853,18 @@ Future<Nothing> MesosContainerizerProcess::pruneImages()
const ContainerConfig& containerConfig = container->config.get();
if (containerConfig.has_container_info() &&
containerConfig.container_info().mesos().has_image()) {
- excludedImages.push_back(
+ _excludedImages.push_back(
containerConfig.container_info().mesos().image());
}
}
- // TODO(zhitao): use std::unique to deduplicate `excludedImages`.
+ foreach (const Image& image, excludedImages) {
+ _excludedImages.push_back(image);
+ }
+
+ // TODO(zhitao): use std::unique to deduplicate `_excludedImages`.
- return provisioner->pruneImages(excludedImages);
+ return provisioner->pruneImages(_excludedImages);
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/slave/containerizer/mesos/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.hpp b/src/slave/containerizer/mesos/containerizer.hpp
index e2739e0..965e183 100644
--- a/src/slave/containerizer/mesos/containerizer.hpp
+++ b/src/slave/containerizer/mesos/containerizer.hpp
@@ -111,7 +111,8 @@ public:
virtual process::Future<Nothing> remove(const ContainerID& containerId);
- virtual process::Future<Nothing> pruneImages();
+ virtual process::Future<Nothing> pruneImages(
+ const std::vector<Image>& excludedImages);
private:
explicit MesosContainerizer(
@@ -183,7 +184,8 @@ public:
virtual process::Future<hashset<ContainerID>> containers();
- virtual process::Future<Nothing> pruneImages();
+ virtual process::Future<Nothing> pruneImages(
+ const std::vector<Image>& excludedImages);
private:
enum State
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/tests/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer.cpp b/src/tests/containerizer.cpp
index 665bd5d..13a290f 100644
--- a/src/tests/containerizer.cpp
+++ b/src/tests/containerizer.cpp
@@ -314,7 +314,7 @@ public:
return containers_.keys();
}
- Future<Nothing> pruneImages()
+ Future<Nothing> pruneImages(const vector<Image>& excludedImages)
{
return Nothing();
}
@@ -444,7 +444,7 @@ void TestContainerizer::setup()
EXPECT_CALL(*this, kill(_, _))
.WillRepeatedly(Invoke(this, &TestContainerizer::_kill));
- EXPECT_CALL(*this, pruneImages())
+ EXPECT_CALL(*this, pruneImages(_))
.WillRepeatedly(Invoke(this, &TestContainerizer::_pruneImages));
}
@@ -578,11 +578,13 @@ Future<hashset<ContainerID>> TestContainerizer::containers()
}
-Future<Nothing> TestContainerizer::_pruneImages()
+Future<Nothing> TestContainerizer::_pruneImages(
+ const vector<Image>& excludedImages)
{
return process::dispatch(
process.get(),
- &TestContainerizerProcess::pruneImages);
+ &TestContainerizerProcess::pruneImages,
+ excludedImages);
}
} // namespace tests {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/tests/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer.hpp b/src/tests/containerizer.hpp
index 3d162fe..179f854 100644
--- a/src/tests/containerizer.hpp
+++ b/src/tests/containerizer.hpp
@@ -122,9 +122,9 @@ public:
kill,
process::Future<bool>(const ContainerID&, int));
- MOCK_METHOD0(
+ MOCK_METHOD1(
pruneImages,
- process::Future<Nothing>());
+ process::Future<Nothing>(const std::vector<Image>&));
// Additional destroy method for testing because we won't know the
// ContainerID created for each container.
@@ -172,7 +172,8 @@ private:
const ContainerID& containerId,
int status);
- process::Future<Nothing> _pruneImages();
+ process::Future<Nothing> _pruneImages(
+ const std::vector<Image>& excludedImages);
process::Owned<TestContainerizerProcess> process;
};
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f164fb6/src/tests/containerizer/mock_containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/mock_containerizer.hpp b/src/tests/containerizer/mock_containerizer.hpp
index bbfa768..01c617a 100644
--- a/src/tests/containerizer/mock_containerizer.hpp
+++ b/src/tests/containerizer/mock_containerizer.hpp
@@ -82,7 +82,10 @@ public:
containers,
process::Future<hashset<ContainerID>>());
- MOCK_METHOD0(pruneImages, process::Future<Nothing>());
+ MOCK_METHOD1(
+ pruneImages,
+ process::Future<Nothing>(
+ const std::vector<Image>&));
};
} // namespace tests {