Commit afc4ff05 authored by Spiros Koulouzis's avatar Spiros Koulouzis

parse deployer json

parent c8cbab19
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<h1 class="page-header">Files and Libraries</h1> <h1 class="page-header">Files and Libraries</h1>
<h3 id="artifact_gwt_json_overlay">GWT JSON Overlay</h3> <h3 id="artifact_gwt_json_overlay">GWT JSON Overlay</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p> <p> <p> <p>
The <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> JSON Overlay library provides the JSON Overlays that The <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> JSON Overlay library provides the JSON Overlays that
can be used to access the Web service API for this application. can be used to access the Web service API for this application.
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
</tbody> </tbody>
</table> </table>
<h3 id="artifact_java_json_client_library">Java JSON Client Library</h3> <h3 id="artifact_java_json_client_library">Java JSON Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The Java client-side library is used to provide the set of Java objects that can be serialized The Java client-side library is used to provide the set of Java objects that can be serialized
to/from JSON using <a href="http://jackson.codehaus.org/">Jackson</a>. This is useful for accessing the to/from JSON using <a href="http://jackson.codehaus.org/">Jackson</a>. This is useful for accessing the
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-json-client.jar"> <tr class="clickable-row" data-href="drip-api-json-client.jar">
<td><span class="downloadfile-name">drip-api-json-client.jar</span></td> <td><span class="downloadfile-name">drip-api-json-client.jar</span></td>
<td><span class="downloadfile-size">16.81K</span></td> <td><span class="downloadfile-size">16.80K</span></td>
<td><span class="downloadfile-description">The binaries for the Java JSON client library.</span></td> <td><span class="downloadfile-description">The binaries for the Java JSON client library.</span></td>
</tr> </tr>
<tr class="clickable-row" data-href="drip-api-json-client-json-sources.jar"> <tr class="clickable-row" data-href="drip-api-json-client-json-sources.jar">
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
</tbody> </tbody>
</table> </table>
<h3 id="artifact_java_xml_client_library">Java XML Client Library</h3> <h3 id="artifact_java_xml_client_library">Java XML Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The Java client-side library is used to access the Web service API for this application using Java. The Java client-side library is used to access the Web service API for this application using Java.
</p> </p>
...@@ -149,13 +149,13 @@ ...@@ -149,13 +149,13 @@
</tr> </tr>
<tr class="clickable-row" data-href="drip-api-xml-client-xml-sources.jar"> <tr class="clickable-row" data-href="drip-api-xml-client-xml-sources.jar">
<td><span class="downloadfile-name">drip-api-xml-client-xml-sources.jar</span></td> <td><span class="downloadfile-name">drip-api-xml-client-xml-sources.jar</span></td>
<td><span class="downloadfile-size">22.39K</span></td> <td><span class="downloadfile-size">22.38K</span></td>
<td><span class="downloadfile-description">The sources for the Java XML client library.</span></td> <td><span class="downloadfile-description">The sources for the Java XML client library.</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_js_client_library">JavaScript Client Library</h3> <h3 id="artifact_js_client_library">JavaScript Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The JavaScript client-side library defines classes that can be (de)serialized to/from JSON. The JavaScript client-side library defines classes that can be (de)serialized to/from JSON.
This is useful for accessing the resources that are published by this application, but only This is useful for accessing the resources that are published by this application, but only
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
</tbody> </tbody>
</table> </table>
<h3 id="artifact_php_json_client_library">PHP JSON Client Library</h3> <h3 id="artifact_php_json_client_library">PHP JSON Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The PHP JSON client-side library defines the PHP classes that can be (de)serialized to/from JSON. The PHP JSON client-side library defines the PHP classes that can be (de)serialized to/from JSON.
This is useful for accessing the resources that are published by this application, but only This is useful for accessing the resources that are published by this application, but only
...@@ -213,13 +213,13 @@ ...@@ -213,13 +213,13 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-php.zip"> <tr class="clickable-row" data-href="drip-api-php.zip">
<td><span class="downloadfile-name">drip-api-php.zip</span></td> <td><span class="downloadfile-name">drip-api-php.zip</span></td>
<td><span class="downloadfile-size">5.82K</span></td> <td><span class="downloadfile-size">5.79K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td> <td><span class="downloadfile-description">&nbsp;</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_php_xml_client_library">PHP XML Client Library</h3> <h3 id="artifact_php_xml_client_library">PHP XML Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The PHP client-side library defines the PHP classes that can be (de)serialized to/from XML. The PHP client-side library defines the PHP classes that can be (de)serialized to/from XML.
This is useful for accessing the resources that are published by this application, but only This is useful for accessing the resources that are published by this application, but only
...@@ -245,13 +245,13 @@ ...@@ -245,13 +245,13 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-php.zip"> <tr class="clickable-row" data-href="drip-api-php.zip">
<td><span class="downloadfile-name">drip-api-php.zip</span></td> <td><span class="downloadfile-name">drip-api-php.zip</span></td>
<td><span class="downloadfile-size">8.99K</span></td> <td><span class="downloadfile-size">9.00K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td> <td><span class="downloadfile-description">&nbsp;</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_ruby_json_client_library">Ruby JSON Client Library</h3> <h3 id="artifact_ruby_json_client_library">Ruby JSON Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The Ruby JSON client-side library defines the Ruby classes that can be (de)serialized to/from JSON. The Ruby JSON client-side library defines the Ruby classes that can be (de)serialized to/from JSON.
This is useful for accessing the REST endpoints that are published by this application, but only This is useful for accessing the REST endpoints that are published by this application, but only
......
This diff is collapsed.
...@@ -90,7 +90,7 @@ class</p> ...@@ -90,7 +90,7 @@ class</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <span class="property-name">vmType</span> <td> <span class="property-name">cloudDeploymentDomain</span>
</td> </td>
<td> <span class="datatype-reference">string <td> <span class="datatype-reference">string
</span> </span>
...@@ -99,16 +99,16 @@ class</p> ...@@ -99,16 +99,16 @@ class</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <span class="property-name">end</span> <td> <span class="property-name">vmType</span>
</td> </td>
<td> <span class="datatype-reference">number <td> <span class="datatype-reference">string
</span> </span>
</td> </td>
<td> <span class="property-description"></span> <td> <span class="property-description"></span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <span class="property-name">start</span> <td> <span class="property-name">end</span>
</td> </td>
<td> <span class="datatype-reference">number <td> <span class="datatype-reference">number
</span> </span>
...@@ -126,9 +126,9 @@ class</p> ...@@ -126,9 +126,9 @@ class</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <span class="property-name">cloudDeploymentDomain</span> <td> <span class="property-name">start</span>
</td> </td>
<td> <span class="datatype-reference">string <td> <span class="datatype-reference">number
</span> </span>
</td> </td>
<td> <span class="property-description"></span> <td> <span class="property-description"></span>
...@@ -166,11 +166,11 @@ object is saved.</span></td> ...@@ -166,11 +166,11 @@ object is saved.</span></td>
<pre class="prettyprint language-js example">{ <pre class="prettyprint language-js example">{
&quot;host&quot; : &quot;147.228.242.58&quot;, &quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;vmType&quot; : &quot;...&quot;, &quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345, &quot;end&quot; : 12345,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345, &quot;delta&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;, &quot;start&quot; : 12345,
&quot;owner&quot; : &quot;user1&quot;, &quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011 &quot;timestamp&quot; : 1499793079011
......
...@@ -69,7 +69,7 @@ class</p> ...@@ -69,7 +69,7 @@ class</p>
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt>Subtypes</dt> <dt>Subtypes</dt>
<dd><a href="json_KeyPair.html">KeyPair</a>, <a href="json_AnsibleOutput.html">AnsibleOutput</a>, <a href="json_ScaleRequest.html">ScaleRequest</a>, <a href="json_CloudCredentials.html">CloudCredentials</a>, <a href="json_BenchmarkResult.html">BenchmarkResult</a>, <a href="json_DeployResponse.html">DeployResponse</a>, <a href="json_ProvisionRequest.html">ProvisionRequest</a>, <a href="json_Script.html">Script</a>, <a href="json_KeyValueHolder.html">KeyValueHolder</a>, <a href="json_DeployRequest.html">DeployRequest</a>, <a href="json_ProvisionResponse.html">ProvisionResponse</a></dd> <dd><a href="json_KeyPair.html">KeyPair</a>, <a href="json_ScaleRequest.html">ScaleRequest</a>, <a href="json_AnsibleOutput.html">AnsibleOutput</a>, <a href="json_CloudCredentials.html">CloudCredentials</a>, <a href="json_BenchmarkResult.html">BenchmarkResult</a>, <a href="json_DeployResponse.html">DeployResponse</a>, <a href="json_ProvisionRequest.html">ProvisionRequest</a>, <a href="json_Script.html">Script</a>, <a href="json_KeyValueHolder.html">KeyValueHolder</a>, <a href="json_DeployRequest.html">DeployRequest</a>, <a href="json_ProvisionResponse.html">ProvisionResponse</a></dd>
</dl> </dl>
<table class="table datatype-properties"> <table class="table datatype-properties">
......
...@@ -806,13 +806,13 @@ class]]> ...@@ -806,13 +806,13 @@ class]]>
<xs:sequence> <xs:sequence>
<xs:element name="host" type="xs:string" minOccurs="0"> <xs:element name="host" type="xs:string" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="vmType" type="xs:string" minOccurs="0"> <xs:element name="end" type="xs:dateTime" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="start" type="xs:dateTime" minOccurs="0"> <xs:element name="start" type="xs:dateTime" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="cloudDeploymentDomain" type="xs:string" minOccurs="0"> <xs:element name="cloudDeploymentDomain" type="xs:string" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="end" type="xs:dateTime" minOccurs="0"> <xs:element name="vmType" type="xs:string" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="delta" type="xs:dateTime" minOccurs="0"> <xs:element name="delta" type="xs:dateTime" minOccurs="0">
</xs:element> </xs:element>
......
...@@ -145,11 +145,11 @@ Content-Type: application/json ...@@ -145,11 +145,11 @@ Content-Type: application/json
<code class="prettyprint language-js"> <code class="prettyprint language-js">
[ { [ {
&quot;host&quot; : &quot;147.228.242.58&quot;, &quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;vmType&quot; : &quot;...&quot;, &quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345, &quot;end&quot; : 12345,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345, &quot;delta&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;, &quot;start&quot; : 12345,
&quot;owner&quot; : &quot;user1&quot;, &quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011 &quot;timestamp&quot; : 1499793079011
...@@ -515,11 +515,11 @@ Content-Type: application/json ...@@ -515,11 +515,11 @@ Content-Type: application/json
<code class="prettyprint language-js"> <code class="prettyprint language-js">
{ {
&quot;host&quot; : &quot;147.228.242.58&quot;, &quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;vmType&quot; : &quot;...&quot;, &quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345, &quot;end&quot; : 12345,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345, &quot;delta&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;, &quot;start&quot; : 12345,
&quot;owner&quot; : &quot;user1&quot;, &quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011 &quot;timestamp&quot; : 1499793079011
......
...@@ -232,10 +232,10 @@ the DAO saves the object based on the principal how made the call</span></td> ...@@ -232,10 +232,10 @@ the DAO saves the object based on the principal how made the call</span></td>
<pre class="prettyprint language-xml example">&lt;b-----&gt; <pre class="prettyprint language-xml example">&lt;b-----&gt;
&lt;host&gt;147.228.242.58&lt;/host&gt; &lt;host&gt;147.228.242.58&lt;/host&gt;
&lt;vmType&gt;...&lt;/vmType&gt; &lt;end&gt;...&lt;/end&gt;
&lt;start&gt;...&lt;/start&gt; &lt;start&gt;...&lt;/start&gt;
&lt;cloudDeploymentDomain&gt;us-east-1&lt;/cloudDeploymentDomain&gt; &lt;cloudDeploymentDomain&gt;us-east-1&lt;/cloudDeploymentDomain&gt;
&lt;end&gt;...&lt;/end&gt; &lt;vmType&gt;...&lt;/vmType&gt;
&lt;delta&gt;...&lt;/delta&gt; &lt;delta&gt;...&lt;/delta&gt;
&lt;owner&gt;user1&lt;/owner&gt; &lt;owner&gt;user1&lt;/owner&gt;
&lt;timestamp&gt;1499793079011&lt;/timestamp&gt; &lt;timestamp&gt;1499793079011&lt;/timestamp&gt;
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<h1 class="page-header">Files and Libraries</h1> <h1 class="page-header">Files and Libraries</h1>
<h3 id="artifact_gwt_json_overlay">GWT JSON Overlay</h3> <h3 id="artifact_gwt_json_overlay">GWT JSON Overlay</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p> <p> <p> <p>
The <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> JSON Overlay library provides the JSON Overlays that The <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> JSON Overlay library provides the JSON Overlays that
can be used to access the Web service API for this application. can be used to access the Web service API for this application.
...@@ -91,13 +91,13 @@ ...@@ -91,13 +91,13 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-gwt-json-overlay.jar"> <tr class="clickable-row" data-href="drip-api-gwt-json-overlay.jar">
<td><span class="downloadfile-name">drip-api-gwt-json-overlay.jar</span></td> <td><span class="downloadfile-name">drip-api-gwt-json-overlay.jar</span></td>
<td><span class="downloadfile-size">13.52K</span></td> <td><span class="downloadfile-size">13.58K</span></td>
<td><span class="downloadfile-description">The sources for the GWT JSON overlay.</span></td> <td><span class="downloadfile-description">The sources for the GWT JSON overlay.</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_java_json_client_library">Java JSON Client Library</h3> <h3 id="artifact_java_json_client_library">Java JSON Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The Java client-side library is used to provide the set of Java objects that can be serialized The Java client-side library is used to provide the set of Java objects that can be serialized
to/from JSON using <a href="http://jackson.codehaus.org/">Jackson</a>. This is useful for accessing the to/from JSON using <a href="http://jackson.codehaus.org/">Jackson</a>. This is useful for accessing the
...@@ -116,18 +116,18 @@ ...@@ -116,18 +116,18 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-json-client.jar"> <tr class="clickable-row" data-href="drip-api-json-client.jar">
<td><span class="downloadfile-name">drip-api-json-client.jar</span></td> <td><span class="downloadfile-name">drip-api-json-client.jar</span></td>
<td><span class="downloadfile-size">16.81K</span></td> <td><span class="downloadfile-size">16.92K</span></td>
<td><span class="downloadfile-description">The binaries for the Java JSON client library.</span></td> <td><span class="downloadfile-description">The binaries for the Java JSON client library.</span></td>
</tr> </tr>
<tr class="clickable-row" data-href="drip-api-json-client-json-sources.jar"> <tr class="clickable-row" data-href="drip-api-json-client-json-sources.jar">
<td><span class="downloadfile-name">drip-api-json-client-json-sources.jar</span></td> <td><span class="downloadfile-name">drip-api-json-client-json-sources.jar</span></td>
<td><span class="downloadfile-size">13.97K</span></td> <td><span class="downloadfile-size">14.03K</span></td>
<td><span class="downloadfile-description">The sources for the Java JSON client library.</span></td> <td><span class="downloadfile-description">The sources for the Java JSON client library.</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_java_xml_client_library">Java XML Client Library</h3> <h3 id="artifact_java_xml_client_library">Java XML Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The Java client-side library is used to access the Web service API for this application using Java. The Java client-side library is used to access the Web service API for this application using Java.
</p> </p>
...@@ -144,18 +144,18 @@ ...@@ -144,18 +144,18 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-xml-client.jar"> <tr class="clickable-row" data-href="drip-api-xml-client.jar">
<td><span class="downloadfile-name">drip-api-xml-client.jar</span></td> <td><span class="downloadfile-name">drip-api-xml-client.jar</span></td>
<td><span class="downloadfile-size">24.59K</span></td> <td><span class="downloadfile-size">24.75K</span></td>
<td><span class="downloadfile-description">The binaries for the Java XML client library.</span></td> <td><span class="downloadfile-description">The binaries for the Java XML client library.</span></td>
</tr> </tr>
<tr class="clickable-row" data-href="drip-api-xml-client-xml-sources.jar"> <tr class="clickable-row" data-href="drip-api-xml-client-xml-sources.jar">
<td><span class="downloadfile-name">drip-api-xml-client-xml-sources.jar</span></td> <td><span class="downloadfile-name">drip-api-xml-client-xml-sources.jar</span></td>
<td><span class="downloadfile-size">22.39K</span></td> <td><span class="downloadfile-size">22.48K</span></td>
<td><span class="downloadfile-description">The sources for the Java XML client library.</span></td> <td><span class="downloadfile-description">The sources for the Java XML client library.</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_js_client_library">JavaScript Client Library</h3> <h3 id="artifact_js_client_library">JavaScript Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The JavaScript client-side library defines classes that can be (de)serialized to/from JSON. The JavaScript client-side library defines classes that can be (de)serialized to/from JSON.
This is useful for accessing the resources that are published by this application, but only This is useful for accessing the resources that are published by this application, but only
...@@ -184,13 +184,13 @@ ...@@ -184,13 +184,13 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-js.zip"> <tr class="clickable-row" data-href="drip-api-js.zip">
<td><span class="downloadfile-name">drip-api-js.zip</span></td> <td><span class="downloadfile-name">drip-api-js.zip</span></td>
<td><span class="downloadfile-size">5.27K</span></td> <td><span class="downloadfile-size">5.33K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td> <td><span class="downloadfile-description">&nbsp;</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_php_json_client_library">PHP JSON Client Library</h3> <h3 id="artifact_php_json_client_library">PHP JSON Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The PHP JSON client-side library defines the PHP classes that can be (de)serialized to/from JSON. The PHP JSON client-side library defines the PHP classes that can be (de)serialized to/from JSON.
This is useful for accessing the resources that are published by this application, but only This is useful for accessing the resources that are published by this application, but only
...@@ -213,13 +213,13 @@ ...@@ -213,13 +213,13 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-php.zip"> <tr class="clickable-row" data-href="drip-api-php.zip">
<td><span class="downloadfile-name">drip-api-php.zip</span></td> <td><span class="downloadfile-name">drip-api-php.zip</span></td>
<td><span class="downloadfile-size">5.82K</span></td> <td><span class="downloadfile-size">5.96K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td> <td><span class="downloadfile-description">&nbsp;</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_php_xml_client_library">PHP XML Client Library</h3> <h3 id="artifact_php_xml_client_library">PHP XML Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The PHP client-side library defines the PHP classes that can be (de)serialized to/from XML. The PHP client-side library defines the PHP classes that can be (de)serialized to/from XML.
This is useful for accessing the resources that are published by this application, but only This is useful for accessing the resources that are published by this application, but only
...@@ -245,13 +245,13 @@ ...@@ -245,13 +245,13 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api-php.zip"> <tr class="clickable-row" data-href="drip-api-php.zip">
<td><span class="downloadfile-name">drip-api-php.zip</span></td> <td><span class="downloadfile-name">drip-api-php.zip</span></td>
<td><span class="downloadfile-size">8.99K</span></td> <td><span class="downloadfile-size">9.08K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td> <td><span class="downloadfile-description">&nbsp;</span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<h3 id="artifact_ruby_json_client_library">Ruby JSON Client Library</h3> <h3 id="artifact_ruby_json_client_library">Ruby JSON Client Library</h3>
<p class="lead">Created October 4, 2017</p> <p class="lead">Created October 9, 2017</p>
<p><p> <p><p>
The Ruby JSON client-side library defines the Ruby classes that can be (de)serialized to/from JSON. The Ruby JSON client-side library defines the Ruby classes that can be (de)serialized to/from JSON.
This is useful for accessing the REST endpoints that are published by this application, but only This is useful for accessing the REST endpoints that are published by this application, but only
...@@ -276,7 +276,7 @@ ...@@ -276,7 +276,7 @@
<tbody data-link="row" class="rowlink"> <tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api.rb"> <tr class="clickable-row" data-href="drip-api.rb">
<td><span class="downloadfile-name">drip-api.rb</span></td> <td><span class="downloadfile-name">drip-api.rb</span></td>
<td><span class="downloadfile-size">75.70K</span></td> <td><span class="downloadfile-size">76.58K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td> <td><span class="downloadfile-description">&nbsp;</span></td>
</tr> </tr>
</tbody> </tbody>
......
This diff is collapsed.
...@@ -81,18 +81,18 @@ class</p> ...@@ -81,18 +81,18 @@ class</p>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td> <span class="property-name">end</span> <td> <span class="property-name">host</span>
</td> </td>
<td> <span class="datatype-reference">number <td> <span class="datatype-reference">string
</span> </span>
</td> </td>
<td> <span class="property-description"></span> <td> <span class="property-description"></span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <span class="property-name">host</span> <td> <span class="property-name">delta</span>
</td> </td>
<td> <span class="datatype-reference">string <td> <span class="datatype-reference">number
</span> </span>
</td> </td>
<td> <span class="property-description"></span> <td> <span class="property-description"></span>
...@@ -108,18 +108,18 @@ class</p> ...@@ -108,18 +108,18 @@ class</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <span class="property-name">delta</span> <td> <span class="property-name">vmType</span>
</td> </td>
<td> <span class="datatype-reference">number <td> <span class="datatype-reference">string
</span> </span>
</td> </td>
<td> <span class="property-description"></span> <td> <span class="property-description"></span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <span class="property-name">vmType</span> <td> <span class="property-name">end</span>
</td> </td>
<td> <span class="datatype-reference">string <td> <span class="datatype-reference">number
</span> </span>
</td> </td>
<td> <span class="property-description"></span> <td> <span class="property-description"></span>
...@@ -165,11 +165,11 @@ object is saved.</span></td> ...@@ -165,11 +165,11 @@ object is saved.</span></td>
<p class="lead">Example</p> <p class="lead">Example</p>
<pre class="prettyprint language-js example">{ <pre class="prettyprint language-js example">{
&quot;end&quot; : 12345,
&quot;host&quot; : &quot;147.228.242.58&quot;, &quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345, &quot;delta&quot; : 12345,
&quot;start&quot; : 12345,
&quot;vmType&quot; : &quot;...&quot;, &quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;, &quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;owner&quot; : &quot;user1&quot;, &quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
......
...@@ -106,6 +106,15 @@ pair is only used by kubernetes</p> ...@@ -106,6 +106,15 @@ pair is only used by kubernetes</p>
</span> </span>
</td> </td>
<td> <span class="property-description">The scale information if any for this deployment</span> <td> <span class="property-description">The scale information if any for this deployment</span>
</td>
</tr>
<tr>
<td> <span class="property-name">managerInfo</span>
</td>
<td> <span class="datatype-reference">map of object
</span>
</td>
<td> <span class="property-description">Returns manager info e.g. service status etc.</span>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -197,6 +206,10 @@ object is saved.</span></td> ...@@ -197,6 +206,10 @@ object is saved.</span></td>
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011 &quot;timestamp&quot; : 1499793079011
}, },
&quot;managerInfo&quot; : {
&quot;property1&quot; : { },
&quot;property2&quot; : { }
},
&quot;provisionID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;provisionID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;managerType&quot; : &quot;ansible&quot;, &quot;managerType&quot; : &quot;ansible&quot;,
&quot;configurationID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;configurationID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
......
...@@ -69,7 +69,7 @@ class</p> ...@@ -69,7 +69,7 @@ class</p>
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt>Subtypes</dt> <dt>Subtypes</dt>
<dd><a href="json_KeyPair.html">KeyPair</a>, <a href="json_AnsibleOutput.html">AnsibleOutput</a>, <a href="json_ScaleRequest.html">ScaleRequest</a>, <a href="json_BenchmarkResult.html">BenchmarkResult</a>, <a href="json_CloudCredentials.html">CloudCredentials</a>, <a href="json_DeployResponse.html">DeployResponse</a>, <a href="json_ProvisionRequest.html">ProvisionRequest</a>, <a href="json_Script.html">Script</a>, <a href="json_KeyValueHolder.html">KeyValueHolder</a>, <a href="json_DeployRequest.html">DeployRequest</a>, <a href="json_ProvisionResponse.html">ProvisionResponse</a></dd> <dd><a href="json_KeyPair.html">KeyPair</a>, <a href="json_AnsibleOutput.html">AnsibleOutput</a>, <a href="json_ScaleRequest.html">ScaleRequest</a>, <a href="json_CloudCredentials.html">CloudCredentials</a>, <a href="json_BenchmarkResult.html">BenchmarkResult</a>, <a href="json_DeployResponse.html">DeployResponse</a>, <a href="json_ProvisionRequest.html">ProvisionRequest</a>, <a href="json_Script.html">Script</a>, <a href="json_KeyValueHolder.html">KeyValueHolder</a>, <a href="json_DeployRequest.html">DeployRequest</a>, <a href="json_ProvisionResponse.html">ProvisionResponse</a></dd>
</dl> </dl>
<table class="table datatype-properties"> <table class="table datatype-properties">
......
...@@ -370,6 +370,25 @@ pair is only used by kubernetes]]> ...@@ -370,6 +370,25 @@ pair is only used by kubernetes]]>
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="managerInfo" minOccurs="0">
<xs:annotation>
<xs:documentation>
<![CDATA[Returns manager info e.g. service status etc.]]>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="key" minOccurs="1" type="xs:string"/>
<xs:element name="value" minOccurs="1" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence> </xs:sequence>
</xs:extension> </xs:extension>
</xs:complexContent> </xs:complexContent>
...@@ -804,15 +823,15 @@ class]]> ...@@ -804,15 +823,15 @@ class]]>
<xs:complexContent> <xs:complexContent>
<xs:extension base="ownedObject"> <xs:extension base="ownedObject">
<xs:sequence> <xs:sequence>
<xs:element name="vmType" type="xs:string" minOccurs="0"> <xs:element name="host" type="xs:string" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="delta" type="xs:dateTime" minOccurs="0"> <xs:element name="vmType" type="xs:string" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="host" type="xs:string" minOccurs="0"> <xs:element name="start" type="xs:dateTime" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="cloudDeploymentDomain" type="xs:string" minOccurs="0"> <xs:element name="cloudDeploymentDomain" type="xs:string" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="start" type="xs:dateTime" minOccurs="0"> <xs:element name="delta" type="xs:dateTime" minOccurs="0">
</xs:element> </xs:element>
<xs:element name="end" type="xs:dateTime" minOccurs="0"> <xs:element name="end" type="xs:dateTime" minOccurs="0">
</xs:element> </xs:element>
......
...@@ -144,11 +144,11 @@ Content-Type: application/json ...@@ -144,11 +144,11 @@ Content-Type: application/json
<code class="prettyprint language-js"> <code class="prettyprint language-js">
[ { [ {
&quot;end&quot; : 12345,
&quot;host&quot; : &quot;147.228.242.58&quot;, &quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345, &quot;delta&quot; : 12345,
&quot;start&quot; : 12345,
&quot;vmType&quot; : &quot;...&quot;, &quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;, &quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;owner&quot; : &quot;user1&quot;, &quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
...@@ -514,11 +514,11 @@ Content-Type: application/json ...@@ -514,11 +514,11 @@ Content-Type: application/json
<code class="prettyprint language-js"> <code class="prettyprint language-js">
{ {
&quot;end&quot; : 12345,
&quot;host&quot; : &quot;147.228.242.58&quot;, &quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345, &quot;delta&quot; : 12345,
&quot;start&quot; : 12345,
&quot;vmType&quot; : &quot;...&quot;, &quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;, &quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;owner&quot; : &quot;user1&quot;, &quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
......
...@@ -774,6 +774,10 @@ Content-Type: application/json ...@@ -774,6 +774,10 @@ Content-Type: application/json
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011 &quot;timestamp&quot; : 1499793079011
}, },
&quot;managerInfo&quot; : {
&quot;property1&quot; : { },
&quot;property2&quot; : { }
},
&quot;provisionID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;provisionID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;managerType&quot; : &quot;ansible&quot;, &quot;managerType&quot; : &quot;ansible&quot;,
&quot;configurationID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;, &quot;configurationID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
......
...@@ -231,11 +231,11 @@ the DAO saves the object based on the principal how made the call</span></td> ...@@ -231,11 +231,11 @@ the DAO saves the object based on the principal how made the call</span></td>
<p class="lead">Example</p> <p class="lead">Example</p>
<pre class="prettyprint language-xml example">&lt;b-----&gt; <pre class="prettyprint language-xml example">&lt;b-----&gt;
&lt;vmType&gt;...&lt;/vmType&gt;
&lt;delta&gt;...&lt;/delta&gt;
&lt;host&gt;147.228.242.58&lt;/host&gt; &lt;host&gt;147.228.242.58&lt;/host&gt;
&lt;cloudDeploymentDomain&gt;us-east-1&lt;/cloudDeploymentDomain&gt; &lt;vmType&gt;...&lt;/vmType&gt;
&lt;start&gt;...&lt;/start&gt; &lt;start&gt;...&lt;/start&gt;
&lt;cloudDeploymentDomain&gt;us-east-1&lt;/cloudDeploymentDomain&gt;
&lt;delta&gt;...&lt;/delta&gt;
&lt;end&gt;...&lt;/end&gt; &lt;end&gt;...&lt;/end&gt;
&lt;owner&gt;user1&lt;/owner&gt; &lt;owner&gt;user1&lt;/owner&gt;
&lt;timestamp&gt;1499793079011&lt;/timestamp&gt; &lt;timestamp&gt;1499793079011&lt;/timestamp&gt;
......
...@@ -104,6 +104,24 @@ pair is only used by kubernetes</p> ...@@ -104,6 +104,24 @@ pair is only used by kubernetes</p>
</span> </span>
</td> </td>
<td> <span class="property-description">the ansibleOutputList</span> <td> <span class="property-description">the ansibleOutputList</span>
</td>
</tr>
<tr>
<td> <span class="property-name">managerInfo</span>
</td>
<td> <span class="datatype-reference">(custom)
</span>
</td>
<td> <span class="property-type">element
</span>
</td>
<td> <span class="property-namespaceInfo">
</span>
</td>
<td> <span class="property-minMaxOccurs">0/1
</span>
</td>
<td> <span class="property-description">Returns manager info e.g. service status etc.</span>
</td> </td>
</tr> </tr>
<tr> <tr>
...@@ -211,6 +229,7 @@ the DAO saves the object based on the principal how made the call</span></td> ...@@ -211,6 +229,7 @@ the DAO saves the object based on the principal how made the call</span></td>
&lt;owner&gt;user1&lt;/owner&gt; &lt;owner&gt;user1&lt;/owner&gt;
&lt;timestamp&gt;1499793079011&lt;/timestamp&gt; &lt;timestamp&gt;1499793079011&lt;/timestamp&gt;
&lt;/scale&gt; &lt;/scale&gt;
&lt;managerInfo&gt;{&quot;services_info&quot;: {&quot;status&quot;: &quot;Ready&quot;, &quot;hostname&quot;: &quot;stoor74&quot;, &quot;ID&quot;: &quot;v5y8cs7zd5atej53buq86g8j7&quot;, &quot;availability&quot;: &quot;Active&quot;}, .&quot;cluster_node_info&quot;: {&quot;status&quot;: &quot;Ready&quot;, &quot;hostname&quot;: &quot;stoor74&quot;, &quot;ID&quot;: &quot;v5y8cs7zd5atej53buq86g8j7&quot;, &quot;availability&quot;: &quot;Active&quot;}}&lt;/managerInfo&gt;
&lt;provisionID&gt;58e3946e0fb4f562d84ba1ad&lt;/provisionID&gt; &lt;provisionID&gt;58e3946e0fb4f562d84ba1ad&lt;/provisionID&gt;
&lt;managerType&gt;ansible&lt;/managerType&gt; &lt;managerType&gt;ansible&lt;/managerType&gt;
&lt;configurationID&gt;58e3946e0fb4f562d84ba1ad&lt;/configurationID&gt; &lt;configurationID&gt;58e3946e0fb4f562d84ba1ad&lt;/configurationID&gt;
......
...@@ -54,7 +54,6 @@ import nl.uva.sne.drip.commons.utils.Converter; ...@@ -54,7 +54,6 @@ import nl.uva.sne.drip.commons.utils.Converter;
import nl.uva.sne.drip.drip.commons.data.v1.external.ConfigurationRepresentation; import nl.uva.sne.drip.drip.commons.data.v1.external.ConfigurationRepresentation;
import nl.uva.sne.drip.drip.commons.data.v1.external.KeyPair; import nl.uva.sne.drip.drip.commons.data.v1.external.KeyPair;
import nl.uva.sne.drip.drip.commons.data.v1.external.ScaleRequest; import nl.uva.sne.drip.drip.commons.data.v1.external.ScaleRequest;
import nl.uva.sne.drip.drip.commons.data.v1.external.SwarmInfo;
import nl.uva.sne.drip.drip.commons.data.v1.external.ansible.AnsibleOutput; import nl.uva.sne.drip.drip.commons.data.v1.external.ansible.AnsibleOutput;
import nl.uva.sne.drip.drip.commons.data.v1.external.ansible.AnsibleResult; import nl.uva.sne.drip.drip.commons.data.v1.external.ansible.AnsibleResult;
import nl.uva.sne.drip.drip.commons.data.v1.external.ansible.BenchmarkResult; import nl.uva.sne.drip.drip.commons.data.v1.external.ansible.BenchmarkResult;
...@@ -103,7 +102,8 @@ public class DeployService { ...@@ -103,7 +102,8 @@ public class DeployService {
throw new NotFoundException(); throw new NotFoundException();
} }
if (deployDescription.getManagerType().equals("swarm")) { if (deployDescription.getManagerType().equals("swarm")) {
SwarmInfo swarmInfo = getSwarmInfo(deployDescription); Map<String, Object> swarmInfo = getSwarmInfo(deployDescription);
deployDescription.setManagerInfo(swarmInfo);
} }
return deployDescription; return deployDescription;
} }
...@@ -160,14 +160,14 @@ public class DeployService { ...@@ -160,14 +160,14 @@ public class DeployService {
return null; return null;
} }
private SwarmInfo getSwarmInfo(DeployResponse deployResp) throws JSONException, IOException, TimeoutException, InterruptedException { private Map<String, Object> getSwarmInfo(DeployResponse deployResp) throws JSONException, IOException, TimeoutException, InterruptedException {
Message deployerInvokationMessage = buildDeployerMessage( Message deployerInvokationMessage = buildDeployerMessage(
deployResp.getProvisionID(), deployResp.getProvisionID(),
"swarm_info", "swarm_info",
deployResp.getConfigurationID(), deployResp.getConfigurationID(),
null, null,
null); null);
SwarmInfo info; Map<String, Object> info;
try (DRIPCaller deployer = new DeployerCaller(messageBrokerHost);) { try (DRIPCaller deployer = new DeployerCaller(messageBrokerHost);) {
Message response = (deployer.call(deployerInvokationMessage)); Message response = (deployer.call(deployerInvokationMessage));
List<MessageParameter> params = response.getParameters(); List<MessageParameter> params = response.getParameters();
...@@ -298,15 +298,14 @@ public class DeployService { ...@@ -298,15 +298,14 @@ public class DeployService {
} }
private MessageParameter createSwarmInforparameter(String configurationID, String serviceName) { private MessageParameter createSwarmInforparameter(String configurationID, String serviceName) {
MessageParameter scaleParameter = new MessageParameter(); MessageParameter swarmInfoParameter = new MessageParameter();
scaleParameter.setName("swarm_info"); swarmInfoParameter.setName("swarm_info");
scaleParameter.setEncoding("UTF-8"); swarmInfoParameter.setEncoding("UTF-8");
scaleParameter.setValue(configurationID);
Map<String, String> attributes = new HashMap<>(); Map<String, String> attributes = new HashMap<>();
attributes.put("service", serviceName); attributes.put("service", serviceName);
attributes.put("name", configurationID);
scaleParameter.setAttributes(attributes); swarmInfoParameter.setAttributes(attributes);
return scaleParameter; return swarmInfoParameter;
} }
public DeployResponse scale(ScaleRequest scaleReq) throws IOException, TimeoutException, InterruptedException, JSONException, Exception { public DeployResponse scale(ScaleRequest scaleReq) throws IOException, TimeoutException, InterruptedException, JSONException, Exception {
...@@ -599,8 +598,14 @@ public class DeployService { ...@@ -599,8 +598,14 @@ public class DeployService {
return newJa.toString(); return newJa.toString();
} }
private SwarmInfo buildSwarmInfo(List<MessageParameter> params) { private Map<String, Object> buildSwarmInfo(List<MessageParameter> params) throws JSONException {
return null; Map<String, Object> info = new HashMap();
for (MessageParameter param : params) {
String jsonResp = param.getValue().replaceAll("^\"|\"$", "");
Map<String, Object> kv = Converter.jsonString2Map(jsonResp);
info.putAll(kv);
}
return info;
} }
} }
...@@ -16,7 +16,9 @@ ...@@ -16,7 +16,9 @@
package nl.uva.sne.drip.drip.commons.data.v1.external; package nl.uva.sne.drip.drip.commons.data.v1.external;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.webcohesion.enunciate.metadata.DocumentationExample;
import java.util.List; import java.util.List;
import java.util.Map;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
/** /**
...@@ -36,6 +38,8 @@ public class DeployResponse extends DeployRequest { ...@@ -36,6 +38,8 @@ public class DeployResponse extends DeployRequest {
private ScaleRequest scale; private ScaleRequest scale;
private Map<String, Object> managerInfo;
public void setAnsibleOutputList(List<String> outputListIDs) { public void setAnsibleOutputList(List<String> outputListIDs) {
this.ansibleOutputListIDs = outputListIDs; this.ansibleOutputListIDs = outputListIDs;
} }
...@@ -62,6 +66,7 @@ public class DeployResponse extends DeployRequest { ...@@ -62,6 +66,7 @@ public class DeployResponse extends DeployRequest {
/** /**
* The scale information if any for this deployment * The scale information if any for this deployment
*
* @return the scale * @return the scale
*/ */
public ScaleRequest getScale() { public ScaleRequest getScale() {
...@@ -75,4 +80,19 @@ public class DeployResponse extends DeployRequest { ...@@ -75,4 +80,19 @@ public class DeployResponse extends DeployRequest {
this.scale = scale; this.scale = scale;
} }
public void setManagerInfo(Map<String, Object> managerInfo) {
this.managerInfo = managerInfo;
}
/**
* Returns manager info e.g. service status etc.
*
* @return
*/
@DocumentationExample("{\"services_info\": {\"status\": \"Ready\", \"hostname\": "
+ "\"stoor74\", \"ID\": \"v5y8cs7zd5atej53buq86g8j7\", \"availability\": \"Active\"}, ."
+ "\"cluster_node_info\": {\"status\": \"Ready\", \"hostname\": \"stoor74\", \"ID\": \"v5y8cs7zd5atej53buq86g8j7\", \"availability\": \"Active\"}}")
public Map<String, Object> getManagerInfo() {
return this.managerInfo;
}
} }
/*
* Copyright 2017 S. Koulouzis, Wang Junchao, Huan Zhou, Yang Hu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package nl.uva.sne.drip.drip.commons.data.v1.external;
import org.springframework.data.mongodb.core.mapping.Document;
/**
*
* This is a general manager info representation to abstract information from
* managers like swarm
* @author S. Koulouzis
*
*/
@Document
public class ManagerInfo {
}
/*
* Copyright 2017 S. Koulouzis, Wang Junchao, Huan Zhou, Yang Hu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package nl.uva.sne.drip.drip.commons.data.v1.external;
/**
* * This is a manager info representation for swarm
*
* @author S. Koulouzis
*/
public class SwarmInfo extends ManagerInfo {
}
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCUlvxu82ILilu4mlugDXFLEdKxyLp6NnNjxwDWNFkTAXu3JJF8
pWeYS5OF+vCUjrm6roaiyoesj1NXWaIifvPXLLPycYFfzmVt6REir1IEYDHROT76
XyXg+x+BHwUw0EADJrwjIpgb6P8RVhDxpEfgBP2/H2+ONR4HBQuucaw5GQIDAQAB
AoGADXcdSyStJuST6Ue7s+Zj9OyZjljlZTvX+xvGnKLDy7AfuPoMYSJQIAIBTWvv
L1c7x4oXU1tNLjsSz2ClC8E7cYmauR6ECm7+mq4eLIwurKAd3yF2SmzgCe2ok/Rr
y2N1ZQgUdJiPuAbI3A1VqXpqR7CDie/jLp8lLCB4NW5eG4ECQQDmLOPjHfmME9hg
nyYxTomgNQ7g8XIXdeL9r5SPzryZHoIGOOT59Obr1t+YIvofhkC452MB7QyNxg2/
wkmQOMhRAkEApULKZaWybIRKHIRR/zuGLoes81VAwwif0Z7s0W7B1hxwo/YsqEz4
yvHYl7U0rlzsuPXh5P5/T9l+AY3vZRz6SQJBAMfr96f+EhEb75XExeyPtbQkQZ8Z
t6ou55DG33ek7mTkfbUf16pPj/8KLD09LBkTh8XSnElA9uVxP+Htw+1zlHECQEDd
4ovbahlmI6Dl3zmLp7OD1cL9Z5omPHUPKG1cSAE+0IfLDORSsiUWoKmLms4F83T2
LmCv9FDnUapSh/DsWuECQEYJKM5U93JN3rqo96BmFwwDEBk5U3Z2CHNYliVdptR3
W5a6yPgDdzbEsl138ZImFWxxLJ7+4AB7tqG3+S5Qelk=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCUlvxu82ILilu4mlugDXFLEdKxyLp6NnNjxwDWNFkTAXu3JJF8
pWeYS5OF+vCUjrm6roaiyoesj1NXWaIifvPXLLPycYFfzmVt6REir1IEYDHROT76
XyXg+x+BHwUw0EADJrwjIpgb6P8RVhDxpEfgBP2/H2+ONR4HBQuucaw5GQIDAQAB
AoGADXcdSyStJuST6Ue7s+Zj9OyZjljlZTvX+xvGnKLDy7AfuPoMYSJQIAIBTWvv
L1c7x4oXU1tNLjsSz2ClC8E7cYmauR6ECm7+mq4eLIwurKAd3yF2SmzgCe2ok/Rr
y2N1ZQgUdJiPuAbI3A1VqXpqR7CDie/jLp8lLCB4NW5eG4ECQQDmLOPjHfmME9hg
nyYxTomgNQ7g8XIXdeL9r5SPzryZHoIGOOT59Obr1t+YIvofhkC452MB7QyNxg2/
wkmQOMhRAkEApULKZaWybIRKHIRR/zuGLoes81VAwwif0Z7s0W7B1hxwo/YsqEz4
yvHYl7U0rlzsuPXh5P5/T9l+AY3vZRz6SQJBAMfr96f+EhEb75XExeyPtbQkQZ8Z
t6ou55DG33ek7mTkfbUf16pPj/8KLD09LBkTh8XSnElA9uVxP+Htw+1zlHECQEDd
4ovbahlmI6Dl3zmLp7OD1cL9Z5omPHUPKG1cSAE+0IfLDORSsiUWoKmLms4F83T2
LmCv9FDnUapSh/DsWuECQEYJKM5U93JN3rqo96BmFwwDEBk5U3Z2CHNYliVdptR3
W5a6yPgDdzbEsl138ZImFWxxLJ7+4AB7tqG3+S5Qelk=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCUlvxu82ILilu4mlugDXFLEdKxyLp6NnNjxwDWNFkTAXu3JJF8
pWeYS5OF+vCUjrm6roaiyoesj1NXWaIifvPXLLPycYFfzmVt6REir1IEYDHROT76
XyXg+x+BHwUw0EADJrwjIpgb6P8RVhDxpEfgBP2/H2+ONR4HBQuucaw5GQIDAQAB
AoGADXcdSyStJuST6Ue7s+Zj9OyZjljlZTvX+xvGnKLDy7AfuPoMYSJQIAIBTWvv
L1c7x4oXU1tNLjsSz2ClC8E7cYmauR6ECm7+mq4eLIwurKAd3yF2SmzgCe2ok/Rr
y2N1ZQgUdJiPuAbI3A1VqXpqR7CDie/jLp8lLCB4NW5eG4ECQQDmLOPjHfmME9hg
nyYxTomgNQ7g8XIXdeL9r5SPzryZHoIGOOT59Obr1t+YIvofhkC452MB7QyNxg2/
wkmQOMhRAkEApULKZaWybIRKHIRR/zuGLoes81VAwwif0Z7s0W7B1hxwo/YsqEz4
yvHYl7U0rlzsuPXh5P5/T9l+AY3vZRz6SQJBAMfr96f+EhEb75XExeyPtbQkQZ8Z
t6ou55DG33ek7mTkfbUf16pPj/8KLD09LBkTh8XSnElA9uVxP+Htw+1zlHECQEDd
4ovbahlmI6Dl3zmLp7OD1cL9Z5omPHUPKG1cSAE+0IfLDORSsiUWoKmLms4F83T2
LmCv9FDnUapSh/DsWuECQEYJKM5U93JN3rqo96BmFwwDEBk5U3Z2CHNYliVdptR3
W5a6yPgDdzbEsl138ZImFWxxLJ7+4AB7tqG3+S5Qelk=
-----END RSA PRIVATE KEY-----
version: '3'
services:
master:
image: sequenceiq/spark:1.4.0
hostname: master
ports: ['4040:4040', '8042:8042', '7077:7077', '8088:8088', '8080:8080']
restart: always
command: bash /usr/local/spark/sbin/start-master.sh && ping localhost > /dev/null
worker:
image: sequenceiq/spark:1.4.0
links: ['master:master']
expose: ['8081']
restart: always
command: bash /usr/local/spark/sbin/start-slave.sh spark://master:7077 && ping localhost >/dev/null
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC4EbcBgSPMGDWGpnVtnqrVD0CyGrvnc9ZJVvGzxsu8Ct8X7iaW
Gdt0luvnnh4vXRpWiPzm/luQShZ2D4jVmshoXrDRnHjcEhZaJd8wbA8rnO6xc4Gi
sf9QXfjAM/YbkkOORXJtUozHBmQZFm/vpzj6HyfV3IAakKQLGYbCZhyoOQIDAQAB
AoGAGW0xB38sT7wkYLZL0FmzpXzW5gN1Y3KH7leZSckzSYWC7c5S/DcULpXOfo9E
AiztP3jq3onSYisp0SMyNreL6Uq3uCzvlh53RNnBvIrdJ3/AZhgez/wsrFrqzaQ+
PtJtRVR3MItjOr/WEfQMc4rzDYjvdbPUI9/ojwlEUCJC2xECQQDuQL7BBoVnHZtW
42WPBdw3NVvRn4nNSZKKlc7ov05pt+aLA58hdfTsd3xo3WSLVHI4o6ArhbWlXgME
uYVyCIzdAkEAxce8/KbSILW++jtwBIyYIX4DBJNllV8q9jhsz3kcfLnsu9w9nmPC
1E8jZAKXkXSX2XsAWdu4l48EuJsXC3b1DQJBAKf92wK7mGCmzZssZ7W7ChWbeAyM
k1u+nqc9DlGqYp3EX7hxa0jqpTH+5igCwxxDBO7O4OcPNo9NhI9WSLOpN7kCQQCK
y+lsxQWhvuoPYbby+leo6W3kwCwB74+Oy3pQ/4VmYnQoQh9cEFah+Ae2H7uOcGxA
S3mrle6tLcj6ZJx/hzPhAkAl4XtlbxtVlLMwH1ZM/gO7ietdLlM8Uve1SpYVNXaw
LJW2mR8IEhv/oI4UK2k/k269pEcJuKEJMD5Upx6tM5Hu
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC4EbcBgSPMGDWGpnVtnqrVD0CyGrvnc9ZJVvGzxsu8Ct8X7iaW
Gdt0luvnnh4vXRpWiPzm/luQShZ2D4jVmshoXrDRnHjcEhZaJd8wbA8rnO6xc4Gi
sf9QXfjAM/YbkkOORXJtUozHBmQZFm/vpzj6HyfV3IAakKQLGYbCZhyoOQIDAQAB
AoGAGW0xB38sT7wkYLZL0FmzpXzW5gN1Y3KH7leZSckzSYWC7c5S/DcULpXOfo9E
AiztP3jq3onSYisp0SMyNreL6Uq3uCzvlh53RNnBvIrdJ3/AZhgez/wsrFrqzaQ+
PtJtRVR3MItjOr/WEfQMc4rzDYjvdbPUI9/ojwlEUCJC2xECQQDuQL7BBoVnHZtW
42WPBdw3NVvRn4nNSZKKlc7ov05pt+aLA58hdfTsd3xo3WSLVHI4o6ArhbWlXgME
uYVyCIzdAkEAxce8/KbSILW++jtwBIyYIX4DBJNllV8q9jhsz3kcfLnsu9w9nmPC
1E8jZAKXkXSX2XsAWdu4l48EuJsXC3b1DQJBAKf92wK7mGCmzZssZ7W7ChWbeAyM
k1u+nqc9DlGqYp3EX7hxa0jqpTH+5igCwxxDBO7O4OcPNo9NhI9WSLOpN7kCQQCK
y+lsxQWhvuoPYbby+leo6W3kwCwB74+Oy3pQ/4VmYnQoQh9cEFah+Ae2H7uOcGxA
S3mrle6tLcj6ZJx/hzPhAkAl4XtlbxtVlLMwH1ZM/gO7ietdLlM8Uve1SpYVNXaw
LJW2mR8IEhv/oI4UK2k/k269pEcJuKEJMD5Upx6tM5Hu
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC4EbcBgSPMGDWGpnVtnqrVD0CyGrvnc9ZJVvGzxsu8Ct8X7iaW
Gdt0luvnnh4vXRpWiPzm/luQShZ2D4jVmshoXrDRnHjcEhZaJd8wbA8rnO6xc4Gi
sf9QXfjAM/YbkkOORXJtUozHBmQZFm/vpzj6HyfV3IAakKQLGYbCZhyoOQIDAQAB
AoGAGW0xB38sT7wkYLZL0FmzpXzW5gN1Y3KH7leZSckzSYWC7c5S/DcULpXOfo9E
AiztP3jq3onSYisp0SMyNreL6Uq3uCzvlh53RNnBvIrdJ3/AZhgez/wsrFrqzaQ+
PtJtRVR3MItjOr/WEfQMc4rzDYjvdbPUI9/ojwlEUCJC2xECQQDuQL7BBoVnHZtW
42WPBdw3NVvRn4nNSZKKlc7ov05pt+aLA58hdfTsd3xo3WSLVHI4o6ArhbWlXgME
uYVyCIzdAkEAxce8/KbSILW++jtwBIyYIX4DBJNllV8q9jhsz3kcfLnsu9w9nmPC
1E8jZAKXkXSX2XsAWdu4l48EuJsXC3b1DQJBAKf92wK7mGCmzZssZ7W7ChWbeAyM
k1u+nqc9DlGqYp3EX7hxa0jqpTH+5igCwxxDBO7O4OcPNo9NhI9WSLOpN7kCQQCK
y+lsxQWhvuoPYbby+leo6W3kwCwB74+Oy3pQ/4VmYnQoQh9cEFah+Ae2H7uOcGxA
S3mrle6tLcj6ZJx/hzPhAkAl4XtlbxtVlLMwH1ZM/gO7ietdLlM8Uve1SpYVNXaw
LJW2mR8IEhv/oI4UK2k/k269pEcJuKEJMD5Upx6tM5Hu
-----END RSA PRIVATE KEY-----
version: '3'
services:
redis:
image: redis:3.2-alpine
ports: ['6379']
networks: [voteapp]
deploy:
placement:
constraints: [node.role == manager]
db:
image: postgres:9.4
volumes: ['db-data:/var/lib/postgresql/data']
networks: [voteapp]
deploy:
placement:
constraints: [node.role == manager]
voting-app:
image: gaiadocker/example-voting-app-vote:good
ports: ['5000:80']
networks: [voteapp]
depends_on: [redis]
deploy:
mode: replicated
replicas: 2
labels: [APP=VOTING]
placement:
constraints: [node.role == worker]
result-app:
image: gaiadocker/example-voting-app-result:latest
ports: ['5001:80']
networks: [voteapp]
depends_on: [db]
worker:
image: gaiadocker/example-voting-app-worker:latest
networks:
voteapp:
aliases: [workers]
depends_on: [db, redis]
deploy:
mode: replicated
replicas: 2
labels: [APP=VOTING]
resources:
limits: {cpus: 0.25, memory: 512M}
reservations: {cpus: 0.25, memory: 256M}
restart_policy: {condition: on-failure, delay: 5s, max_attempts: 3, window: 120s}
update_config: {parallelism: 1, delay: 10s, failure_action: continue, monitor: 60s,
max_failure_ratio: 0.3}
placement:
constraints: [node.role == worker]
networks: {voteapp: null}
volumes: {db-data: null}
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
version: '3'
services:
master:
image: singularities/spark
command: start-spark master
hostname: master
ports: ['6066:6066', '7070:7070', '8080:8080', '50070:50070']
worker:
image: singularities/spark
command: start-spark worker master
environment: {SPARK_WORKER_CORES: 1, SPARK_WORKER_MEMORY: 2g}
links: [master]
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCzzx+emy4Fq0CR8tRkdsc0Dm03CvWsy2Wv7SI1Qtd7wDRlJAFg
2VEt1Ob3X61eocHOKBxpKBx/q6VpzYJH5oKL2/8jXucs8Qlm9S017Y7YWlCsysAG
jAKdIU6qQIG42vVfk8F7tlyATgxDWibfyVu8TjxJTaT8NgvYyifLYhJxdwIDAQAB
AoGADMeh5bH92WVMl5L8yY8vpWGJHapnv7pNJe3iyopPqnoEv1OJzYpknK9PIzHn
rpwsnCx5qHezXteiUBzNL7MQgCV9hZbq6/56UzrfxWlC5qbADvf4pTwpQYr2QwuE
fdtAyrcJEtb4xz/avnj6QQ50hY5yiBzABoeMdlgVDcgxnGECQQD2krzMdq9CGne1
oeJkcee+YXyaNKulXGJzQa7f4nI6pYSSLRAcsH6E8JC1hS7oz4kJEKgM6m/bUxvD
H5fFzrwfAkEAuq7zruFTujzF2l1BO35VF/5DNDFgIfpxaENkJE1ryuy1+SCu3iwM
vh3g0vosYu8gT5ubIwsMUqShFAkWoh+fqQJALtVwRuXEJCoi0r0M40c/XUnnAONA
Nwh1Kq8vKBc62yjVJW6pwMlFPrrywYeqgU3qGW6wfMOKu33tqAI4MboywQJAL0y2
p1+mFDDjvIEWTxmiO9MLegTso49N/qncjKolHqQ9MyMJy3cDv4PYe/wxFNwbpq/5
bbaV57aYrXfkCS3UCQJBAJMRMRF8d+1LTutvMExZLkt6JDJGhNAHtYryN05KLRhv
J7kYIm3ALh1ediAHc3nNvojmOfxBz3RLX/f0ONjDFZM=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
version: '3'
services:
master:
image: singularities/spark
command: start-spark master
hostname: master
ports: ['6066:6066', '7070:7070', '8080:8080', '50070:50070']
worker:
image: singularities/spark
command: start-spark worker master
environment: {SPARK_WORKER_CORES: 1, SPARK_WORKER_MEMORY: 2g}
links: [master]
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIRTR2ONfWz5/LkIf9fQen0MgLPYSA2nlEv5YN7zoQIDEghUMJ
0EhPPt9REjiz8ds2yLhsyXEk3+rKjmhozofSrV6B1o5XVmppoAEUCD7eBRSKW7D6
dK0W6fvt8m9VrqAq8Z34+hWP0JUFEwPk5SrJSHrStP+azzgsBUZUHvTuewIDAQAB
AoGAbpG+2DKkAAZbjBE885gPHPjpKUOKn3V/lJROLV1R6ktLtE++5nEnKxFkTCdK
RRcX15RUNkO1gw1ZXQHo5Ux5sb4qnZO5zbZQLgGpHg5ugq2+cjW5APGmxSPs6DB8
0An0pl4NN8P20B3A1RpcLaz8ju0zRljd4yq/zO30S2mr2MkCQQDrrLdALk4pU6mW
qkL7M+sW7ljZ1ROE34dl2FOv40jEuEFFVjQm7yrAKWZtPfOaUUg4J48L0hWqMU5i
gfpqeqVFAkEA2YrSwbxrhRN+SczGgx2pc/0kysKBMtW9rwOdcrNT8yXz0/JRCBxF
CbwX69ftZI8d3zcZ8d2/Yfq78hlZPs8gvwJBAL/Ze9utVkdiKb3SoHAp1Yh3QrEh
OaCC7o/DyGx4UzaA3/F3uUCwlVaU3SK0uee3n1jHKzVuMeC3/p1GPfoMGRkCQBxf
wwWJ8ew1kq9Fik7nu4ZpajcYD4n13vvI2Oxw/24jcR4f6PnJ1idi5SvZyhjnodnP
cg7eAWxiK8l0DPPoSDkCQFz6GEy5ElgqpEkB+wlOXNOV28ACsO4yfSLeshcZmTzR
cYL8NBvcZjwSkNF1KDwPavQjBdmS6tV4FD2yBy0Z2fQ=
-----END RSA PRIVATE KEY-----
...@@ -19,6 +19,7 @@ __author__ = 'Yang Hu' ...@@ -19,6 +19,7 @@ __author__ = 'Yang Hu'
import paramiko, os import paramiko, os
from vm_info import VmInfo from vm_info import VmInfo
import json
def docker_check(vm, compose_name): def docker_check(vm, compose_name):
...@@ -28,21 +29,34 @@ def docker_check(vm, compose_name): ...@@ -28,21 +29,34 @@ def docker_check(vm, compose_name):
ssh = paramiko.SSHClient() ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(vm.ip, username=vm.user, key_filename=vm.key) ssh.connect(vm.ip, username=vm.user, key_filename=vm.key)
retstr = "\n=========== Cluster Node Information =============== \n" node_format = '\'{\"ID\":\"{{.ID}}\",\"hostname\":\"{{.Hostname}}\",\"status\":\"{{.Status}}\",\"availability\":\"{{.Availability}}\",\"status\":\"{{.Status}}\"}\''
stdin, stdout, stderr = ssh.exec_command("sudo docker node ls") cmd = 'sudo docker node ls --format ' + (node_format)
ret = stdout.readlines() json_response = {}
for i in ret: retstr += i.encode() stdin, stdout, stderr = ssh.exec_command(cmd)
node_ls_resp = stdout.readlines()
retstr += "\n============ Services Information ================ \n" retstr = ""
stdin, stdout, stderr = ssh.exec_command("sudo docker stack ps %s" % (compose_name)) for i in node_ls_resp:
ret = stdout.readlines() if i.encode():
for i in ret: retstr += i.encode() retstr += i.encode()
cluster_node_info = json.loads(retstr.strip('\n'))
json_response ['cluster_node_info'] = cluster_node_info
services_format = '{\"ID\":\"{{.ID}}\","\"name\":\"{{.Name}}\","\"image\":\"{{.Image}}\","\"node\":\"{{.Node}}\","\"desired_state\":\"{{.DesiredState}}\","\"current_state\":\"{{.CurrentState}}\","\"error\":\"{{.Error}}\","\"ports\":\"{{.Ports}}\"}'
cmd = 'sudo docker stack ps '+ compose_name +' --format ' + services_format
stdin, stdout, stderr = ssh.exec_command(cmd)
stack_ps_resp = stdout.readlines()
retstr = ""
for i in stack_ps_resp:
if i.encode():
retstr += i.encode()
services_info = json.loads(retstr.strip('\n'))
json_response ['services_info'] = services_info
print "%s: =========== Check Finished ==============" % (vm.ip) print "%s: =========== Check Finished ==============" % (vm.ip)
except Exception as e: except Exception as e:
print '%s: %s' % (vm.ip, e) print '%s: %s' % (vm.ip, e)
return "ERROR:" + vm.ip + " " + str(e) return "ERROR:" + vm.ip + " " + str(e)
ssh.close() ssh.close()
return retstr return json_response
......
...@@ -3,7 +3,6 @@ import pika ...@@ -3,7 +3,6 @@ import pika
import json import json
import os import os
import time import time
import json
from vm_info import VmInfo from vm_info import VmInfo
import docker_kubernetes import docker_kubernetes
import docker_engine import docker_engine
...@@ -55,7 +54,6 @@ def handleDelivery(message): ...@@ -55,7 +54,6 @@ def handleDelivery(message):
for param in params: for param in params:
name = param["name"] name = param["name"]
print name
if name == "cluster": if name == "cluster":
manager_type = param["value"] manager_type = param["value"]
elif name == "credential": elif name == "credential":
...@@ -97,8 +95,6 @@ def handleDelivery(message): ...@@ -97,8 +95,6 @@ def handleDelivery(message):
name_of_service = param["attributes"]["service"] name_of_service = param["attributes"]["service"]
number_of_containers = param["attributes"]["number_of_containers"] number_of_containers = param["attributes"]["number_of_containers"]
elif name == "swarm_info": elif name == "swarm_info":
name_of_deployment = param["value"]
name_of_service = param["attributes"]["service"]
compose_name = param["attributes"]["name"] compose_name = param["attributes"]["name"]
...@@ -120,6 +116,7 @@ def handleDelivery(message): ...@@ -120,6 +116,7 @@ def handleDelivery(message):
return ret return ret
elif manager_type == "swarm_info": elif manager_type == "swarm_info":
ret = docker_check.run(vm_list, compose_name) ret = docker_check.run(vm_list, compose_name)
ret = '"'+json.dumps(ret)+'"'
return ret return ret
else: else:
return "ERROR: invalid cluster" return "ERROR: invalid cluster"
...@@ -144,6 +141,8 @@ def on_request(ch, method, props, body): ...@@ -144,6 +141,8 @@ def on_request(ch, method, props, body):
res_name = "ansible_output" res_name = "ansible_output"
elif manager_type == "scale": elif manager_type == "scale":
res_name = "scale_status" res_name = "scale_status"
elif manager_type == "swarm_info":
res_name = "swarm_info"
else: else:
res_name = "credential" res_name = "credential"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment