Commit afc4ff05 authored by Spiros Koulouzis's avatar Spiros Koulouzis

parse deployer json

parent c8cbab19
......@@ -72,7 +72,7 @@
<h1 class="page-header">Files and Libraries</h1>
<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>
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.
......@@ -97,7 +97,7 @@
</tbody>
</table>
<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>
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
......@@ -116,7 +116,7 @@
<tbody data-link="row" class="rowlink">
<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-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>
</tr>
<tr class="clickable-row" data-href="drip-api-json-client-json-sources.jar">
......@@ -127,7 +127,7 @@
</tbody>
</table>
<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>
The Java client-side library is used to access the Web service API for this application using Java.
</p>
......@@ -149,13 +149,13 @@
</tr>
<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-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>
</tr>
</tbody>
</table>
<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>
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
......@@ -190,7 +190,7 @@
</tbody>
</table>
<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>
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
......@@ -213,13 +213,13 @@
<tbody data-link="row" class="rowlink">
<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-size">5.82K</span></td>
<td><span class="downloadfile-size">5.79K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td>
</tr>
</tbody>
</table>
<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>
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
......@@ -245,13 +245,13 @@
<tbody data-link="row" class="rowlink">
<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-size">8.99K</span></td>
<td><span class="downloadfile-size">9.00K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td>
</tr>
</tbody>
</table>
<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>
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 diff is collapsed.
......@@ -90,7 +90,7 @@ class</p>
</td>
</tr>
<tr>
<td> <span class="property-name">vmType</span>
<td> <span class="property-name">cloudDeploymentDomain</span>
</td>
<td> <span class="datatype-reference">string
</span>
......@@ -99,16 +99,16 @@ class</p>
</td>
</tr>
<tr>
<td> <span class="property-name">end</span>
<td> <span class="property-name">vmType</span>
</td>
<td> <span class="datatype-reference">number
<td> <span class="datatype-reference">string
</span>
</td>
<td> <span class="property-description"></span>
</td>
</tr>
<tr>
<td> <span class="property-name">start</span>
<td> <span class="property-name">end</span>
</td>
<td> <span class="datatype-reference">number
</span>
......@@ -126,9 +126,9 @@ class</p>
</td>
</tr>
<tr>
<td> <span class="property-name">cloudDeploymentDomain</span>
<td> <span class="property-name">start</span>
</td>
<td> <span class="datatype-reference">string
<td> <span class="datatype-reference">number
</span>
</td>
<td> <span class="property-description"></span>
......@@ -166,11 +166,11 @@ object is saved.</span></td>
<pre class="prettyprint language-js example">{
&quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;start&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;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011
......
......@@ -69,7 +69,7 @@ class</p>
<dl class="dl-horizontal">
<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>
<table class="table datatype-properties">
......
......@@ -806,13 +806,13 @@ class]]>
<xs:sequence>
<xs:element name="host" type="xs:string" minOccurs="0">
</xs:element>
<xs:element name="vmType" type="xs:string" minOccurs="0">
<xs:element name="end" type="xs:dateTime" minOccurs="0">
</xs:element>
<xs:element name="start" type="xs:dateTime" minOccurs="0">
</xs:element>
<xs:element name="cloudDeploymentDomain" type="xs:string" minOccurs="0">
</xs:element>
<xs:element name="end" type="xs:dateTime" minOccurs="0">
<xs:element name="vmType" type="xs:string" minOccurs="0">
</xs:element>
<xs:element name="delta" type="xs:dateTime" minOccurs="0">
</xs:element>
......
......@@ -145,11 +145,11 @@ Content-Type: application/json
<code class="prettyprint language-js">
[ {
&quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;start&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;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011
......@@ -515,11 +515,11 @@ Content-Type: application/json
<code class="prettyprint language-js">
{
&quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;start&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;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011
......
......@@ -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;
&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;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;owner&gt;user1&lt;/owner&gt;
&lt;timestamp&gt;1499793079011&lt;/timestamp&gt;
......
......@@ -72,7 +72,7 @@
<h1 class="page-header">Files and Libraries</h1>
<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>
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.
......@@ -91,13 +91,13 @@
<tbody data-link="row" class="rowlink">
<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-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>
</tr>
</tbody>
</table>
<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>
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
......@@ -116,18 +116,18 @@
<tbody data-link="row" class="rowlink">
<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-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>
</tr>
<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-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>
</tr>
</tbody>
</table>
<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>
The Java client-side library is used to access the Web service API for this application using Java.
</p>
......@@ -144,18 +144,18 @@
<tbody data-link="row" class="rowlink">
<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-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>
</tr>
<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-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>
</tr>
</tbody>
</table>
<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>
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
......@@ -184,13 +184,13 @@
<tbody data-link="row" class="rowlink">
<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-size">5.27K</span></td>
<td><span class="downloadfile-size">5.33K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td>
</tr>
</tbody>
</table>
<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>
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
......@@ -213,13 +213,13 @@
<tbody data-link="row" class="rowlink">
<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-size">5.82K</span></td>
<td><span class="downloadfile-size">5.96K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td>
</tr>
</tbody>
</table>
<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>
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
......@@ -245,13 +245,13 @@
<tbody data-link="row" class="rowlink">
<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-size">8.99K</span></td>
<td><span class="downloadfile-size">9.08K</span></td>
<td><span class="downloadfile-description">&nbsp;</span></td>
</tr>
</tbody>
</table>
<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>
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
......@@ -276,7 +276,7 @@
<tbody data-link="row" class="rowlink">
<tr class="clickable-row" data-href="drip-api.rb">
<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>
</tr>
</tbody>
......
This diff is collapsed.
......@@ -81,18 +81,18 @@ class</p>
</thead>
<tbody>
<tr>
<td> <span class="property-name">end</span>
<td> <span class="property-name">host</span>
</td>
<td> <span class="datatype-reference">number
<td> <span class="datatype-reference">string
</span>
</td>
<td> <span class="property-description"></span>
</td>
</tr>
<tr>
<td> <span class="property-name">host</span>
<td> <span class="property-name">delta</span>
</td>
<td> <span class="datatype-reference">string
<td> <span class="datatype-reference">number
</span>
</td>
<td> <span class="property-description"></span>
......@@ -108,18 +108,18 @@ class</p>
</td>
</tr>
<tr>
<td> <span class="property-name">delta</span>
<td> <span class="property-name">vmType</span>
</td>
<td> <span class="datatype-reference">number
<td> <span class="datatype-reference">string
</span>
</td>
<td> <span class="property-description"></span>
</td>
</tr>
<tr>
<td> <span class="property-name">vmType</span>
<td> <span class="property-name">end</span>
</td>
<td> <span class="datatype-reference">string
<td> <span class="datatype-reference">number
</span>
</td>
<td> <span class="property-description"></span>
......@@ -165,11 +165,11 @@ object is saved.</span></td>
<p class="lead">Example</p>
<pre class="prettyprint language-js example">{
&quot;end&quot; : 12345,
&quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345,
&quot;start&quot; : 12345,
&quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
......
......@@ -106,6 +106,15 @@ pair is only used by kubernetes</p>
</span>
</td>
<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>
</tr>
</tbody>
......@@ -197,6 +206,10 @@ object is saved.</span></td>
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011
},
&quot;managerInfo&quot; : {
&quot;property1&quot; : { },
&quot;property2&quot; : { }
},
&quot;provisionID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;managerType&quot; : &quot;ansible&quot;,
&quot;configurationID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
......
......@@ -69,7 +69,7 @@ class</p>
<dl class="dl-horizontal">
<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>
<table class="table datatype-properties">
......
......@@ -370,6 +370,25 @@ pair is only used by kubernetes]]>
</xs:documentation>
</xs:annotation>
</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:extension>
</xs:complexContent>
......@@ -804,15 +823,15 @@ class]]>
<xs:complexContent>
<xs:extension base="ownedObject">
<xs:sequence>
<xs:element name="vmType" type="xs:string" minOccurs="0">
<xs:element name="host" type="xs:string" minOccurs="0">
</xs:element>
<xs:element name="delta" type="xs:dateTime" minOccurs="0">
<xs:element name="vmType" type="xs:string" minOccurs="0">
</xs:element>
<xs:element name="host" type="xs:string" minOccurs="0">
<xs:element name="start" type="xs:dateTime" minOccurs="0">
</xs:element>
<xs:element name="cloudDeploymentDomain" type="xs:string" minOccurs="0">
</xs:element>
<xs:element name="start" type="xs:dateTime" minOccurs="0">
<xs:element name="delta" type="xs:dateTime" minOccurs="0">
</xs:element>
<xs:element name="end" type="xs:dateTime" minOccurs="0">
</xs:element>
......
......@@ -144,11 +144,11 @@ Content-Type: application/json
<code class="prettyprint language-js">
[ {
&quot;end&quot; : 12345,
&quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345,
&quot;start&quot; : 12345,
&quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
......@@ -514,11 +514,11 @@ Content-Type: application/json
<code class="prettyprint language-js">
{
&quot;end&quot; : 12345,
&quot;host&quot; : &quot;147.228.242.58&quot;,
&quot;start&quot; : 12345,
&quot;delta&quot; : 12345,
&quot;start&quot; : 12345,
&quot;vmType&quot; : &quot;...&quot;,
&quot;end&quot; : 12345,
&quot;cloudDeploymentDomain&quot; : &quot;us-east-1&quot;,
&quot;owner&quot; : &quot;user1&quot;,
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
......
......@@ -774,6 +774,10 @@ Content-Type: application/json
&quot;id&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;timestamp&quot; : 1499793079011
},
&quot;managerInfo&quot; : {
&quot;property1&quot; : { },
&quot;property2&quot; : { }
},
&quot;provisionID&quot; : &quot;58e3946e0fb4f562d84ba1ad&quot;,
&quot;managerType&quot; : &quot;ansible&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>
<p class="lead">Example</p>
<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;cloudDeploymentDomain&gt;us-east-1&lt;/cloudDeploymentDomain&gt;
&lt;vmType&gt;...&lt;/vmType&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;owner&gt;user1&lt;/owner&gt;
&lt;timestamp&gt;1499793079011&lt;/timestamp&gt;
......
......@@ -104,6 +104,24 @@ pair is only used by kubernetes</p>
</span>
</td>
<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>
</tr>
<tr>
......@@ -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;timestamp&gt;1499793079011&lt;/timestamp&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;managerType&gt;ansible&lt;/managerType&gt;
&lt;configurationID&gt;58e3946e0fb4f562d84ba1ad&lt;/configurationID&gt;
......
......@@ -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.KeyPair;
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.AnsibleResult;
import nl.uva.sne.drip.drip.commons.data.v1.external.ansible.BenchmarkResult;
......@@ -103,7 +102,8 @@ public class DeployService {
throw new NotFoundException();
}
if (deployDescription.getManagerType().equals("swarm")) {
SwarmInfo swarmInfo = getSwarmInfo(deployDescription);
Map<String, Object> swarmInfo = getSwarmInfo(deployDescription);
deployDescription.setManagerInfo(swarmInfo);
}
return deployDescription;
}
......@@ -160,14 +160,14 @@ public class DeployService {
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(
deployResp.getProvisionID(),
"swarm_info",
deployResp.getConfigurationID(),
null,
null);
SwarmInfo info;
Map<String, Object> info;
try (DRIPCaller deployer = new DeployerCaller(messageBrokerHost);) {
Message response = (deployer.call(deployerInvokationMessage));
List<MessageParameter> params = response.getParameters();
......@@ -298,15 +298,14 @@ public class DeployService {
}
private MessageParameter createSwarmInforparameter(String configurationID, String serviceName) {
MessageParameter scaleParameter = new MessageParameter();
scaleParameter.setName("swarm_info");
scaleParameter.setEncoding("UTF-8");
scaleParameter.setValue(configurationID);
MessageParameter swarmInfoParameter = new MessageParameter();
swarmInfoParameter.setName("swarm_info");
swarmInfoParameter.setEncoding("UTF-8");
Map<String, String> attributes = new HashMap<>();
attributes.put("service", serviceName);
scaleParameter.setAttributes(attributes);
return scaleParameter;
attributes.put("name", configurationID);
swarmInfoParameter.setAttributes(attributes);
return swarmInfoParameter;
}
public DeployResponse scale(ScaleRequest scaleReq) throws IOException, TimeoutException, InterruptedException, JSONException, Exception {
......@@ -599,8 +598,14 @@ public class DeployService {
return newJa.toString();
}
private SwarmInfo buildSwarmInfo(List<MessageParameter> params) {
return null;
private Map<String, Object> buildSwarmInfo(List<MessageParameter> params) throws JSONException {
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 @@
package nl.uva.sne.drip.drip.commons.data.v1.external;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.webcohesion.enunciate.metadata.DocumentationExample;
import java.util.List;
import java.util.Map;
import org.springframework.data.mongodb.core.mapping.Document;
/**
......@@ -36,6 +38,8 @@ public class DeployResponse extends DeployRequest {
private ScaleRequest scale;
private Map<String, Object> managerInfo;
public void setAnsibleOutputList(List<String> outputListIDs) {
this.ansibleOutputListIDs = outputListIDs;
}
......@@ -62,6 +66,7 @@ public class DeployResponse extends DeployRequest {
/**
* The scale information if any for this deployment
*
* @return the scale
*/
public ScaleRequest getScale() {
......@@ -75,4 +80,19 @@ public class DeployResponse extends DeployRequest {
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'
import paramiko, os
from vm_info import VmInfo
import json
def docker_check(vm, compose_name):
......@@ -28,21 +29,34 @@ def docker_check(vm, compose_name):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(vm.ip, username=vm.user, key_filename=vm.key)
retstr = "\n=========== Cluster Node Information =============== \n"
stdin, stdout, stderr = ssh.exec_command("sudo docker node ls")
ret = stdout.readlines()
for i in ret: retstr += i.encode()
retstr += "\n============ Services Information ================ \n"
stdin, stdout, stderr = ssh.exec_command("sudo docker stack ps %s" % (compose_name))
ret = stdout.readlines()
for i in ret: retstr += i.encode()
node_format = '\'{\"ID\":\"{{.ID}}\",\"hostname\":\"{{.Hostname}}\",\"status\":\"{{.Status}}\",\"availability\":\"{{.Availability}}\",\"status\":\"{{.Status}}\"}\''
cmd = 'sudo docker node ls --format ' + (node_format)
json_response = {}
stdin, stdout, stderr = ssh.exec_command(cmd)
node_ls_resp = stdout.readlines()
retstr = ""
for i in node_ls_resp:
if 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)
except Exception as e:
print '%s: %s' % (vm.ip, e)
return "ERROR:" + vm.ip + " " + str(e)
ssh.close()
return retstr
return json_response
......
......@@ -3,7 +3,6 @@ import pika
import json
import os
import time
import json
from vm_info import VmInfo
import docker_kubernetes
import docker_engine
......@@ -55,7 +54,6 @@ def handleDelivery(message):
for param in params:
name = param["name"]
print name
if name == "cluster":
manager_type = param["value"]
elif name == "credential":
......@@ -97,8 +95,6 @@ def handleDelivery(message):
name_of_service = param["attributes"]["service"]
number_of_containers = param["attributes"]["number_of_containers"]
elif name == "swarm_info":
name_of_deployment = param["value"]
name_of_service = param["attributes"]["service"]
compose_name = param["attributes"]["name"]
......@@ -120,6 +116,7 @@ def handleDelivery(message):
return ret
elif manager_type == "swarm_info":
ret = docker_check.run(vm_list, compose_name)
ret = '"'+json.dumps(ret)+'"'
return ret
else:
return "ERROR: invalid cluster"
......@@ -144,6 +141,8 @@ def on_request(ch, method, props, body):
res_name = "ansible_output"
elif manager_type == "scale":
res_name = "scale_status"
elif manager_type == "swarm_info":
res_name = "swarm_info"
else:
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