mirror of https://github.com/docker/docs.git
238 lines
11 KiB
HTML
238 lines
11 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<title>API Documentation</title>
|
|
|
|
<link href="../stylesheets/screen.css" rel="stylesheet" type="text/css" media="screen" />
|
|
<link href="../stylesheets/print.css" rel="stylesheet" type="text/css" media="print" />
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
|
<script src="../javascripts/all_nosearch.js" type="text/javascript"></script>
|
|
|
|
</head>
|
|
|
|
<body class="includes includes_dockercloud-events">
|
|
<a href="#" id="nav-button">
|
|
<span>
|
|
NAV
|
|
<img src="../images/navbar.png" />
|
|
</span>
|
|
</a>
|
|
<div class="tocify-wrapper">
|
|
<img src="../images/logo.png" />
|
|
<div id="toc">
|
|
</div>
|
|
</div>
|
|
<div class="page-wrapper">
|
|
<div class="dark-box"></div>
|
|
<div class="content">
|
|
<h1 id="docker-cloud-events">Docker Cloud Events</h1>
|
|
|
|
<h2 id="docker-cloud-event">Docker Cloud Event</h2>
|
|
|
|
<blockquote>
|
|
<p>Example</p>
|
|
</blockquote>
|
|
<pre class="highlight json"><code><span class="p">{</span><span class="w">
|
|
</span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"action"</span><span class="p">,</span><span class="w">
|
|
</span><span class="nt">"action"</span><span class="p">:</span><span class="w"> </span><span class="s2">"update"</span><span class="p">,</span><span class="w">
|
|
</span><span class="nt">"parents"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
|
|
</span><span class="s2">"/api/app/v1/container/0b0e3538-88df-4f07-9aed-3a3cc4175076/"</span><span class="w">
|
|
</span><span class="p">],</span><span class="w">
|
|
</span><span class="nt">"resource_uri"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/api/app/v1/action/49f0efe8-a704-4a10-b02f-f96344fabadd/"</span><span class="p">,</span><span class="w">
|
|
</span><span class="nt">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Success"</span><span class="p">,</span><span class="w">
|
|
</span><span class="nt">"uuid"</span><span class="p">:</span><span class="w"> </span><span class="s2">"093ba3bb-08dd-48f0-8f12-4d3b85ef85b3"</span><span class="p">,</span><span class="w">
|
|
</span><span class="nt">"datetime"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2016-02-01T16:47:28Z"</span><span class="w">
|
|
</span><span class="p">}</span><span class="w">
|
|
</span></code></pre>
|
|
|
|
<p>Docker Cloud events are generated every time any of the following objects is created or changes state:</p>
|
|
|
|
<ul>
|
|
<li>Stack</li>
|
|
<li>Service</li>
|
|
<li>Container</li>
|
|
<li>Node Cluster</li>
|
|
<li>Node</li>
|
|
<li>Action</li>
|
|
</ul>
|
|
|
|
<h3 id="attributes">Attributes</h3>
|
|
|
|
<table><thead>
|
|
<tr>
|
|
<th style="text-align: left">Attribute</th>
|
|
<th style="text-align: left">Description</th>
|
|
</tr>
|
|
</thead><tbody>
|
|
<tr>
|
|
<td style="text-align: left">type</td>
|
|
<td style="text-align: left">Type of object that was created or updated. For possible values, check the <a href="#event-types">events types</a> table below.</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">action</td>
|
|
<td style="text-align: left">Type of action that was executed on the object. Posible values: <code class="prettyprint">create</code>, <code class="prettyprint">update</code> or <code class="prettyprint">delete</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">parents</td>
|
|
<td style="text-align: left">List of resource URIs (REST API) of the parents of the object, according to the “Parent-child hierarchy” table below</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">resource_uri</td>
|
|
<td style="text-align: left">Resource URI (REST API) of the object that was created or updated. You can do a <code class="prettyprint">GET</code> operation on this URL to fetch its details</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">state</td>
|
|
<td style="text-align: left">The current state of the object</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">uuid</td>
|
|
<td style="text-align: left">Unique identifier for the event</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">datetime</td>
|
|
<td style="text-align: left">Date and time of the event in ISO 8601 format</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<h3 id="event-types">Event types</h3>
|
|
|
|
<table><thead>
|
|
<tr>
|
|
<th style="text-align: left">Type</th>
|
|
<th style="text-align: left">Description</th>
|
|
</tr>
|
|
</thead><tbody>
|
|
<tr>
|
|
<td style="text-align: left">stack</td>
|
|
<td style="text-align: left">Whenever a <code class="prettyprint">Stack</code> is created or updated</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">service</td>
|
|
<td style="text-align: left">Whenever a <code class="prettyprint">Service</code> is created or updated</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">container</td>
|
|
<td style="text-align: left">Whenever a <code class="prettyprint">Container</code> is created or updated</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">nodecluster</td>
|
|
<td style="text-align: left">Whenever a <code class="prettyprint">Node Cluster</code> is created or updated</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">node</td>
|
|
<td style="text-align: left">Whenever a <code class="prettyprint">Node</code> is created or updated</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">action</td>
|
|
<td style="text-align: left">Whenever a <code class="prettyprint">Action</code> is created or updated</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">error</td>
|
|
<td style="text-align: left">Sent when an error occurs on the websocket connection or as part of the authentication process</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<h3 id="parent-child-hierarchy">Parent-child hierarchy</h3>
|
|
|
|
<table><thead>
|
|
<tr>
|
|
<th style="text-align: left">Object type</th>
|
|
<th style="text-align: left">Parent types</th>
|
|
</tr>
|
|
</thead><tbody>
|
|
<tr>
|
|
<td style="text-align: left">Stack</td>
|
|
<td style="text-align: left">(None)</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">Service</td>
|
|
<td style="text-align: left">Stack</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">Container</td>
|
|
<td style="text-align: left">Service, Stack, Node, Node Cluster</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">Node Cluster</td>
|
|
<td style="text-align: left">(None)</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">Node</td>
|
|
<td style="text-align: left">Node Cluster</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left">Action</td>
|
|
<td style="text-align: left">(object to which the action applies to)</td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<h2 id="listen-to-new-docker-cloud-events">Listen to new Docker Cloud Events</h2>
|
|
<pre class="highlight python"><code><span class="kn">import</span> <span class="nn">dockercloud</span>
|
|
|
|
<span class="k">def</span> <span class="nf">process_event</span><span class="p">(</span><span class="n">event</span><span class="p">):</span>
|
|
<span class="k">print</span> <span class="n">event</span>
|
|
|
|
<span class="n">events</span> <span class="o">=</span> <span class="n">dockercloud</span><span class="o">.</span><span class="n">Events</span><span class="p">()</span>
|
|
<span class="n">events</span><span class="o">.</span><span class="n">on_message</span><span class="p">(</span><span class="n">process_event</span><span class="p">)</span>
|
|
<span class="n">events</span><span class="o">.</span><span class="n">run_forever</span><span class="p">()</span>
|
|
</code></pre>
|
|
<pre class="highlight go"><code><span class="k">import</span><span class="x"> </span><span class="s">"github.com/docker/go-dockercloud/dockercloud"</span><span class="x">
|
|
|
|
</span><span class="n">c</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="nb">make</span><span class="p">(</span><span class="k">chan</span><span class="x"> </span><span class="n">dockercloud</span><span class="o">.</span><span class="n">Event</span><span class="p">)</span><span class="x">
|
|
</span><span class="n">e</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="nb">make</span><span class="p">(</span><span class="k">chan</span><span class="x"> </span><span class="kt">error</span><span class="p">)</span><span class="x">
|
|
|
|
</span><span class="k">go</span><span class="x"> </span><span class="n">dockercloud</span><span class="o">.</span><span class="n">Events</span><span class="p">(</span><span class="n">c</span><span class="p">,</span><span class="x"> </span><span class="n">e</span><span class="p">)</span><span class="x">
|
|
|
|
</span><span class="k">for</span><span class="x"> </span><span class="p">{</span><span class="x">
|
|
</span><span class="k">select</span><span class="x"> </span><span class="p">{</span><span class="x">
|
|
</span><span class="k">case</span><span class="x"> </span><span class="n">event</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="o"><-</span><span class="n">c</span><span class="o">:</span><span class="x">
|
|
</span><span class="n">log</span><span class="o">.</span><span class="n">Println</span><span class="p">(</span><span class="n">event</span><span class="p">)</span><span class="x">
|
|
</span><span class="k">case</span><span class="x"> </span><span class="n">err</span><span class="x"> </span><span class="o">:=</span><span class="x"> </span><span class="o"><-</span><span class="n">e</span><span class="o">:</span><span class="x">
|
|
</span><span class="n">log</span><span class="o">.</span><span class="n">Println</span><span class="p">(</span><span class="n">err</span><span class="p">)</span><span class="x">
|
|
</span><span class="p">}</span><span class="x">
|
|
</span><span class="p">}</span><span class="x">
|
|
</span></code></pre>
|
|
<pre class="highlight http"><code><span class="nf">GET</span> <span class="nn">/api/audit/v1/events/</span> <span class="k">HTTP</span><span class="o">/</span><span class="m">1.1</span>
|
|
<span class="na">Host</span><span class="p">:</span> <span class="s">ws.cloud.docker.com</span>
|
|
<span class="na">Authorization</span><span class="p">:</span> <span class="s">Basic dXNlcm5hbWU6YXBpa2V5</span>
|
|
<span class="na">Connection</span><span class="p">:</span> <span class="s">Upgrade</span>
|
|
<span class="na">Upgrade</span><span class="p">:</span> <span class="s">websocket</span>
|
|
</code></pre>
|
|
<pre class="highlight shell"><code>docker-cloud event
|
|
</code></pre>
|
|
|
|
<p>Listens for new Docker Cloud Events</p>
|
|
|
|
<h3 id="endpoint-type">Endpoint Type</h3>
|
|
|
|
<p>Available in Docker Cloud’s <strong>STREAM API</strong></p>
|
|
|
|
<h3 id="http-request">HTTP Request</h3>
|
|
|
|
<p><code class="prettyprint">GET /api/audit/v1/events/</code></p>
|
|
|
|
</div>
|
|
<div class="dark-box">
|
|
</div>
|
|
</div>
|
|
<div class="google-analytics">
|
|
<!-- Google Tag Manager -->
|
|
<noscript>
|
|
<iframe src="//www.googletagmanager.com/ns.html?id=GTM-WLGFZV"
|
|
height="0" width="0" style="display:none;visibility:hidden"></iframe>
|
|
</noscript>
|
|
<script>
|
|
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
})(window,document,'script','dataLayer','GTM-WLGFZV');
|
|
</script>
|
|
<!-- End Google Tag Manager -->
|
|
</div>
|
|
</body>
|
|
</html>
|