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 2015/08/08 02:14:00 UTC
[2/8] mesos git commit: Moved ContainerInfo::Image definition to the
top level.
Moved ContainerInfo::Image definition to the top level.
Review: https://reviews.apache.org/r/37054
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/ddfab613
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/ddfab613
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/ddfab613
Branch: refs/heads/master
Commit: ddfab613acdb998ede64d80abeb49300a88959c4
Parents: f077ae6
Author: Jie Yu <yu...@gmail.com>
Authored: Mon Aug 3 13:04:44 2015 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Fri Aug 7 16:50:50 2015 -0700
----------------------------------------------------------------------
include/mesos/mesos.proto | 59 +++++++++++---------
src/slave/containerizer/mesos/containerizer.cpp | 9 ++-
src/slave/containerizer/mesos/containerizer.hpp | 8 +--
src/slave/containerizer/provisioner.cpp | 7 ++-
src/slave/containerizer/provisioner.hpp | 4 +-
.../containerizer/mesos_containerizer_tests.cpp | 11 ++--
6 files changed, 51 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/ddfab613/include/mesos/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto
index a6748d1..3e55089 100644
--- a/include/mesos/mesos.proto
+++ b/include/mesos/mesos.proto
@@ -1191,6 +1191,39 @@ message RateLimits {
/**
+ * Describe an image used by tasks or executors. Note that it's only
+ * for tasks or executors launched by MesosContainerizer currently.
+ */
+message Image {
+ enum Type {
+ APPC = 1;
+ }
+
+ // Protobuf for specifying an Appc container image. See:
+ // https://github.com/appc/spec/blob/master/spec/aci.md
+ message AppC {
+ // The name of the image.
+ required string name = 1;
+
+ // An image ID is a string of the format "hash-value", where
+ // "hash" is the hash algorithm used and "value" is the hex
+ // encoded string of the digest. Currently the only permitted
+ // hash algorithm is sha512.
+ required string id = 2;
+
+ // Optional labels. Suggested labels: "version", "os", and "arch".
+ optional Labels labels = 3;
+ }
+
+ required Type type = 1;
+
+ // Only one of the following image messages should be set to match
+ // the type.
+ optional AppC appc = 2;
+}
+
+
+/**
* Describes a volume mapping either from host to container or vice
* versa. Both paths can either refer to a directory or a file.
*/
@@ -1258,32 +1291,6 @@ message ContainerInfo {
optional bool force_pull_image = 6;
}
- message Image {
- enum Type {
- APPC = 1;
- }
-
- // Protobuf for specifying an Appc container image. See:
- // https://github.com/appc/spec/blob/master/spec/aci.md
- message AppC {
- // The name of the image.
- required string name = 1;
-
- // An image ID is a string of the format "hash-value", where "hash"
- // is the hash algorithm used and "value" is the hex encoded string of
- // the digest. Currently the only permitted hash algorithm is sha512.
- required string id = 2;
-
- // Optional labels. Suggested labels: "version", "os", and "arch".
- optional Labels labels = 3;
- }
-
- required Type type = 1;
- // Only one of the following image messages should be set to match
- // the type.
- optional AppC appc = 2;
- }
-
message MesosInfo {
optional Image image = 1;
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/ddfab613/src/slave/containerizer/mesos/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp
index 6d07ff1..0222245 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -197,7 +197,7 @@ Try<MesosContainerizer*> MesosContainerizer::create(
return Error("Failed to create launcher: " + launcher.error());
}
- Try<hashmap<ContainerInfo::Image::Type, Owned<Provisioner>>> provisioners =
+ Try<hashmap<Image::Type, Owned<Provisioner>>> provisioners =
Provisioner::create(flags, fetcher);
if (provisioners.isError()) {
@@ -220,7 +220,7 @@ MesosContainerizer::MesosContainerizer(
Fetcher* fetcher,
const Owned<Launcher>& launcher,
const vector<Owned<Isolator>>& isolators,
- const hashmap<ContainerInfo::Image::Type, Owned<Provisioner>>& provisioners)
+ const hashmap<Image::Type, Owned<Provisioner>>& provisioners)
: process(new MesosContainerizerProcess(
flags,
local,
@@ -634,7 +634,7 @@ Future<Nothing> MesosContainerizerProcess::provision(
return Nothing();
}
- ContainerInfo::Image image = executorInfo.container().mesos().image();
+ Image image = executorInfo.container().mesos().image();
if (!provisioners.contains(image.type())) {
return Failure("ExecutorInfo specifies container image type '" +
@@ -1281,8 +1281,7 @@ void MesosContainerizerProcess::____destroy(
return;
}
- ContainerInfo::Image::Type type =
- container->executorInfo.container().mesos().image().type();
+ Image::Type type = container->executorInfo.container().mesos().image().type();
if (!provisioners.contains(type)) {
// We should have a provisioner to handle cleaning up the rootfs
http://git-wip-us.apache.org/repos/asf/mesos/blob/ddfab613/src/slave/containerizer/mesos/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.hpp b/src/slave/containerizer/mesos/containerizer.hpp
index 8851d30..68e9139 100644
--- a/src/slave/containerizer/mesos/containerizer.hpp
+++ b/src/slave/containerizer/mesos/containerizer.hpp
@@ -58,8 +58,7 @@ public:
Fetcher* fetcher,
const process::Owned<Launcher>& launcher,
const std::vector<process::Owned<mesos::slave::Isolator>>& isolators,
- const hashmap<ContainerInfo::Image::Type,
- process::Owned<Provisioner>>& provisioners);
+ const hashmap<Image::Type, process::Owned<Provisioner>>& provisioners);
// Used for testing.
@@ -118,8 +117,7 @@ public:
Fetcher* _fetcher,
const process::Owned<Launcher>& _launcher,
const std::vector<process::Owned<mesos::slave::Isolator>>& _isolators,
- const hashmap<ContainerInfo::Image::Type,
- process::Owned<Provisioner>>& _provisioners)
+ const hashmap<Image::Type, process::Owned<Provisioner>>& _provisioners)
: flags(_flags),
local(_local),
fetcher(_fetcher),
@@ -278,7 +276,7 @@ private:
Fetcher* fetcher;
const process::Owned<Launcher> launcher;
const std::vector<process::Owned<mesos::slave::Isolator>> isolators;
- hashmap<ContainerInfo::Image::Type, process::Owned<Provisioner>> provisioners;
+ hashmap<Image::Type, process::Owned<Provisioner>> provisioners;
enum State
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/ddfab613/src/slave/containerizer/provisioner.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/provisioner.cpp b/src/slave/containerizer/provisioner.cpp
index df52e36..efc7e69 100644
--- a/src/slave/containerizer/provisioner.cpp
+++ b/src/slave/containerizer/provisioner.cpp
@@ -24,11 +24,12 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<hashmap<ContainerInfo::Image::Type, Owned<Provisioner>>>
- Provisioner::create(const Flags& flags, Fetcher* fetcher)
+Try<hashmap<Image::Type, Owned<Provisioner>>> Provisioner::create(
+ const Flags& flags,
+ Fetcher* fetcher)
{
// TODO(tnachen): Load provisioners when one of them is available.
- return hashmap<ContainerInfo::Image::Type, Owned<Provisioner>>();
+ return hashmap<Image::Type, Owned<Provisioner>>();
}
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/ddfab613/src/slave/containerizer/provisioner.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/provisioner.hpp b/src/slave/containerizer/provisioner.hpp
index cb4d511..3df6d59 100644
--- a/src/slave/containerizer/provisioner.hpp
+++ b/src/slave/containerizer/provisioner.hpp
@@ -45,7 +45,7 @@ class Provisioner
public:
virtual ~Provisioner() {}
- static Try<hashmap<ContainerInfo::Image::Type, process::Owned<Provisioner>>>
+ static Try<hashmap<Image::Type, process::Owned<Provisioner>>>
create(const Flags& flags, Fetcher* fetcher);
// Recover root filesystems for containers from the run states and
@@ -61,7 +61,7 @@ public:
// image and return the absolute path to the root filesystem.
virtual process::Future<std::string> provision(
const ContainerID& containerId,
- const ContainerInfo::Image& image) = 0;
+ const Image& image) = 0;
// Destroy a previously provisioned root filesystem. Assumes that
// all references (e.g., mounts, open files) to the provisioned
http://git-wip-us.apache.org/repos/asf/mesos/blob/ddfab613/src/tests/containerizer/mesos_containerizer_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/mesos_containerizer_tests.cpp b/src/tests/containerizer/mesos_containerizer_tests.cpp
index 213fa4b..4afa986 100644
--- a/src/tests/containerizer/mesos_containerizer_tests.cpp
+++ b/src/tests/containerizer/mesos_containerizer_tests.cpp
@@ -117,7 +117,7 @@ public:
fetcher,
Owned<Launcher>(launcher.get()),
isolators,
- hashmap<ContainerInfo::Image::Type, Owned<Provisioner>>());
+ hashmap<Image::Type, Owned<Provisioner>>());
}
Try<MesosContainerizer*> CreateContainerizer(
@@ -430,8 +430,7 @@ public:
Fetcher* fetcher,
const Owned<Launcher>& launcher,
const vector<Owned<Isolator>>& isolators,
- const hashmap<ContainerInfo::Image::Type,
- Owned<Provisioner>>& provisioners)
+ const hashmap<Image::Type, Owned<Provisioner>>& provisioners)
: MesosContainerizerProcess(
flags,
local,
@@ -548,7 +547,7 @@ TEST_F(MesosContainerizerDestroyTest, DestroyWhileFetching)
&fetcher,
Owned<Launcher>(launcher.get()),
vector<Owned<Isolator>>(),
- hashmap<ContainerInfo::Image::Type, Owned<Provisioner>>());
+ hashmap<Image::Type, Owned<Provisioner>>());
Future<Nothing> exec;
Promise<bool> promise;
@@ -615,7 +614,7 @@ TEST_F(MesosContainerizerDestroyTest, DestroyWhilePreparing)
&fetcher,
Owned<Launcher>(launcher.get()),
{Owned<Isolator>(isolator)},
- hashmap<ContainerInfo::Image::Type, Owned<Provisioner>>());
+ hashmap<Image::Type, Owned<Provisioner>>());
MesosContainerizer containerizer((Owned<MesosContainerizerProcess>(process)));
@@ -693,7 +692,7 @@ TEST_F(MesosContainerizerDestroyTest, LauncherDestroyFailure)
&fetcher,
Owned<Launcher>(launcher),
vector<Owned<Isolator>>(),
- hashmap<ContainerInfo::Image::Type, Owned<Provisioner>>());
+ hashmap<Image::Type, Owned<Provisioner>>());
MesosContainerizer containerizer((Owned<MesosContainerizerProcess>(process)));