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 2018/05/17 23:48:26 UTC
mesos git commit: Added ContainerID to container logger prepare
interface.
Repository: mesos
Updated Branches:
refs/heads/master 81d4b20d7 -> a981067d2
Added ContainerID to container logger prepare interface.
This is to allow the logger to tag the output with that information.
Review: https://reviews.apache.org/r/67202
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/a981067d
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/a981067d
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/a981067d
Branch: refs/heads/master
Commit: a981067d2dd4a1ce6be68d3fd5a7115ce47b3a24
Parents: 81d4b20
Author: Jie Yu <yu...@gmail.com>
Authored: Thu May 17 15:27:26 2018 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Thu May 17 16:48:20 2018 -0700
----------------------------------------------------------------------
CHANGELOG | 2 +-
docs/upgrades.md | 2 +-
include/mesos/slave/container_logger.hpp | 2 ++
src/slave/container_loggers/lib_logrotate.cpp | 6 +++++-
src/slave/container_loggers/lib_logrotate.hpp | 1 +
src/slave/container_loggers/sandbox.cpp | 6 +++++-
src/slave/container_loggers/sandbox.hpp | 1 +
src/slave/containerizer/docker.cpp | 4 ++--
src/slave/containerizer/mesos/io/switchboard.cpp | 2 +-
9 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index cddc055..349d9a0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,7 +4,7 @@ This release contains the following new features:
Additional API Changes:
* Container logger module interface has been changed. The `prepare()` method
- now takes `ContainerConfig` instead.
+ now takes `ContainerID` and `ContainerConfig` instead.
Release Notes - Mesos - Version 1.6.1 (WIP)
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/docs/upgrades.md
----------------------------------------------------------------------
diff --git a/docs/upgrades.md b/docs/upgrades.md
index 5813ed7..fb6b865 100644
--- a/docs/upgrades.md
+++ b/docs/upgrades.md
@@ -432,7 +432,7 @@ We categorize the changes as follows:
<a name="1-7-x-container-logger"></a>
-* `ContainerLogger` module interface has been changed. The `prepare()` method now takes `ContainerConfig` instead.
+* `ContainerLogger` module interface has been changed. The `prepare()` method now takes `ContainerID` and `ContainerConfig` instead.
## Upgrading from 1.5.x to 1.6.x ##
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/include/mesos/slave/container_logger.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/slave/container_logger.hpp b/include/mesos/slave/container_logger.hpp
index 5fe2369..4e6d15a 100644
--- a/include/mesos/slave/container_logger.hpp
+++ b/include/mesos/slave/container_logger.hpp
@@ -89,6 +89,7 @@ public:
* be capable of recovering managed containers during the agent recovery
* process. See `ContainerLogger::recover`.
*
+ * @param containerId The ID of the container.
* @param containerConfig The configurations of the container, including the
* ExecutorInfo (if applied), as well as the absolute path to the sandbox
* directory of the container. The sandbox path is provided in case
@@ -97,6 +98,7 @@ public:
* the sandbox are exposed via the `/files` endpoint.
*/
virtual process::Future<ContainerIO> prepare(
+ const ContainerID& containerId,
const ContainerConfig& containerConfig) = 0;
};
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/src/slave/container_loggers/lib_logrotate.cpp
----------------------------------------------------------------------
diff --git a/src/slave/container_loggers/lib_logrotate.cpp b/src/slave/container_loggers/lib_logrotate.cpp
index f0a59d0..fa71e07 100644
--- a/src/slave/container_loggers/lib_logrotate.cpp
+++ b/src/slave/container_loggers/lib_logrotate.cpp
@@ -75,7 +75,9 @@ public:
// Spawns two subprocesses that read from their stdin and write to
// "stdout" and "stderr" files in the sandbox. The subprocesses will rotate
// the files according to the configured maximum size and number of files.
- Future<ContainerIO> prepare(const ContainerConfig& containerConfig)
+ Future<ContainerIO> prepare(
+ const ContainerID& containerId,
+ const ContainerConfig& containerConfig)
{
// Prepare the environment for the container logger subprocess.
// We inherit agent environment variables except for those
@@ -290,11 +292,13 @@ Try<Nothing> LogrotateContainerLogger::initialize()
Future<ContainerIO> LogrotateContainerLogger::prepare(
+ const ContainerID& containerId,
const ContainerConfig& containerConfig)
{
return dispatch(
process.get(),
&LogrotateContainerLoggerProcess::prepare,
+ containerId,
containerConfig);
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/src/slave/container_loggers/lib_logrotate.hpp
----------------------------------------------------------------------
diff --git a/src/slave/container_loggers/lib_logrotate.hpp b/src/slave/container_loggers/lib_logrotate.hpp
index 303511c..d0abaa4 100644
--- a/src/slave/container_loggers/lib_logrotate.hpp
+++ b/src/slave/container_loggers/lib_logrotate.hpp
@@ -198,6 +198,7 @@ public:
virtual Try<Nothing> initialize() override;
virtual process::Future<mesos::slave::ContainerIO> prepare(
+ const ContainerID& containerId,
const mesos::slave::ContainerConfig& containerConfig) override;
protected:
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/src/slave/container_loggers/sandbox.cpp
----------------------------------------------------------------------
diff --git a/src/slave/container_loggers/sandbox.cpp b/src/slave/container_loggers/sandbox.cpp
index ce4faec..21c61a3 100644
--- a/src/slave/container_loggers/sandbox.cpp
+++ b/src/slave/container_loggers/sandbox.cpp
@@ -62,7 +62,9 @@ public:
SandboxContainerLoggerProcess()
: ProcessBase(process::ID::generate("sandbox-logger")) {}
- Future<ContainerIO> prepare(const ContainerConfig& containerConfig)
+ Future<ContainerIO> prepare(
+ const ContainerID& containerId,
+ const ContainerConfig& containerConfig)
{
ContainerIO io;
@@ -98,11 +100,13 @@ Try<Nothing> SandboxContainerLogger::initialize()
Future<ContainerIO> SandboxContainerLogger::prepare(
+ const ContainerID& containerId,
const ContainerConfig& containerConfig)
{
return dispatch(
process.get(),
&SandboxContainerLoggerProcess::prepare,
+ containerId,
containerConfig);
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/src/slave/container_loggers/sandbox.hpp
----------------------------------------------------------------------
diff --git a/src/slave/container_loggers/sandbox.hpp b/src/slave/container_loggers/sandbox.hpp
index 39e0eeb..784b118 100644
--- a/src/slave/container_loggers/sandbox.hpp
+++ b/src/slave/container_loggers/sandbox.hpp
@@ -61,6 +61,7 @@ public:
// stderr to separate "stdout" and "stderr" files in the sandbox.
// The `path`, `argv`, and `environment` are not changed.
virtual process::Future<mesos::slave::ContainerIO> prepare(
+ const ContainerID& containerId,
const mesos::slave::ContainerConfig& containerConfig) override;
protected:
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp
index 725cdb5..fc03236 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -1383,7 +1383,7 @@ Future<Docker::Container> DockerContainerizerProcess::launchExecutorContainer(
Container* container = containers_.at(containerId);
container->state = Container::RUNNING;
- return logger->prepare(container->containerConfig)
+ return logger->prepare(container->id, container->containerConfig)
.then(defer(
self(),
[=](const ContainerIO& containerIO)
@@ -1543,7 +1543,7 @@ Future<pid_t> DockerContainerizerProcess::launchExecutorProcess(
return allocateGpus
.then(defer(self(), [=]() {
- return logger->prepare(container->containerConfig);
+ return logger->prepare(container->id, container->containerConfig);
}))
.then(defer(
self(),
http://git-wip-us.apache.org/repos/asf/mesos/blob/a981067d/src/slave/containerizer/mesos/io/switchboard.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/io/switchboard.cpp b/src/slave/containerizer/mesos/io/switchboard.cpp
index d0f98ad..6d99fb5 100644
--- a/src/slave/containerizer/mesos/io/switchboard.cpp
+++ b/src/slave/containerizer/mesos/io/switchboard.cpp
@@ -287,7 +287,7 @@ Future<Option<ContainerLaunchInfo>> IOSwitchboard::prepare(
// launched, the nested containers launched later might not have
// access to the root parent container's ExecutorInfo (i.e.,
// 'containerConfig.executor_info()' will be empty).
- return logger->prepare(containerConfig)
+ return logger->prepare(containerId, containerConfig)
.then(defer(
PID<IOSwitchboard>(this),
&IOSwitchboard::_prepare,