blob: 45140773396e186729221d7f35549b4bede66348 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DockerManager (Storm 2.4.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DockerManager (Storm 2.4.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DockerManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/storm/container/docker/DockerInspectCommand.html" title="class in org.apache.storm.container.docker"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/storm/container/docker/DockerPsCommand.html" title="class in org.apache.storm.container.docker"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/storm/container/docker/DockerManager.html" target="_top">Frames</a></li>
<li><a href="DockerManager.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.classes.inherited.from.class.org.apache.storm.container.oci.OciContainerManager">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.storm.container.oci.OciContainerManager">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.storm.container.docker</div>
<h2 title="Class DockerManager" class="title">Class DockerManager</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html" title="class in org.apache.storm.container.oci">org.apache.storm.container.oci.OciContainerManager</a></li>
<li>
<ul class="inheritance">
<li>org.apache.storm.container.docker.DockerManager</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html" title="interface in org.apache.storm.container">ResourceIsolationInterface</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">DockerManager</span>
extends <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html" title="class in org.apache.storm.container.oci">OciContainerManager</a></pre>
<div class="block"><p>For security, we can launch worker processes inside the docker container. This class manages the interaction with docker containers including launching, stopping, profiling and etc.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.storm.container.oci.OciContainerManager">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.storm.container.oci.<a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html" title="class in org.apache.storm.container.oci">OciContainerManager</a></h3>
<code><a href="../../../../../org/apache/storm/container/oci/OciContainerManager.CmdType.html" title="enum in org.apache.storm.container.oci">OciContainerManager.CmdType</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.storm.container.oci.OciContainerManager">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.storm.container.oci.<a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html" title="class in org.apache.storm.container.oci">OciContainerManager</a></h3>
<code><a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#cgroupParent">cgroupParent</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#cgroupRootPath">cgroupRootPath</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#conf">conf</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#memoryCgroupRootPath">memoryCgroupRootPath</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#memoryCoreAtRoot">memoryCoreAtRoot</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#nscdPath">nscdPath</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#readonlyBindmounts">readonlyBindmounts</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#readwriteBindmounts">readwriteBindmounts</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#seccompJsonFile">seccompJsonFile</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#stormHome">stormHome</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#TMP_DIR">TMP_DIR</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#validatedNumaMap">validatedNumaMap</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#workerToCores">workerToCores</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#workerToCpu">workerToCpu</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#workerToMemoryMb">workerToMemoryMb</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#workerToMemoryZone">workerToMemoryZone</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#DockerManager--">DockerManager</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#areAllProcessesDead-java.lang.String-java.lang.String-">areAllProcessesDead</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId)</code>
<div class="block">Currently it only checks if the container is alive.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#cleanup-java.lang.String-java.lang.String-int-">cleanup</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId,
int&nbsp;port)</code>
<div class="block">This function will be called when the worker needs to shutdown.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#forceKill-java.lang.String-java.lang.String-">forceKill</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId)</code>
<div class="block">Kill the given worker forcefully.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#getMemoryUsage-java.lang.String-java.lang.String-int-">getMemoryUsage</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId,
int&nbsp;port)</code>
<div class="block">Get the current memory usage of the a given worker.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#isResourceManaged--">isResourceManaged</a></span>()</code>
<div class="block">Return true if resources are being managed.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#kill-java.lang.String-java.lang.String-">kill</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId)</code>
<div class="block">Kill the given worker.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#launchWorkerProcess-java.lang.String-java.lang.String-java.util.Map-int-java.lang.String-java.util.List-java.util.Map-java.lang.String-org.apache.storm.daemon.supervisor.ExitCodeCallback-java.io.File-">launchWorkerProcess</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;topologyId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;topoConf,
int&nbsp;port,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;command,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;env,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logPrefix,
<a href="../../../../../org/apache/storm/daemon/supervisor/ExitCodeCallback.html" title="interface in org.apache.storm.daemon.supervisor">ExitCodeCallback</a>&nbsp;processExitCallback,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;targetDir)</code>
<div class="block">After reserving resources for the worker (i.e.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#prepare-java.util.Map-">prepare</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;conf)</code>
<div class="block">Called when starting up.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/container/docker/DockerManager.html#runProfilingCommand-java.lang.String-java.lang.String-java.util.List-java.util.Map-java.lang.String-java.io.File-">runProfilingCommand</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;command,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;env,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logPrefix,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;targetDir)</code>
<div class="block">Run profiling command in the container.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.storm.container.oci.OciContainerManager">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.storm.container.oci.<a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html" title="class in org.apache.storm.container.oci">OciContainerManager</a></h3>
<code><a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#commandFilePath-java.lang.String-java.lang.String-">commandFilePath</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#getImageName-java.util.Map-">getImageName</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#getSystemFreeMemoryMb--">getSystemFreeMemoryMb</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#reserveResourcesForWorker-java.lang.String-java.lang.Integer-java.lang.Integer-java.lang.String-">reserveResourcesForWorker</a>, <a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#writeToCommandFile-java.lang.String-java.lang.String-java.lang.String-">writeToCommandFile</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DockerManager--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DockerManager</h4>
<pre>public&nbsp;DockerManager()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="prepare-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepare</h4>
<pre>public&nbsp;void&nbsp;prepare(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;conf)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#prepare-java.util.Map-">ResourceIsolationInterface</a></code></span></div>
<div class="block"><p>Called when starting up.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#prepare-java.util.Map-">prepare</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html" title="interface in org.apache.storm.container">ResourceIsolationInterface</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#prepare-java.util.Map-">prepare</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html" title="class in org.apache.storm.container.oci">OciContainerManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - the cluster config</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on any error.</dd>
</dl>
</li>
</ul>
<a name="launchWorkerProcess-java.lang.String-java.lang.String-java.util.Map-int-java.lang.String-java.util.List-java.util.Map-java.lang.String-org.apache.storm.daemon.supervisor.ExitCodeCallback-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchWorkerProcess</h4>
<pre>public&nbsp;void&nbsp;launchWorkerProcess(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;topologyId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;topoConf,
int&nbsp;port,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;command,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;env,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logPrefix,
<a href="../../../../../org/apache/storm/daemon/supervisor/ExitCodeCallback.html" title="interface in org.apache.storm.daemon.supervisor">ExitCodeCallback</a>&nbsp;processExitCallback,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;targetDir)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#launchWorkerProcess-java.lang.String-java.lang.String-java.util.Map-int-java.lang.String-java.util.List-java.util.Map-java.lang.String-org.apache.storm.daemon.supervisor.ExitCodeCallback-java.io.File-">ResourceIsolationInterface</a></code></span></div>
<div class="block"><p>After reserving resources for the worker (i.e. calling reserveResourcesForWorker), this function can be used to launch worker process.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user who runs the command as</dd>
<dd><code>topologyId</code> - the Id of the topology</dd>
<dd><code>topoConf</code> - the topology configuration</dd>
<dd><code>port</code> - the port where the worker is on</dd>
<dd><code>workerId</code> - the Id of the worker</dd>
<dd><code>command</code> - the command to run</dd>
<dd><code>env</code> - the environment to run the command</dd>
<dd><code>logPrefix</code> - the prefix to include in the logs</dd>
<dd><code>processExitCallback</code> - a callback for when the process exits</dd>
<dd><code>targetDir</code> - the working directory to run the command in</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on I/O exception</dd>
</dl>
</li>
</ul>
<a name="getMemoryUsage-java.lang.String-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMemoryUsage</h4>
<pre>public&nbsp;long&nbsp;getMemoryUsage(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId,
int&nbsp;port)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#getMemoryUsage-java.lang.String-java.lang.String-int-">ResourceIsolationInterface</a></code></span></div>
<div class="block"><p>Get the current memory usage of the a given worker.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user that the worker is running as</dd>
<dd><code>workerId</code> - the id of the worker</dd>
<dd><code>port</code> - the port of the worker</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the amount of memory the worker is using in bytes or -1 if not supported</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on I/O exception</dd>
</dl>
</li>
</ul>
<a name="kill-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>kill</h4>
<pre>public&nbsp;void&nbsp;kill(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#kill-java.lang.String-java.lang.String-">ResourceIsolationInterface</a></code></span></div>
<div class="block"><p>Kill the given worker.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user that the worker is running as</dd>
<dd><code>workerId</code> - the id of the worker to kill</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on I/O exception</dd>
</dl>
</li>
</ul>
<a name="forceKill-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forceKill</h4>
<pre>public&nbsp;void&nbsp;forceKill(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#forceKill-java.lang.String-java.lang.String-">ResourceIsolationInterface</a></code></span></div>
<div class="block"><p>Kill the given worker forcefully.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user that the worker is running as</dd>
<dd><code>workerId</code> - the id of the worker to kill</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on I/O exception</dd>
</dl>
</li>
</ul>
<a name="areAllProcessesDead-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areAllProcessesDead</h4>
<pre>public&nbsp;boolean&nbsp;areAllProcessesDead(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><p>Currently it only checks if the container is alive. If the worker process inside the container dies, the container will exit. So we only need to check if the container is running to know if the worker process is still alive.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user of the processes</dd>
<dd><code>workerId</code> - the id of the worker to kill</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if all processes are dead</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on I/O exception</dd>
</dl>
</li>
</ul>
<a name="runProfilingCommand-java.lang.String-java.lang.String-java.util.List-java.util.Map-java.lang.String-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runProfilingCommand</h4>
<pre>public&nbsp;boolean&nbsp;runProfilingCommand(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;command,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;env,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logPrefix,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;targetDir)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block"><p>Run profiling command in the container.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user that the worker is running as</dd>
<dd><code>workerId</code> - the id of the worker</dd>
<dd><code>command</code> - the command to run. The profiler to be used is configured in worker-launcher.cfg.</dd>
<dd><code>env</code> - the environment to run the command</dd>
<dd><code>logPrefix</code> - the prefix to include in the logs</dd>
<dd><code>targetDir</code> - the working directory to run the command in</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the command succeeds, false otherwise.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on I/O exception</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code> - if interrupted</dd>
</dl>
</li>
</ul>
<a name="cleanup-java.lang.String-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanup</h4>
<pre>public&nbsp;void&nbsp;cleanup(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;workerId,
int&nbsp;port)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#cleanup-java.lang.String-java.lang.String-int-">ResourceIsolationInterface</a></code></span></div>
<div class="block"><p>This function will be called when the worker needs to shutdown. This function should include logic to clean up after a worker is shutdown.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#cleanup-java.lang.String-java.lang.String-int-">cleanup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html" title="interface in org.apache.storm.container">ResourceIsolationInterface</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html#cleanup-java.lang.String-java.lang.String-int-">cleanup</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/container/oci/OciContainerManager.html" title="class in org.apache.storm.container.oci">OciContainerManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user of the worker</dd>
<dd><code>workerId</code> - worker id to shutdown and clean up after</dd>
<dd><code>port</code> - the port of the worker</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="isResourceManaged--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isResourceManaged</h4>
<pre>public&nbsp;boolean&nbsp;isResourceManaged()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/storm/container/ResourceIsolationInterface.html#isResourceManaged--">ResourceIsolationInterface</a></code></span></div>
<div class="block"><p>Return true if resources are being managed. The <a href="../../../../../org/apache/storm/container/DefaultResourceIsolationManager.html" title="class in org.apache.storm.container"><code>DefaultResourceIsolationManager</code></a> will have it return false since it doesn&rsquo;t really manage resources.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if resources are being managed.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DockerManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><script type="text/javascript" src="../../../../../highlight.pack.js"></script>
<script type="text/javascript"><!--
hljs.initHighlightingOnLoad();
//--></script></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/storm/container/docker/DockerInspectCommand.html" title="class in org.apache.storm.container.docker"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/storm/container/docker/DockerPsCommand.html" title="class in org.apache.storm.container.docker"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/storm/container/docker/DockerManager.html" target="_top">Frames</a></li>
<li><a href="DockerManager.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.classes.inherited.from.class.org.apache.storm.container.oci.OciContainerManager">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.storm.container.oci.OciContainerManager">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>