Re: [3/3] mesos git commit: Plugged in docker runtime isolator.
Thank you guys. Should have been more careful to avoid this. On Wed, Feb 3, 2016 at 9:17 PM, Jie Yu wrote: > Thanks James. Just committed a fix. > > On Wed, Feb 3, 2016 at 8:54 PM, James Peach wrote: > > > > > > On Feb 3, 2016, at 5:45 PM, ji...@apache.org wrote: > > > > > > Plugged in docker runtime isolator. > > > > > > Review: https://reviews.apache.org/r/43036/ > > > > > > > > > Project: http://git-wip-us.apache.org/repos/asf/mesos/repo > > > Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/0b0a3dc5 > > > Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/0b0a3dc5 > > > Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/0b0a3dc5 > > > > > > Branch: refs/heads/master > > > Commit: 0b0a3dc5467224511b1963dd0ac530bca7506376 > > > Parents: 2d5d14f > > > Author: Gilbert Song > > > Authored: Wed Feb 3 17:14:23 2016 -0800 > > > Committer: Jie Yu > > > Committed: Wed Feb 3 17:14:23 2016 -0800 > > > > > > -- > > > src/slave/containerizer/mesos/containerizer.cpp | 12 +++- > > > .../mesos/isolators/docker/runtime.cpp | 30 > ++-- > > > 2 files changed, 39 insertions(+), 3 deletions(-) > > > -- > > > > > > > > > > > > http://git-wip-us.apache.org/repos/asf/mesos/blob/0b0a3dc5/src/slave/containerizer/mesos/containerizer.cpp > > > -- > > > diff --git a/src/slave/containerizer/mesos/containerizer.cpp > > b/src/slave/containerizer/mesos/containerizer.cpp > > > index 5f8b6c7..12294cd 100644 > > > --- a/src/slave/containerizer/mesos/containerizer.cpp > > > +++ b/src/slave/containerizer/mesos/containerizer.cpp > > > @@ -63,6 +63,10 @@ > > > #endif > > > > > > #ifdef __linux__ > > > +#include "slave/containerizer/mesos/isolators/docker/runtime.hpp" > > > +#endif > > > + > > > +#ifdef __linux__ > > > #include "slave/containerizer/mesos/isolators/filesystem/linux.hpp" > > > #endif > > > #include "slave/containerizer/mesos/isolators/filesystem/posix.hpp" > > > @@ -210,6 +214,7 @@ Try > MesosContainerizer::create( > > > {"cgroups/mem", &CgroupsMemIsolatorProcess::create}, > > > {"cgroups/net_cls", &CgroupsNetClsIsolatorProcess::create}, > > > {"cgroups/perf_event", &CgroupsPerfEventIsolatorProcess::create}, > > > +{"docker/runtime", &DockerRuntimeIsolatorProcess::create}, > > > {"namespaces/pid", &NamespacesPidIsolatorProcess::create}, > > > #endif > > > #ifdef WITH_NETWORK_ISOLATOR > > > @@ -839,7 +844,12 @@ Future>> > > MesosContainerizerProcess::prepare( > > > } > > > > > > if (provisionInfo.isSome()) { > > > -containerConfig.set_rootfs(provisionInfo.get().rootfs); > > > +containerConfig.set_rootfs(provisionInfo->rootfs); > > > + > > > +if (provisionInfo->dockerManifest.isSome()) { > > > + ContainerConfig::Docker* docker = > > containerConfig.mutable_docker(); > > > + > > > docker->mutable_manifest()->CopyFrom(provisionInfo->dockerManifest.get()); > > > +} > > > } > > > > > > // We prepare the isolators sequentially according to their ordering > > > > > > > > > http://git-wip-us.apache.org/repos/asf/mesos/blob/0b0a3dc5/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > > -- > > > diff --git a/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > b/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > > index f5f9678..5189a6d 100644 > > > --- a/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > > +++ b/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > > @@ -16,6 +16,10 @@ > > > > > > #include > > > > > > +#include > > > + > > > +#include > > > + > > > #include "slave/flags.hpp" > > > > > > #include "slave/containerizer/mesos/isolators/docker/runtime.hpp" > > > @@ -48,7 +52,10 @@ > > DockerRuntimeIsolatorProcess::~DockerRuntimeIsolatorProcess() {} > > > > > > Try DockerRuntimeIsolatorProcess::create(const Flags& flags) > > > { > > > - return nullptr; > > > + process::Owned process( > > > + new DockerRuntimeIsolatorProcess(flags)); > > > + > > > + return new MesosIsolator(process); > > > } > > > > > > > > > @@ -64,7 +71,26 @@ Future> > > DockerRuntimeIsolatorProcess::prepare( > > > const ContainerID& containerId, > > > const ContainerConfig& containerConfig) > > > { > > > - return None(); > > > + const ExecutorInfo& executorInfo = containerConfig.executor_info(); > > > + > > > + if (!executorInfo.has_container()) { > > > +return None(); > > > + } > > > + > > > + if (executorInfo.container().type() != ContainerInfo::MESOS) { > > > +return Failure("Can only prepare docker runtime for a MESOS > > contaienr"); > > > > s/contaienr/container/ > > > > > + } > > > + > > > + if (!containerConfig.has_docker()) { > > > +// No docker image default config available. > > > +re
Re: [3/3] mesos git commit: Plugged in docker runtime isolator.
Thanks James. Just committed a fix. On Wed, Feb 3, 2016 at 8:54 PM, James Peach wrote: > > > On Feb 3, 2016, at 5:45 PM, ji...@apache.org wrote: > > > > Plugged in docker runtime isolator. > > > > Review: https://reviews.apache.org/r/43036/ > > > > > > Project: http://git-wip-us.apache.org/repos/asf/mesos/repo > > Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/0b0a3dc5 > > Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/0b0a3dc5 > > Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/0b0a3dc5 > > > > Branch: refs/heads/master > > Commit: 0b0a3dc5467224511b1963dd0ac530bca7506376 > > Parents: 2d5d14f > > Author: Gilbert Song > > Authored: Wed Feb 3 17:14:23 2016 -0800 > > Committer: Jie Yu > > Committed: Wed Feb 3 17:14:23 2016 -0800 > > > > -- > > src/slave/containerizer/mesos/containerizer.cpp | 12 +++- > > .../mesos/isolators/docker/runtime.cpp | 30 ++-- > > 2 files changed, 39 insertions(+), 3 deletions(-) > > -- > > > > > > > http://git-wip-us.apache.org/repos/asf/mesos/blob/0b0a3dc5/src/slave/containerizer/mesos/containerizer.cpp > > -- > > diff --git a/src/slave/containerizer/mesos/containerizer.cpp > b/src/slave/containerizer/mesos/containerizer.cpp > > index 5f8b6c7..12294cd 100644 > > --- a/src/slave/containerizer/mesos/containerizer.cpp > > +++ b/src/slave/containerizer/mesos/containerizer.cpp > > @@ -63,6 +63,10 @@ > > #endif > > > > #ifdef __linux__ > > +#include "slave/containerizer/mesos/isolators/docker/runtime.hpp" > > +#endif > > + > > +#ifdef __linux__ > > #include "slave/containerizer/mesos/isolators/filesystem/linux.hpp" > > #endif > > #include "slave/containerizer/mesos/isolators/filesystem/posix.hpp" > > @@ -210,6 +214,7 @@ Try MesosContainerizer::create( > > {"cgroups/mem", &CgroupsMemIsolatorProcess::create}, > > {"cgroups/net_cls", &CgroupsNetClsIsolatorProcess::create}, > > {"cgroups/perf_event", &CgroupsPerfEventIsolatorProcess::create}, > > +{"docker/runtime", &DockerRuntimeIsolatorProcess::create}, > > {"namespaces/pid", &NamespacesPidIsolatorProcess::create}, > > #endif > > #ifdef WITH_NETWORK_ISOLATOR > > @@ -839,7 +844,12 @@ Future>> > MesosContainerizerProcess::prepare( > > } > > > > if (provisionInfo.isSome()) { > > -containerConfig.set_rootfs(provisionInfo.get().rootfs); > > +containerConfig.set_rootfs(provisionInfo->rootfs); > > + > > +if (provisionInfo->dockerManifest.isSome()) { > > + ContainerConfig::Docker* docker = > containerConfig.mutable_docker(); > > + > docker->mutable_manifest()->CopyFrom(provisionInfo->dockerManifest.get()); > > +} > > } > > > > // We prepare the isolators sequentially according to their ordering > > > > > http://git-wip-us.apache.org/repos/asf/mesos/blob/0b0a3dc5/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > -- > > diff --git a/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > b/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > index f5f9678..5189a6d 100644 > > --- a/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > +++ b/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > > @@ -16,6 +16,10 @@ > > > > #include > > > > +#include > > + > > +#include > > + > > #include "slave/flags.hpp" > > > > #include "slave/containerizer/mesos/isolators/docker/runtime.hpp" > > @@ -48,7 +52,10 @@ > DockerRuntimeIsolatorProcess::~DockerRuntimeIsolatorProcess() {} > > > > Try DockerRuntimeIsolatorProcess::create(const Flags& flags) > > { > > - return nullptr; > > + process::Owned process( > > + new DockerRuntimeIsolatorProcess(flags)); > > + > > + return new MesosIsolator(process); > > } > > > > > > @@ -64,7 +71,26 @@ Future> > DockerRuntimeIsolatorProcess::prepare( > > const ContainerID& containerId, > > const ContainerConfig& containerConfig) > > { > > - return None(); > > + const ExecutorInfo& executorInfo = containerConfig.executor_info(); > > + > > + if (!executorInfo.has_container()) { > > +return None(); > > + } > > + > > + if (executorInfo.container().type() != ContainerInfo::MESOS) { > > +return Failure("Can only prepare docker runtime for a MESOS > contaienr"); > > s/contaienr/container/ > > > + } > > + > > + if (!containerConfig.has_docker()) { > > +// No docker image default config available. > > +return None(); > > + } > > + > > + // Contains docker image default environment variables, merged > > + // command, and working directory. > > + ContainerLaunchInfo launchInfo; > > + > > + return launchInfo; > > } > > > > > > > >
Re: [3/3] mesos git commit: Plugged in docker runtime isolator.
> On Feb 3, 2016, at 5:45 PM, ji...@apache.org wrote: > > Plugged in docker runtime isolator. > > Review: https://reviews.apache.org/r/43036/ > > > Project: http://git-wip-us.apache.org/repos/asf/mesos/repo > Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/0b0a3dc5 > Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/0b0a3dc5 > Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/0b0a3dc5 > > Branch: refs/heads/master > Commit: 0b0a3dc5467224511b1963dd0ac530bca7506376 > Parents: 2d5d14f > Author: Gilbert Song > Authored: Wed Feb 3 17:14:23 2016 -0800 > Committer: Jie Yu > Committed: Wed Feb 3 17:14:23 2016 -0800 > > -- > src/slave/containerizer/mesos/containerizer.cpp | 12 +++- > .../mesos/isolators/docker/runtime.cpp | 30 ++-- > 2 files changed, 39 insertions(+), 3 deletions(-) > -- > > > http://git-wip-us.apache.org/repos/asf/mesos/blob/0b0a3dc5/src/slave/containerizer/mesos/containerizer.cpp > -- > diff --git a/src/slave/containerizer/mesos/containerizer.cpp > b/src/slave/containerizer/mesos/containerizer.cpp > index 5f8b6c7..12294cd 100644 > --- a/src/slave/containerizer/mesos/containerizer.cpp > +++ b/src/slave/containerizer/mesos/containerizer.cpp > @@ -63,6 +63,10 @@ > #endif > > #ifdef __linux__ > +#include "slave/containerizer/mesos/isolators/docker/runtime.hpp" > +#endif > + > +#ifdef __linux__ > #include "slave/containerizer/mesos/isolators/filesystem/linux.hpp" > #endif > #include "slave/containerizer/mesos/isolators/filesystem/posix.hpp" > @@ -210,6 +214,7 @@ Try MesosContainerizer::create( > {"cgroups/mem", &CgroupsMemIsolatorProcess::create}, > {"cgroups/net_cls", &CgroupsNetClsIsolatorProcess::create}, > {"cgroups/perf_event", &CgroupsPerfEventIsolatorProcess::create}, > +{"docker/runtime", &DockerRuntimeIsolatorProcess::create}, > {"namespaces/pid", &NamespacesPidIsolatorProcess::create}, > #endif > #ifdef WITH_NETWORK_ISOLATOR > @@ -839,7 +844,12 @@ Future>> > MesosContainerizerProcess::prepare( > } > > if (provisionInfo.isSome()) { > -containerConfig.set_rootfs(provisionInfo.get().rootfs); > +containerConfig.set_rootfs(provisionInfo->rootfs); > + > +if (provisionInfo->dockerManifest.isSome()) { > + ContainerConfig::Docker* docker = containerConfig.mutable_docker(); > + > docker->mutable_manifest()->CopyFrom(provisionInfo->dockerManifest.get()); > +} > } > > // We prepare the isolators sequentially according to their ordering > > http://git-wip-us.apache.org/repos/asf/mesos/blob/0b0a3dc5/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > -- > diff --git a/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > b/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > index f5f9678..5189a6d 100644 > --- a/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > +++ b/src/slave/containerizer/mesos/isolators/docker/runtime.cpp > @@ -16,6 +16,10 @@ > > #include > > +#include > + > +#include > + > #include "slave/flags.hpp" > > #include "slave/containerizer/mesos/isolators/docker/runtime.hpp" > @@ -48,7 +52,10 @@ > DockerRuntimeIsolatorProcess::~DockerRuntimeIsolatorProcess() {} > > Try DockerRuntimeIsolatorProcess::create(const Flags& flags) > { > - return nullptr; > + process::Owned process( > + new DockerRuntimeIsolatorProcess(flags)); > + > + return new MesosIsolator(process); > } > > > @@ -64,7 +71,26 @@ Future> > DockerRuntimeIsolatorProcess::prepare( > const ContainerID& containerId, > const ContainerConfig& containerConfig) > { > - return None(); > + const ExecutorInfo& executorInfo = containerConfig.executor_info(); > + > + if (!executorInfo.has_container()) { > +return None(); > + } > + > + if (executorInfo.container().type() != ContainerInfo::MESOS) { > +return Failure("Can only prepare docker runtime for a MESOS contaienr"); s/contaienr/container/ > + } > + > + if (!containerConfig.has_docker()) { > +// No docker image default config available. > +return None(); > + } > + > + // Contains docker image default environment variables, merged > + // command, and working directory. > + ContainerLaunchInfo launchInfo; > + > + return launchInfo; > } > > >