17 #ifndef __MESOS_CONTAINERIZER_HPP__
18 #define __MESOS_CONTAINERIZER_HPP__
58 #define LOG_BASED_ON_CLASS(containerClass) \
59 LOG_IF(INFO, (containerClass != ContainerClass::DEBUG) || VLOG_IS_ON(1))
62 class MesosContainerizerProcess;
89 const ContainerID& containerId,
90 const mesos::slave::ContainerConfig& containerConfig,
91 const std::map<std::string, std::string>&
environment,
95 const ContainerID& containerId);
98 const ContainerID& containerId,
102 const ContainerID& containerId);
105 const ContainerID& containerId);
108 const ContainerID& containerId);
111 const ContainerID& containerId);
114 const ContainerID& containerId,
122 const std::vector<Image>& excludedImages);
146 ioSwitchboard(_ioSwitchboard),
148 provisioner(_provisioner),
149 isolators(_isolators) {}
157 const ContainerID& containerId,
158 const mesos::slave::ContainerConfig& containerConfig,
159 const std::map<std::string, std::string>&
environment,
163 const ContainerID& containerId);
166 const ContainerID& containerId,
170 const ContainerID& containerId);
173 const ContainerID& containerId);
176 const ContainerID& containerId);
179 const ContainerID& containerId,
183 const ContainerID& containerId,
187 const ContainerID& containerId,
195 const std::vector<Image>& excludedImages);
208 friend std::ostream&
operator<<(std::ostream& stream,
const State& state);
211 const std::list<mesos::slave::ContainerState>& recoverable,
215 const std::list<mesos::slave::ContainerState>& recoverable,
219 const std::list<mesos::slave::ContainerState>& recoverable,
223 const std::list<mesos::slave::ContainerState>& recovered,
227 const ContainerID& containerId,
231 const ContainerID& containerId);
234 const ContainerID& containerId,
236 const std::map<std::string, std::string>&
environment,
240 const ContainerID& containerId,
245 const ContainerID& containerId,
247 const State& previousState,
252 const ContainerID& containerId,
258 const ContainerID& containerId,
264 const ContainerID& containerId,
270 const ContainerID& containerId,
276 const ContainerID& containerId,
283 const ContainerID& containerId,
288 const ContainerID& containerId,
293 void reaped(
const ContainerID& containerId);
298 const ContainerID& containerId);
302 IOSwitchboard* ioSwitchboard;
305 const std::vector<process::Owned<mesos::slave::Isolator>> isolators;
309 Container() : sequence(
"mesos-container-status-updates") {}
367 mesos::slave::ContainerClass containerClass();
394 void transition(
const ContainerID& containerId,
const State& state);
397 bool isSupportedByIsolator(
398 const ContainerID& containerId,
399 bool isolatorSupportsNesting,
400 bool isolatorSupportsStandalone);
413 std::ostream& stream,
414 const MesosContainerizerProcess::State& state);
420 #endif // __MESOS_CONTAINERIZER_HPP__
virtual process::Future< Containerizer::LaunchResult > launch(const ContainerID &containerId, const mesos::slave::ContainerConfig &containerConfig, const std::map< std::string, std::string > &environment, const Option< std::string > &pidCheckpointPath)
std::string generate(const std::string &prefix="")
Returns 'prefix(N)' where N represents the number of instances where the same prefix (wrt...
Definition: option.hpp:28
virtual process::Future< process::http::Connection > attach(const ContainerID &containerId)
MesosContainerizerProcess(const Flags &_flags, Fetcher *_fetcher, IOSwitchboard *_ioSwitchboard, const process::Owned< Launcher > &_launcher, const process::Shared< Provisioner > &_provisioner, const std::vector< process::Owned< mesos::slave::Isolator >> &_isolators)
Definition: containerizer.hpp:136
virtual process::Future< bool > kill(const ContainerID &containerId, int signal)
virtual process::Future< ResourceStatistics > usage(const ContainerID &containerId)
ProcessBase(const std::string &id="")
virtual ~MesosContainerizerProcess()
Definition: containerizer.hpp:151
std::ostream & operator<<(std::ostream &stream, const MesosContainerizerProcess::State &state)
Definition: fetcher.hpp:49
virtual process::Future< Nothing > pruneImages(const std::vector< Image > &excludedImages)
virtual process::Future< Option< mesos::slave::ContainerTermination > > wait(const ContainerID &containerId)
virtual process::Future< hashset< ContainerID > > containers()
Definition: resources.hpp:79
virtual process::Future< Containerizer::LaunchResult > exec(const ContainerID &containerId, int_fd pipeWrite)
Definition: counter.hpp:26
Definition: sequence.hpp:33
virtual process::Future< hashset< ContainerID > > containers()
Definition: hashmap.hpp:38
Environment * environment
DWORD pid_t
Definition: windows.hpp:187
virtual process::Future< Nothing > pruneImages(const std::vector< Image > &excludedImages)
Definition: containerizer.hpp:57
virtual process::Future< Option< mesos::slave::ContainerTermination > > wait(const ContainerID &containerId)
virtual process::Future< Nothing > update(const ContainerID &containerId, const Resources &resources)
virtual process::Future< Containerizer::LaunchResult > launch(const ContainerID &containerId, const mesos::slave::ContainerConfig &containerConfig, const std::map< std::string, std::string > &environment, const Option< std::string > &pidCheckpointPath)
virtual process::Future< ResourceStatistics > usage(const ContainerID &containerId)
virtual process::Future< Nothing > recover(const Option< state::SlaveState > &state)
static Try< MesosContainerizer * > create(const Flags &flags, bool local, Fetcher *fetcher, SecretResolver *secretResolver=nullptr, const Option< NvidiaComponents > &nvidia=None())
virtual ~MesosContainerizer()
Definition: switchboard.hpp:53
virtual process::Future< Nothing > update(const ContainerID &containerId, const Resources &resources)
virtual process::Future< bool > destroy(const ContainerID &containerId)
Try< std::vector< Entry > > list(const std::string &hierarchy, const std::string &cgroup)
virtual process::Future< bool > kill(const ContainerID &containerId, int signal)
Definition: containerizer.hpp:132
Result< Process > process(pid_t pid)
Definition: freebsd.hpp:30
#define flags
Definition: decoder.hpp:18
virtual process::Future< ContainerStatus > status(const ContainerID &containerId)
std::set< pid_t > children(pid_t, const std::list< Process > &, bool)
Definition: os.hpp:215
static Try< Resources > resources(const Flags &flags)
virtual process::Future< Nothing > recover(const Option< state::SlaveState > &state)
Definition: containerizer.hpp:65
Definition: resolver.hpp:34
virtual process::Future< process::http::Connection > attach(const ContainerID &containerId)
int int_fd
Definition: int_fd.hpp:35
Definition: process.hpp:493
virtual process::Future< ContainerStatus > status(const ContainerID &containerId)
friend std::ostream & operator<<(std::ostream &stream, const State &state)
virtual process::Future< bool > destroy(const ContainerID &containerId, const Option< mesos::slave::ContainerTermination > &termination)