Modified: jclouds/site-content/guides/cloudsigma/index.html URL: http://svn.apache.org/viewvc/jclouds/site-content/guides/cloudsigma/index.html?rev=1923693&r1=1923692&r2=1923693&view=diff ============================================================================== --- jclouds/site-content/guides/cloudsigma/index.html (original) +++ jclouds/site-content/guides/cloudsigma/index.html Mon Feb 10 07:25:53 2025 @@ -150,52 +150,47 @@ <h1>CloudSigma: Getting Started Guide</h1> </div> <ol> -<li>Signup for <a href="https://www.cloudsigma.com/">CloudSigma</a></li> -<li>Ensure you are using a recent JDK 6</li> -<li>Setup your project to include <code>cloudsigma-zrh</code> - -<ul> -<li>Get the dependency <code>org.apache.jclouds.provider/cloudsigma-zrh</code> using jclouds <a href="/start/install">Installation</a>.</li> -</ul> -</li> -<li>Start coding</li> + <li>Signup for <a href="https://www.cloudsigma.com/">CloudSigma</a></li> + <li>Ensure you are using a recent JDK 6</li> + <li>Setup your project to include <code class="language-plaintext highlighter-rouge">cloudsigma-zrh</code> + <ul> + <li>Get the dependency <code class="language-plaintext highlighter-rouge">org.apache.jclouds.provider/cloudsigma-zrh</code> using jclouds <a href="/start/install">Installation</a>.</li> + </ul> + </li> + <li>Start coding</li> </ol> - -<div class="highlight"><pre><code class="java"><span class="c1">// get a context with ibm that offers the portable ComputeService api</span> -<span class="n">ComputeServiceContext</span> <span class="n">context</span> <span class="o">=</span> <span class="n">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"cloudsigma-zrh"</span><span class="o">)</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// get a context with ibm that offers the portable ComputeService api</span> +<span class="nc">ComputeServiceContext</span> <span class="n">context</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"cloudsigma-zrh"</span><span class="o">)</span> <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="n">email</span><span class="o">,</span> <span class="n">password</span><span class="o">)</span> - <span class="o">.</span><span class="na">modules</span><span class="o">(</span><span class="n">ImmutableSet</span><span class="o">.<</span><span class="n">Module</span><span class="o">></span> <span class="n">of</span><span class="o">(</span><span class="k">new</span> <span class="n">Log4JLoggingModule</span><span class="o">(),</span> + <span class="o">.</span><span class="na">modules</span><span class="o">(</span><span class="nc">ImmutableSet</span><span class="o">.<</span><span class="nc">Module</span><span class="o">></span> <span class="nf">of</span><span class="o">(</span><span class="k">new</span> <span class="nc">Log4JLoggingModule</span><span class="o">(),</span> <span class="k">new</span> <span class="nf">SshjSshClientModule</span><span class="o">()))</span> - <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="n">ComputeServiceContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> + <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="nc">ComputeServiceContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> <span class="c1">// run a couple nodes accessible via group webserver</span> -<span class="n">nodes</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getComputeService</span><span class="o">().</span><span class="na">client</span><span class="o">.</span><span class="na">runNodesInGroup</span><span class="o">(</span><span class="s">"webserver"</span><span class="o">,</span> <span class="mi">2</span><span class="o">);</span> +<span class="n">nodes</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getComputeService</span><span class="o">().</span><span class="na">client</span><span class="o">.</span><span class="na">runNodesInGroup</span><span class="o">(</span><span class="s">"webserver"</span><span class="o">,</span> <span class="mi">2</span><span class="o">);</span> <span class="c1">// While the portable context is easier, you can always perform the same commands manually,</span> <span class="c1">// using the provider-specific context.</span> -<span class="n">CloudSigmaClient</span> <span class="n">client</span> <span class="o">=</span> <span class="n">CloudSigmaClient</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">cast</span><span class="o">(</span><span class="n">context</span><span class="o">.</span><span class="na">getProviderSpecificContext</span><span class="o">().</span><span class="na">getApi</span><span class="o">());</span> +<span class="nc">CloudSigmaClient</span> <span class="n">client</span> <span class="o">=</span> <span class="nc">CloudSigmaClient</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">cast</span><span class="o">(</span><span class="n">context</span><span class="o">.</span><span class="na">getProviderSpecificContext</span><span class="o">().</span><span class="na">getApi</span><span class="o">());</span> <span class="c1">// clone a drive from another drive</span> -<span class="n">DriveInfo</span> <span class="n">drive</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">cloneDrive</span><span class="o">(</span><span class="s">"source-id"</span><span class="o">,</span> <span class="s">"name"</span><span class="o">,</span> <span class="n">size</span><span class="o">(</span><span class="n">sizeInBytesYesBytes</span><span class="o">));</span> +<span class="nc">DriveInfo</span> <span class="n">drive</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">cloneDrive</span><span class="o">(</span><span class="s">"source-id"</span><span class="o">,</span> <span class="s">"name"</span><span class="o">,</span> <span class="n">size</span><span class="o">(</span><span class="n">sizeInBytesYesBytes</span><span class="o">));</span> -<span class="c1">// Note you'll have to block until the drive has no exclusive lock before starting your server. Here's how I do it:</span> -<span class="kt">boolean</span> <span class="n">success</span> <span class="o">=</span> <span class="k">new</span> <span class="n">RetryablePredicate</span><span class="o"><</span><span class="n">DriveInfo</span><span class="o">>(</span><span class="n">Predicates</span><span class="o">.</span><span class="na">not</span><span class="o">(</span><span class="k">new</span> <span class="n">DriveClaimed</span><span class="o">(</span><span class="n">client</span><span class="o">)),</span> <span class="n">maxDriveImageTime</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="n">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">).</span><span class="na">apply</span><span class="o">(</span><span class="n">drive</span><span class="o">);</span> +<span class="c1">// Note you'll have to block until the drive has no exclusive lock before starting your server. Here's how I do it:</span> +<span class="kt">boolean</span> <span class="n">success</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">RetryablePredicate</span><span class="o"><</span><span class="nc">DriveInfo</span><span class="o">>(</span><span class="nc">Predicates</span><span class="o">.</span><span class="na">not</span><span class="o">(</span><span class="k">new</span> <span class="nc">DriveClaimed</span><span class="o">(</span><span class="n">client</span><span class="o">)),</span> <span class="n">maxDriveImageTime</span><span class="o">,</span> <span class="mi">1</span><span class="o">,</span> <span class="nc">TimeUnit</span><span class="o">.</span><span class="na">SECONDS</span><span class="o">).</span><span class="na">apply</span><span class="o">(</span><span class="n">drive</span><span class="o">);</span> -<span class="c1">// After your boot disk is up, you can create a server with it as below. Names needn't be unique.:</span> -<span class="n">Server</span> <span class="n">toCreate</span> <span class="o">=</span> <span class="n">Servers</span><span class="o">.</span><span class="na">small</span><span class="o">(</span><span class="n">name</span><span class="o">,</span> <span class="n">drive</span><span class="o">.</span><span class="na">getUuid</span><span class="o">(),</span><span class="n">defaultVncPassword</span><span class="o">).</span><span class="na">mem</span><span class="o">(</span><span class="n">ramMB</span><span class="o">).</span><span class="na">cpu</span><span class="o">(</span><span class="n">mhz</span><span class="o">).</span><span class="na">build</span><span class="o">();</span> -<span class="n">ServerInfo</span> <span class="n">newServer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createServer</span><span class="o">(</span><span class="n">toCreate</span><span class="o">);</span> +<span class="c1">// After your boot disk is up, you can create a server with it as below. Names needn't be unique.:</span> +<span class="nc">Server</span> <span class="n">toCreate</span> <span class="o">=</span> <span class="nc">Servers</span><span class="o">.</span><span class="na">small</span><span class="o">(</span><span class="n">name</span><span class="o">,</span> <span class="n">drive</span><span class="o">.</span><span class="na">getUuid</span><span class="o">(),</span><span class="n">defaultVncPassword</span><span class="o">).</span><span class="na">mem</span><span class="o">(</span><span class="n">ramMB</span><span class="o">).</span><span class="na">cpu</span><span class="o">(</span><span class="n">mhz</span><span class="o">).</span><span class="na">build</span><span class="o">();</span> +<span class="nc">ServerInfo</span> <span class="n">newServer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createServer</span><span class="o">(</span><span class="n">toCreate</span><span class="o">);</span> <span class="c1">// release resources</span> -<span class="n">context</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> -</code></pre></div> - +<span class="n">context</span><span class="o">.</span><span class="na">close</span><span class="o">();</span></code></pre></figure> <ol> -<li>Run on <a href="https://www.cloudsigma.com/">CloudSigma</a></li> + <li>Run on <a href="https://www.cloudsigma.com/">CloudSigma</a></li> </ol> - <div class="row clearfix"> <div id="footer" class="col-md-12 column"> <div id="footer">
Modified: jclouds/site-content/guides/dimensiondata/index.html URL: http://svn.apache.org/viewvc/jclouds/site-content/guides/dimensiondata/index.html?rev=1923693&r1=1923692&r2=1923693&view=diff ============================================================================== --- jclouds/site-content/guides/dimensiondata/index.html (original) +++ jclouds/site-content/guides/dimensiondata/index.html Mon Feb 10 07:25:53 2025 @@ -153,32 +153,31 @@ <p>This guide will show you how to programmatically use the Dimension Data CloudControl provider in jclouds to perform common operations available in the CloudControl API.</p> -<h2>Table of Contents</h2> +<h2 id="table-of-contents">Table of Contents</h2> <ul> -<li><a href="#concepts">Concepts</a></li> -<li><a href="#getting-started">Getting Started</a></li> -<li><a href="#portable-abstraction-usage">Portable Abstraction Usage</a></li> -<li><a href="#configure-dimension-data-cloud-control-api">How to: Configure the Dimension Data Cloud Control API</a></li> -<li><a href="#build-dimension-data-cloud-control-api">How to: Build the Dimension Data Cloud Control API</a></li> -<li><a href="#how-to-list-a-data-center">How to: List a Data Center</a></li> -<li><a href="#how-to-deploy-a-network-domain">How to: Deploy a Network Domain</a></li> -<li><a href="#how-to-deploy-a-vlan">How to: Deploy a Vlan</a></li> -<li><a href="#how-to-list-available-os-images">How to: List Os Images</a></li> -<li><a href="#how-to-deploy-a-server">How to: Deploy a Server</a></li> -<li><a href="#how-to-apply-a-tag-to-an-asset">How to: Apply a Tag to an Asset</a></li> -<li><a href="#examples">Examples</a></li> -<li><a href="#support-and-feedback">Support and Feedback</a></li> + <li><a href="#concepts">Concepts</a></li> + <li><a href="#getting-started">Getting Started</a></li> + <li><a href="#portable-abstraction-usage">Portable Abstraction Usage</a></li> + <li><a href="#configure-dimension-data-cloud-control-api">How to: Configure the Dimension Data Cloud Control API</a></li> + <li><a href="#build-dimension-data-cloud-control-api">How to: Build the Dimension Data Cloud Control API</a></li> + <li><a href="#how-to-list-a-data-center">How to: List a Data Center</a></li> + <li><a href="#how-to-deploy-a-network-domain">How to: Deploy a Network Domain</a></li> + <li><a href="#how-to-deploy-a-vlan">How to: Deploy a Vlan</a></li> + <li><a href="#how-to-list-available-os-images">How to: List Os Images</a></li> + <li><a href="#how-to-deploy-a-server">How to: Deploy a Server</a></li> + <li><a href="#how-to-apply-a-tag-to-an-asset">How to: Apply a Tag to an Asset</a></li> + <li><a href="#examples">Examples</a></li> + <li><a href="#support-and-feedback">Support and Feedback</a></li> </ul> - <hr /> -<h2><a id="concepts"></a>Concepts</h2> +<h2 id="concepts"><a id="concepts"></a>Concepts</h2> <p>The jclouds library wraps the <a href="https://docs.mcp-services.net/display/DEV/Welcome+to+the+CloudControl+documentation+portal">Dimension Data CloudControl API</a>. All operations are performed over SSL and authenticated using your Dimension Data CloudControl credentials. The API can be accessed directly over the Internet from any application that can send an HTTPS request and receive an HTTPS response.</p> -<h2><a id="getting-started"></a>Getting Started</h2> +<h2 id="getting-started"><a id="getting-started"></a>Getting Started</h2> <p>Before you begin you will need to have a Dimension Data CloudControl account for your organization. The credentials will be used to authenticate against the API.</p> @@ -186,73 +185,69 @@ <p>Upgrading to later versions is planned and in progress, see <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20JCLOUDS%20AND%20labels%20%3D%20dimensiondata">here</a> for further details.</p> -<h3>Installation</h3> +<h3 id="installation">Installation</h3> <p>Please follow the installation guide <a href="https://jclouds.apache.org/start/install/">here</a>.</p> <p>The Dimension Data CloudControl provider is currently available as part of the jclouds labs project <a href="https://github.com/apache/jclouds-labs">here</a>. The Dimension Data CloudControl provider examples project is currently available as part of jclouds examples <a href="https://github.com/apache/jclouds-examples">here</a>.</p> -<h3>Authentication</h3> +<h3 id="authentication">Authentication</h3> -<p>Connecting to Dimension Data CloudControl can be done by creating a compute connection with the <code>dimensiondata-cloudcontrol</code> provider.</p> +<p>Connecting to Dimension Data CloudControl can be done by creating a compute connection with the <code class="language-plaintext highlighter-rouge">dimensiondata-cloudcontrol</code> provider.</p> <p>To build an unwrapped version of the API do the following.</p> -<div class="highlight"><pre><code class="java"><span class="n">ContextBuilder</span> <span class="n">contextBuilder</span> <span class="o">=</span> <span class="n">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"dimensiondata-cloudcontrol"</span><span class="o">);</span> -<span class="n">DimensionDataCloudControlApi</span> <span class="n">api</span> <span class="o">=</span> <span class="n">contextBuilder</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">ContextBuilder</span> <span class="n">contextBuilder</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"dimensiondata-cloudcontrol"</span><span class="o">);</span> +<span class="nc">DimensionDataCloudControlApi</span> <span class="n">api</span> <span class="o">=</span> <span class="n">contextBuilder</span> <span class="o">.</span><span class="na">endpoint</span><span class="o">(</span><span class="n">endpoint</span><span class="o">)</span> <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="n">username</span><span class="o">,</span> <span class="n">password</span><span class="o">)</span> - <span class="o">.</span><span class="na">buildApi</span><span class="o">(</span><span class="n">DimensionDataCloudControlApi</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> -</code></pre></div> - + <span class="o">.</span><span class="na">buildApi</span><span class="o">(</span><span class="nc">DimensionDataCloudControlApi</span><span class="o">.</span><span class="na">class</span><span class="o">);</span></code></pre></figure> <p><strong>Caution:</strong> You will want to ensure you follow security best practices when using credentials within your code or stored in a file.</p> -<h2><a id="portable-abstraction-usage"></a>Portable Abstraction Usage</h2> - -<h3>Terms</h3> +<h2 id="portable-abstraction-usage"><a id="portable-abstraction-usage"></a>Portable Abstraction Usage</h2> -<p>Like any cloud provider, Dimension Data CloudControl has its own set of terms in cloud computing. To abstract this into jclouds' Compute interface, these terms were associated:</p> +<h3 id="terms">Terms</h3> +<p>Like any cloud provider, Dimension Data CloudControl has its own set of terms in cloud computing. To abstract this into jcloudsâ Compute interface, these terms were associated:</p> <ul> -<li>Node - a <code>Server</code></li> -<li>Image - both <em>user-uploaded</em> and <em>provided</em> <code>CustomerImage</code> and <code>OSImage</code> are supported</li> -<li>Location - <code>Geographic Region</code> equates to a jclouds Region (AU, NA, EU etc) and <code>Datacenter</code> equates to a jclouds Zone (NA9, NA12 etc). There is further information on the Geographic Regions <a href="https://docs.mcp-services.net/display/CCD/Introduction+to+Geographic+Regions">here</a></li> -<li>Hardware - number of cores, RAM size and storage size for a given Image</li> + <li>Node - a <code class="language-plaintext highlighter-rouge">Server</code></li> + <li>Image - both <em>user-uploaded</em> and <em>provided</em> <code class="language-plaintext highlighter-rouge">CustomerImage</code> and <code class="language-plaintext highlighter-rouge">OSImage</code> are supported</li> + <li>Location - <code class="language-plaintext highlighter-rouge">Geographic Region</code> equates to a jclouds Region (AU, NA, EU etc) and <code class="language-plaintext highlighter-rouge">Datacenter</code> equates to a jclouds Zone (NA9, NA12 etc). There is further information on the Geographic Regions <a href="https://docs.mcp-services.net/display/CCD/Introduction+to+Geographic+Regions">here</a></li> + <li>Hardware - number of cores, RAM size and storage size for a given Image</li> </ul> +<h3 id="getting-started-1">Getting Started</h3> -<h3>Getting Started</h3> +<p>The implementation of the jclouds abstraction is incomplete so it is best for now to use the unwrapped <code class="language-plaintext highlighter-rouge">DimensionDataCloudControlApi</code>.</p> -<p>The implementation of the jclouds abstraction is incomplete so it is best for now to use the unwrapped <code>DimensionDataCloudControlApi</code>.</p> +<h1 id="how-tos">How Toâs</h1> -<h1>How To's</h1> - -<h2><a id="configure-dimension-data-cloud-control-api"></a>How to: Configure the Dimension Data Cloud Control API</h2> +<h2 id="how-to-configure-the-dimension-data-cloud-control-api"><a id="configure-dimension-data-cloud-control-api"></a>How to: Configure the Dimension Data Cloud Control API</h2> <p>In jclouds there are default limits in place for the length of time it takes for operations to run before a timeout occurs. In Dimension Data some of these operations take a longer period of time, so they will need to be adjusted.</p> -<p>The timeouts are defined in <code>org.jclouds.compute.reference.ComputeServiceConstants</code>.</p> +<p>The timeouts are defined in <code class="language-plaintext highlighter-rouge">org.jclouds.compute.reference.ComputeServiceConstants</code>.</p> -<p>Two useful settings to apply to avoid a timeout when shutting down and deleting a Server are <code>-Djclouds.compute.timeout.node-suspended=600000</code> and <code>-Djclouds.compute.timeout.node-terminated=600000</code>.</p> +<p>Two useful settings to apply to avoid a timeout when shutting down and deleting a Server are <code class="language-plaintext highlighter-rouge">-Djclouds.compute.timeout.node-suspended=600000</code> and <code class="language-plaintext highlighter-rouge">-Djclouds.compute.timeout.node-terminated=600000</code>.</p> -<h2><a id="build-dimension-data-cloud-control-api"></a>How to: Build the Dimension Data Cloud Control API</h2> +<h2 id="how-to-build-the-dimension-data-cloud-control-api"><a id="build-dimension-data-cloud-control-api"></a>How to: Build the Dimension Data Cloud Control API</h2> -<div class="highlight"><pre><code class="java"><span class="n">ApiContext</span><span class="o"><</span><span class="n">DimensionDataCloudControlApi</span><span class="o">></span> <span class="n">ctx</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">ApiContext</span><span class="o"><</span><span class="nc">DimensionDataCloudControlApi</span><span class="o">></span> <span class="n">ctx</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span> <span class="k">try</span> <span class="o">{</span> - <span class="n">ctx</span> <span class="o">=</span> <span class="n">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"dimensiondata-cloudcontrol"</span><span class="o">)</span> + <span class="n">ctx</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"dimensiondata-cloudcontrol"</span><span class="o">)</span> <span class="o">.</span><span class="na">endpoint</span><span class="o">(</span><span class="n">endpoint</span><span class="o">)</span> <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="n">username</span><span class="o">,</span> <span class="n">password</span><span class="o">)</span> - <span class="o">.</span><span class="na">modules</span><span class="o">(</span><span class="n">ImmutableSet</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="k">new</span> <span class="n">SLF4JLoggingModule</span><span class="o">()))</span> + <span class="o">.</span><span class="na">modules</span><span class="o">(</span><span class="nc">ImmutableSet</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="k">new</span> <span class="nc">SLF4JLoggingModule</span><span class="o">()))</span> <span class="o">.</span><span class="na">build</span><span class="o">();</span> - <span class="n">DimensionDataCloudControlApi</span> <span class="n">api</span> <span class="o">=</span> <span class="n">ctx</span><span class="o">.</span><span class="na">getApi</span><span class="o">();</span> + <span class="nc">DimensionDataCloudControlApi</span> <span class="n">api</span> <span class="o">=</span> <span class="n">ctx</span><span class="o">.</span><span class="na">getApi</span><span class="o">();</span> - <span class="cm">/*</span> -<span class="cm"> * interact with the DimensionDataCloudControlApi</span> -<span class="cm"> */</span> + <span class="cm">/* + * interact with the DimensionDataCloudControlApi + */</span> <span class="o">}</span> <span class="k">finally</span> <span class="o">{</span> @@ -260,13 +255,10 @@ The Dimension Data CloudControl provider <span class="o">{</span> <span class="n">ctx</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> <span class="o">}</span> -<span class="o">}</span> -</code></pre></div> +<span class="o">}</span></code></pre></figure> - -<h1>How To's</h1> - -<h2><a id="how-to-list-a-data-center"></a>How to: List a Data Center</h2> +<h1 id="how-tos-1">How Toâs</h1> +<h2 id="how-to-list-a-data-center"><a id="how-to-list-a-data-center"></a>How to: List a Data Center</h2> <p>The user account will be associated with one or more <a href="https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations">MCP 2.0 Data Centers</a>. A Data Center is a container for the assets that will be deployed and created by the jclouds Dimension Data CloudControl Provider.</p> @@ -274,59 +266,49 @@ The Dimension Data CloudControl provider <p>The following code example shows you how to programmatically list Data Centers:</p> -<div class="highlight"><pre><code class="java"><span class="n">PagedIterable</span><span class="o"><</span><span class="n">Datacenter</span><span class="o">></span> <span class="n">datacenters</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getInfrastructureApi</span><span class="o">().</span><span class="na">listDatacenters</span><span class="o">();</span> -</code></pre></div> - +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">PagedIterable</span><span class="o"><</span><span class="nc">Datacenter</span><span class="o">></span> <span class="n">datacenters</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getInfrastructureApi</span><span class="o">().</span><span class="na">listDatacenters</span><span class="o">();</span></code></pre></figure> <p>This responds with a paged result set containing the Data Centers visible to your organization.</p> -<h2><a id="how-to-deploy-a-network-domain"></a>How to: Deploy a Network Domain</h2> +<h2 id="how-to-deploy-a-network-domain"><a id="how-to-deploy-a-network-domain"></a>How to: Deploy a Network Domain</h2> <p>For more information on Network Domains see <a href="https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs">here</a>.</p> <p>The code to deploy a Network Domain follows.</p> -<div class="highlight"><pre><code class="java"><span class="cm">/*</span> -<span class="cm"> * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.</span> -<span class="cm"> */</span> -<span class="n">String</span> <span class="n">networkDomainId</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getNetworkApi</span><span class="o">().</span><span class="na">deployNetworkDomain</span><span class="o">(</span><span class="n">AU9</span><span class="o">,</span> <span class="s">"jclouds-example"</span><span class="o">,</span> <span class="s">"jclouds-example"</span><span class="o">,</span> <span class="s">"ESSENTIALS"</span><span class="o">);</span> -</code></pre></div> - +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="cm">/* + * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier. + */</span> +<span class="nc">String</span> <span class="n">networkDomainId</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getNetworkApi</span><span class="o">().</span><span class="na">deployNetworkDomain</span><span class="o">(</span><span class="no">AU9</span><span class="o">,</span> <span class="s">"jclouds-example"</span><span class="o">,</span> <span class="s">"jclouds-example"</span><span class="o">,</span> <span class="s">"ESSENTIALS"</span><span class="o">);</span></code></pre></figure> <p>A Network Domain deployment is an asynchronous process. We need to wait for it to complete. The Dimension Data provider -has built in google guice predicates that will block execution and check that the Network Domain's State has moved from <code>PENDING_ADD</code> to <code>NORMAL</code>.</p> - -<p>The following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the <code>NORMAL</code> state. The predicate uses the Network Domain Identifier we wish to check the state of.</p> +has built in google guice predicates that will block execution and check that the Network Domainâs State has moved from <code class="language-plaintext highlighter-rouge">PENDING_ADD</code> to <code class="language-plaintext highlighter-rouge">NORMAL</code>.</p> -<div class="highlight"><pre><code class="java"><span class="n">Predicate</span><span class="o"><</span><span class="n">String</span><span class="o">></span> <span class="n">networkDomainNormalPredicate</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">networkDomainNormalPredicate</span><span class="o">();</span> -<span class="n">networkDomainNormalPredicate</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">networkDomainId</span><span class="o">);</span> -</code></pre></div> +<p>The following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the <code class="language-plaintext highlighter-rouge">NORMAL</code> state. The predicate uses the Network Domain Identifier we wish to check the state of.</p> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">Predicate</span><span class="o"><</span><span class="nc">String</span><span class="o">></span> <span class="n">networkDomainNormalPredicate</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">networkDomainNormalPredicate</span><span class="o">();</span> +<span class="n">networkDomainNormalPredicate</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">networkDomainId</span><span class="o">);</span> </code></pre></figure> -<h2><a id="how-to-deploy-a-vlan"></a>How to: Deploy a Vlan</h2> +<h2 id="how-to-deploy-a-vlan"><a id="how-to-deploy-a-vlan"></a>How to: Deploy a Vlan</h2> <p>For more information on Vlans see <a href="https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs">here</a>.</p> <p>The code to deploy a Vlan follows.</p> -<div class="highlight"><pre><code class="java"><span class="cm">/*</span> -<span class="cm"> * Deploy the Vlan and associate it with the Network Domain that was previously created.</span> -<span class="cm"> * The Vlan is deployed with a privateIpv4BaseAddress and privateIpv4PrefixSize</span> -<span class="cm"> */</span> -<span class="n">String</span> <span class="n">vlanId</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getNetworkApi</span><span class="o">().</span><span class="na">deployVlan</span><span class="o">(</span><span class="n">networkDomainId</span><span class="o">,</span> <span class="s">"jclouds-example-vlan"</span><span class="o">,</span> <span class="s">"jclouds-example-vlan"</span><span class="o">,</span> <span class="s">"10.0.0.0"</span><span class="o">,</span> <span class="mi">24</span><span class="o">);</span> -</code></pre></div> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="cm">/* + * Deploy the Vlan and associate it with the Network Domain that was previously created. + * The Vlan is deployed with a privateIpv4BaseAddress and privateIpv4PrefixSize + */</span> +<span class="nc">String</span> <span class="n">vlanId</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getNetworkApi</span><span class="o">().</span><span class="na">deployVlan</span><span class="o">(</span><span class="n">networkDomainId</span><span class="o">,</span> <span class="s">"jclouds-example-vlan"</span><span class="o">,</span> <span class="s">"jclouds-example-vlan"</span><span class="o">,</span> <span class="s">"10.0.0.0"</span><span class="o">,</span> <span class="mi">24</span><span class="o">);</span></code></pre></figure> +<p>A Vlan deployment is an asynchronous process. We need to wait for it to complete. The Dimension Data provider has built in predicates that will block execution and check that the Vlanâs State has moved from <code class="language-plaintext highlighter-rouge">PENDING_ADD</code> to <code class="language-plaintext highlighter-rouge">NORMAL</code>.</p> -<p>A Vlan deployment is an asynchronous process. We need to wait for it to complete. The Dimension Data provider has built in predicates that will block execution and check that the Vlan's State has moved from <code>PENDING_ADD</code> to <code>NORMAL</code>.</p> +<p>Following is some example code that shows how the to use predicate suitable for asserting a Vlan state has transitioned to the <code class="language-plaintext highlighter-rouge">NORMAL</code> state. The predicate uses the Vlan Identifier we wish to check the state of.</p> -<p>Following is some example code that shows how the to use predicate suitable for asserting a Vlan state has transitioned to the <code>NORMAL</code> state. The predicate uses the Vlan Identifier we wish to check the state of.</p> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">Predicate</span><span class="o"><</span><span class="nc">String</span><span class="o">></span> <span class="n">vlanNormalPredicate</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">vlanNormalPredicate</span><span class="o">();</span> +<span class="n">vlanNormalPredicate</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">vlanId</span><span class="o">);</span></code></pre></figure> -<div class="highlight"><pre><code class="java"><span class="n">Predicate</span><span class="o"><</span><span class="n">String</span><span class="o">></span> <span class="n">vlanNormalPredicate</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">vlanNormalPredicate</span><span class="o">();</span> -<span class="n">vlanNormalPredicate</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">vlanId</span><span class="o">);</span> -</code></pre></div> - - -<h2><a id="how-to-list-available-os-images"></a>How to: List Os Images</h2> +<h2 id="how-to-list-os-images"><a id="how-to-list-available-os-images"></a>How to: List Os Images</h2> <p>For more information on Os Images see <a href="https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations#IntroductiontoMCP2.0DataCenterLocations-CloudImagesandServers">here</a>.</p> @@ -334,72 +316,60 @@ has built in google guice predicates tha <p>The code to list Os Images filtering on a datacenter follows.</p> -<div class="highlight"><pre><code class="java"><span class="n">PaginatedCollection</span><span class="o"><</span><span class="n">OsImage</span><span class="o">></span> <span class="n">osImages</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getServerImageApi</span><span class="o">().</span><span class="na">listOsImages</span><span class="o">(</span><span class="n">DatacenterIdListFilters</span><span class="o">.</span><span class="na">Builder</span><span class="o">.</span><span class="na">datacenterId</span><span class="o">(</span><span class="s">"AU9"</span><span class="o">));</span> -</code></pre></div> - +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">PaginatedCollection</span><span class="o"><</span><span class="nc">OsImage</span><span class="o">></span> <span class="n">osImages</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getServerImageApi</span><span class="o">().</span><span class="na">listOsImages</span><span class="o">(</span><span class="nc">DatacenterIdListFilters</span><span class="o">.</span><span class="na">Builder</span><span class="o">.</span><span class="na">datacenterId</span><span class="o">(</span><span class="s">"AU9"</span><span class="o">));</span></code></pre></figure> -<h2><a id="how-to-deploy-a-server"></a>How to: Deploy a Server</h2> +<h2 id="how-to-deploy-a-server"><a id="how-to-deploy-a-server"></a>How to: Deploy a Server</h2> <p>For more information on Deploying Servers see <a href="https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Server+Provisioning%2C+OS+Customization%2C+and+Best+Practices">here</a>.</p> <p>The following example shows you how to create a new server in the virtual datacenter created above:</p> -<div class="highlight"><pre><code class="java"><span class="cm">/*</span> -<span class="cm"> * The Server that gets deployed will have some network configuration. It gets assigned to the Vlan that was created previously.</span> -<span class="cm"> */</span> -<span class="n">NetworkInfo</span> <span class="n">networkInfo</span> <span class="o">=</span> <span class="n">NetworkInfo</span> - <span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">networkDomainId</span><span class="o">,</span> <span class="n">NIC</span><span class="o">.</span><span class="na">builder</span><span class="o">().</span><span class="na">vlanId</span><span class="o">(</span><span class="n">vlanId</span><span class="o">).</span><span class="na">build</span><span class="o">(),</span> <span class="n">Lists</span><span class="o">.<</span><span class="n">NIC</span><span class="o">></span><span class="n">newArrayList</span><span class="o">());</span> -<span class="cm">/*</span> -<span class="cm"> * The Server that gets deployed will have some additional disk configuration.</span> -<span class="cm"> */</span> -<span class="n">List</span><span class="o"><</span><span class="n">Disk</span><span class="o">></span> <span class="n">disks</span> <span class="o">=</span> <span class="n">ImmutableList</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="n">Disk</span><span class="o">.</span><span class="na">builder</span><span class="o">().</span><span class="na">scsiId</span><span class="o">(</span><span class="mi">0</span><span class="o">).</span><span class="na">speed</span><span class="o">(</span><span class="s">"STANDARD"</span><span class="o">).</span><span class="na">build</span><span class="o">());</span> - -<span class="cm">/*</span> -<span class="cm"> * The Server is deployed using the OS Image we selected,</span> -<span class="cm"> * a flag to signal if we want it started or not, an admin pass and the additional configuration we built.</span> -<span class="cm"> */</span> -<span class="n">String</span> <span class="n">serverId</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getServerApi</span><span class="o">()</span> - <span class="o">.</span><span class="na">deployServer</span><span class="o">(</span><span class="s">"jclouds-server"</span><span class="o">,</span> <span class="n">imageId</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="n">networkInfo</span><span class="o">,</span> <span class="s">"P$$ssWwrrdGoDd!"</span><span class="o">,</span> <span class="n">disks</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span> -</code></pre></div> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="cm">/* + * The Server that gets deployed will have some network configuration. It gets assigned to the Vlan that was created previously. + */</span> +<span class="nc">NetworkInfo</span> <span class="n">networkInfo</span> <span class="o">=</span> <span class="nc">NetworkInfo</span> + <span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">networkDomainId</span><span class="o">,</span> <span class="no">NIC</span><span class="o">.</span><span class="na">builder</span><span class="o">().</span><span class="na">vlanId</span><span class="o">(</span><span class="n">vlanId</span><span class="o">).</span><span class="na">build</span><span class="o">(),</span> <span class="nc">Lists</span><span class="o">.<</span><span class="no">NIC</span><span class="o">></span><span class="n">newArrayList</span><span class="o">());</span> +<span class="cm">/* + * The Server that gets deployed will have some additional disk configuration. + */</span> +<span class="nc">List</span><span class="o"><</span><span class="nc">Disk</span><span class="o">></span> <span class="n">disks</span> <span class="o">=</span> <span class="nc">ImmutableList</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="nc">Disk</span><span class="o">.</span><span class="na">builder</span><span class="o">().</span><span class="na">scsiId</span><span class="o">(</span><span class="mi">0</span><span class="o">).</span><span class="na">speed</span><span class="o">(</span><span class="s">"STANDARD"</span><span class="o">).</span><span class="na">build</span><span class="o">());</span> + +<span class="cm">/* + * The Server is deployed using the OS Image we selected, + * a flag to signal if we want it started or not, an admin pass and the additional configuration we built. + */</span> +<span class="nc">String</span> <span class="n">serverId</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getServerApi</span><span class="o">()</span> + <span class="o">.</span><span class="na">deployServer</span><span class="o">(</span><span class="s">"jclouds-server"</span><span class="o">,</span> <span class="n">imageId</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="n">networkInfo</span><span class="o">,</span> <span class="s">"P$$ssWwrrdGoDd!"</span><span class="o">,</span> <span class="n">disks</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span></code></pre></figure> +<p>A Server deployment is an asynchronous process. We need to wait for it to complete. The Dimension Data provider has built in predicates that will block execution and check that the Serverâs State has moved from <code class="language-plaintext highlighter-rouge">PENDING_ADD</code> to <code class="language-plaintext highlighter-rouge">NORMAL</code>. This piece of sample code also waits for the Server to be started.</p> -<p> A Server deployment is an asynchronous process. We need to wait for it to complete. The Dimension Data provider has built in predicates that will block execution and check that the Server's State has moved from <code>PENDING_ADD</code> to <code>NORMAL</code>. This piece of sample code also waits for the Server to be started.</p> - -<div class="highlight"><pre><code class="java"><span class="kd">static</span> <span class="kt">void</span> <span class="nf">waitForServerStartedAndNormal</span><span class="o">(</span><span class="n">String</span> <span class="n">serverId</span><span class="o">)</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="kd">static</span> <span class="kt">void</span> <span class="nf">waitForServerStartedAndNormal</span><span class="o">(</span><span class="nc">String</span> <span class="n">serverId</span><span class="o">)</span> <span class="o">{</span> - <span class="n">Predicate</span><span class="o"><</span><span class="n">String</span><span class="o">></span> <span class="n">serverStartedPredicate</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">serverStartedPredicate</span><span class="o">();</span> - <span class="n">Predicate</span><span class="o"><</span><span class="n">String</span><span class="o">></span> <span class="n">serverNormalPredicate</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">serverNormalPredicate</span><span class="o">();</span> + <span class="nc">Predicate</span><span class="o"><</span><span class="nc">String</span><span class="o">></span> <span class="n">serverStartedPredicate</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">serverStartedPredicate</span><span class="o">();</span> + <span class="nc">Predicate</span><span class="o"><</span><span class="nc">String</span><span class="o">></span> <span class="n">serverNormalPredicate</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">serverNormalPredicate</span><span class="o">();</span> <span class="c1">// Wait for Server to be started and NORMAL</span> <span class="n">serverStartedPredicate</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">serverId</span><span class="o">);</span> <span class="n">serverNormalPredicate</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">serverId</span><span class="o">);</span> -<span class="o">}</span> -</code></pre></div> +<span class="o">}</span></code></pre></figure> - -<h2><a id="how-to-apply-a-tag-to-an-asset"></a>How to: Apply a Tag to an Asset</h2> +<h2 id="how-to-apply-a-tag-to-an-asset"><a id="how-to-apply-a-tag-to-an-asset"></a>How to: Apply a Tag to an Asset</h2> <p>Dimension Data CloudControl allows for Tags to be applied to assets. There are two parts to the tagging process, first a Tag Key needs to be created, second the Tag Key is applied to an asset.</p> <p>The following is code to create a Tag Key. We will use the Tag Key when we are tagging the assets that are created.</p> -<div class="highlight"><pre><code class="java"><span class="n">String</span> <span class="n">tagKeyId</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getTagApi</span><span class="o">().</span><span class="na">createTagKey</span><span class="o">(</span><span class="s">"jclouds"</span><span class="o">,</span> <span class="s">"owner of the asset"</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span> -</code></pre></div> - +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="nc">String</span> <span class="n">tagKeyId</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="na">getTagApi</span><span class="o">().</span><span class="na">createTagKey</span><span class="o">(</span><span class="s">"jclouds"</span><span class="o">,</span> <span class="s">"owner of the asset"</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span></code></pre></figure> <p>Follows is the sample code for applying a Tag to the Server. We use AssetType SERVER. Pass in the tagKeyId and a value that we want to associate, in this case jclouds.</p> -<div class="highlight"><pre><code class="java"><span class="n">api</span><span class="o">.</span><span class="na">getTagApi</span><span class="o">().</span><span class="na">applyTags</span><span class="o">(</span><span class="n">serverId</span><span class="o">,</span> <span class="s">"SERVER"</span><span class="o">,</span> <span class="n">Collections</span><span class="o">.</span><span class="na">singletonList</span><span class="o">(</span><span class="n">TagInfo</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">tagKeyId</span><span class="o">,</span> <span class="s">"jclouds"</span><span class="o">)));</span> -</code></pre></div> - +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">api</span><span class="o">.</span><span class="na">getTagApi</span><span class="o">().</span><span class="na">applyTags</span><span class="o">(</span><span class="n">serverId</span><span class="o">,</span> <span class="s">"SERVER"</span><span class="o">,</span> <span class="nc">Collections</span><span class="o">.</span><span class="na">singletonList</span><span class="o">(</span><span class="nc">TagInfo</span><span class="o">.</span><span class="na">create</span><span class="o">(</span><span class="n">tagKeyId</span><span class="o">,</span> <span class="s">"jclouds"</span><span class="o">)));</span></code></pre></figure> -<p>The full set of <code>AssetTypes</code> are <code>SERVER</code>, <code>NETWORK_DOMAIN</code>, <code>VLAN</code>, <code>CUSTOMER_IMAGE</code>, <code>PUBLIC_IP_BLOCK</code> or <code>ACCOUNT</code>.</p> - -<h2><a id="examples"></a>Examples:</h2> +<p>The full set of <code class="language-plaintext highlighter-rouge">AssetTypes</code> are <code class="language-plaintext highlighter-rouge">SERVER</code>, <code class="language-plaintext highlighter-rouge">NETWORK_DOMAIN</code>, <code class="language-plaintext highlighter-rouge">VLAN</code>, <code class="language-plaintext highlighter-rouge">CUSTOMER_IMAGE</code>, <code class="language-plaintext highlighter-rouge">PUBLIC_IP_BLOCK</code> or <code class="language-plaintext highlighter-rouge">ACCOUNT</code>.</p> +<h2 id="examples"><a id="examples"></a>Examples:</h2> <p>See jclouds examples repository <a href="https://github.com/apache/jclouds-examples/tree/master/dimensiondata/src/main/java/org/jclouds/examples/dimensiondata/cloudcontrol">here</a>.</p> -<h2><a id="support-and-feedback"></a>Support and Feedback</h2> - +<h2 id="support-and-feedback"><a id="support-and-feedback"></a>Support and Feedback</h2> <p>Your feedback is welcome! If you have comments or questions regarding using Dimension Data CloudControl via jclouds, please reach out to us at <a href="https://jclouds.apache.org/community/">jclouds community</a>.</p> <div class="row clearfix"> Modified: jclouds/site-content/guides/docker/index.html URL: http://svn.apache.org/viewvc/jclouds/site-content/guides/docker/index.html?rev=1923693&r1=1923692&r2=1923693&view=diff ============================================================================== --- jclouds/site-content/guides/docker/index.html (original) +++ jclouds/site-content/guides/docker/index.html Mon Feb 10 07:25:53 2025 @@ -155,44 +155,40 @@ providers, it supports the same portable <p><img src="/img/jclouds-docker.png" alt="jclouds docker architecture" /></p> <p>In order to mimic the behavior of the nodes that jclouds is able to manage, we need to make the Docker containers similar to any other VM. -Fortunately, to have that is not much work: the only prerequisite is that the node needs to be sshâable. +Fortunately, to have that is not much work: the only prerequisite is that the node needs to be sshâable. This involves <a href="https://docs.docker.com/examples/running_ssh_service/">dockerizing an SSH daemon service</a>.</p> -<h3>Give it a try!</h3> +<h3 id="give-it-a-try">Give it a try!</h3> <ul> -<li>Install <a href="https://docs.docker.com/installation/">Docker</a></li> -<li>Ensure you are using a recent JDK 7</li> -<li>Setup your project to include <code>docker</code> - -<ul> -<li>Get the dependency <code>org.apache.jclouds.labs/docker</code> using jclouds <a href="/start/install">Installation</a>.</li> -</ul> -</li> -<li>Start coding</li> + <li>Install <a href="https://docs.docker.com/installation/">Docker</a></li> + <li>Ensure you are using a recent JDK 7</li> + <li>Setup your project to include <code class="language-plaintext highlighter-rouge">docker</code> + <ul> + <li>Get the dependency <code class="language-plaintext highlighter-rouge">org.apache.jclouds.labs/docker</code> using jclouds <a href="/start/install">Installation</a>.</li> + </ul> + </li> + <li>Start coding</li> </ul> - -<div class="highlight"><pre><code class="java"><span class="c1">// get a context with docker that offers the portable ComputeService api</span> -<span class="n">ComputeServiceContext</span> <span class="n">context</span> <span class="o">=</span> <span class="n">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"docker"</span><span class="o">)</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// get a context with docker that offers the portable ComputeService api</span> +<span class="nc">ComputeServiceContext</span> <span class="n">context</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"docker"</span><span class="o">)</span> <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="n">email</span><span class="o">,</span> <span class="n">password</span><span class="o">)</span> - <span class="o">.</span><span class="na">modules</span><span class="o">(</span><span class="n">ImmutableSet</span><span class="o">.<</span><span class="n">Module</span><span class="o">></span> <span class="n">of</span><span class="o">(</span><span class="k">new</span> <span class="n">Log4JLoggingModule</span><span class="o">(),</span> + <span class="o">.</span><span class="na">modules</span><span class="o">(</span><span class="nc">ImmutableSet</span><span class="o">.<</span><span class="nc">Module</span><span class="o">></span> <span class="nf">of</span><span class="o">(</span><span class="k">new</span> <span class="nc">Log4JLoggingModule</span><span class="o">(),</span> <span class="k">new</span> <span class="nf">SshjSshClientModule</span><span class="o">()))</span> - <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="n">ComputeServiceContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> -<span class="n">ComputeService</span> <span class="n">client</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getComputeService</span><span class="o">();</span> + <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="nc">ComputeServiceContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> +<span class="nc">ComputeService</span> <span class="n">client</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getComputeService</span><span class="o">();</span> -<span class="n">String</span> <span class="n">sshableImageId</span> <span class="o">=</span> <span class="s">"your-sshable-image-id"</span><span class="o">;</span> <span class="c1">// this can be obtained using `docker images --no-trunc` command</span> -<span class="n">Template</span> <span class="n">template</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">templateBuilder</span><span class="o">().</span><span class="na">imageId</span><span class="o">(</span><span class="n">sshableImageId</span><span class="o">).</span><span class="na">build</span><span class="o">();</span> +<span class="nc">String</span> <span class="n">sshableImageId</span> <span class="o">=</span> <span class="s">"your-sshable-image-id"</span><span class="o">;</span> <span class="c1">// this can be obtained using `docker images --no-trunc` command</span> +<span class="nc">Template</span> <span class="n">template</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">templateBuilder</span><span class="o">().</span><span class="na">imageId</span><span class="o">(</span><span class="n">sshableImageId</span><span class="o">).</span><span class="na">build</span><span class="o">();</span> <span class="c1">// run a couple nodes accessible via group container</span> -<span class="n">Set</span><span class="o"><?</span> <span class="kd">extends</span> <span class="n">NodeMetadata</span><span class="o">></span> <span class="n">nodes</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">runNodesInGroup</span><span class="o">(</span><span class="s">"container"</span><span class="o">,</span> <span class="mi">2</span><span class="o">,</span> <span class="n">template</span><span class="o">);</span> +<span class="nc">Set</span><span class="o"><?</span> <span class="kd">extends</span> <span class="nc">NodeMetadata</span><span class="o">></span> <span class="n">nodes</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">runNodesInGroup</span><span class="o">(</span><span class="s">"container"</span><span class="o">,</span> <span class="mi">2</span><span class="o">,</span> <span class="n">template</span><span class="o">);</span> <span class="c1">// release resources</span> -<span class="n">context</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> -</code></pre></div> - +<span class="n">context</span><span class="o">.</span><span class="na">close</span><span class="o">();</span></code></pre></figure> -<p>As for any other jclouds API, this code will create for you 2 nodes in the group <code>container</code> using the provided template. +<p>As for any other jclouds API, this code will create for you 2 nodes in the group <code class="language-plaintext highlighter-rouge">container</code> using the provided template. The only (big) difference is that jclouds-docker will spin up 2 docker containers for you, instead of being 2 plain-old virtual machines, as it generally happens for the other cloud providers.</p> <div class="row clearfix"> Modified: jclouds/site-content/guides/filesystem/index.html URL: http://svn.apache.org/viewvc/jclouds/site-content/guides/filesystem/index.html?rev=1923693&r1=1923692&r2=1923693&view=diff ============================================================================== --- jclouds/site-content/guides/filesystem/index.html (original) +++ jclouds/site-content/guides/filesystem/index.html Mon Feb 10 07:25:53 2025 @@ -150,58 +150,53 @@ <h1>File System: Getting Started Guide</h1> </div> <ol> -<li>Setup your project to include filesystem - -<ul> -<li>Get the dependency <code>org.apache.jclouds.api/filesystem</code> using jclouds <a href="/start/install">Installation</a>.</li> -</ul> -</li> -<li>Start coding</li> + <li>Setup your project to include filesystem + <ul> + <li>Get the dependency <code class="language-plaintext highlighter-rouge">org.apache.jclouds.api/filesystem</code> using jclouds <a href="/start/install">Installation</a>.</li> + </ul> + </li> + <li>Start coding</li> </ol> - -<div class="highlight"><pre><code class="java"><span class="c1">// setup where the provider must store the files</span> -<span class="n">Properties</span> <span class="n">properties</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Properties</span><span class="o">();</span> -<span class="n">properties</span><span class="o">.</span><span class="na">setProperty</span><span class="o">(</span><span class="n">FilesystemConstants</span><span class="o">.</span><span class="na">PROPERTY_BASEDIR</span><span class="o">,</span> <span class="s">"./local/filesystemstorage"</span><span class="o">);</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// setup where the provider must store the files</span> +<span class="nc">Properties</span> <span class="n">properties</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Properties</span><span class="o">();</span> +<span class="n">properties</span><span class="o">.</span><span class="na">setProperty</span><span class="o">(</span><span class="nc">FilesystemConstants</span><span class="o">.</span><span class="na">PROPERTY_BASEDIR</span><span class="o">,</span> <span class="s">"./local/filesystemstorage"</span><span class="o">);</span> <span class="c1">// setup the container name used by the provider (like bucket in S3)</span> -<span class="n">String</span> <span class="n">containerName</span> <span class="o">=</span> <span class="s">"test-container"</span><span class="o">;</span> +<span class="nc">String</span> <span class="n">containerName</span> <span class="o">=</span> <span class="s">"test-container"</span><span class="o">;</span> <span class="c1">// get a context with filesystem that offers the portable BlobStore api</span> -<span class="n">BlobStoreContext</span> <span class="n">context</span> <span class="o">=</span> <span class="n">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"filesystem"</span><span class="o">)</span> +<span class="nc">BlobStoreContext</span> <span class="n">context</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"filesystem"</span><span class="o">)</span> <span class="o">.</span><span class="na">overrides</span><span class="o">(</span><span class="n">properties</span><span class="o">)</span> - <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="n">BlobStoreContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> + <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="nc">BlobStoreContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> <span class="c1">// create a container in the default location</span> -<span class="n">BlobStore</span> <span class="n">blobStore</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getBlobStore</span><span class="o">();</span> +<span class="nc">BlobStore</span> <span class="n">blobStore</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getBlobStore</span><span class="o">();</span> <span class="n">blobStore</span><span class="o">.</span><span class="na">createContainerInLocation</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="n">containerName</span><span class="o">);</span> <span class="c1">// add blob</span> -<span class="n">Blob</span> <span class="n">blob</span> <span class="o">=</span> <span class="n">blobStore</span><span class="o">.</span><span class="na">newBlob</span><span class="o">(</span><span class="s">"test"</span><span class="o">);</span> -<span class="n">blob</span><span class="o">.</span><span class="na">setPayload</span><span class="o">(</span><span class="s">"test data"</span><span class="o">);</span> +<span class="nc">Blob</span> <span class="n">blob</span> <span class="o">=</span> <span class="n">blobStore</span><span class="o">.</span><span class="na">newBlob</span><span class="o">(</span><span class="s">"test"</span><span class="o">);</span> +<span class="n">blob</span><span class="o">.</span><span class="na">setPayload</span><span class="o">(</span><span class="s">"test data"</span><span class="o">);</span> <span class="n">blobStore</span><span class="o">.</span><span class="na">putBlob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="n">blob</span><span class="o">);</span> <span class="c1">// retrieve blob</span> -<span class="n">Blob</span> <span class="n">blobRetrieved</span> <span class="o">=</span> <span class="n">blobStore</span><span class="o">.</span><span class="na">getBlob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="s">"test"</span><span class="o">);</span> +<span class="nc">Blob</span> <span class="n">blobRetrieved</span> <span class="o">=</span> <span class="n">blobStore</span><span class="o">.</span><span class="na">getBlob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="s">"test"</span><span class="o">);</span> <span class="c1">// delete blob</span> -<span class="n">blobStore</span><span class="o">.</span><span class="na">removeBlob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="s">"test"</span><span class="o">);</span> +<span class="n">blobStore</span><span class="o">.</span><span class="na">removeBlob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="s">"test"</span><span class="o">);</span> <span class="c1">//close context</span> -<span class="n">context</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> -</code></pre></div> - +<span class="n">context</span><span class="o">.</span><span class="na">close</span><span class="o">();</span></code></pre></figure> -<h3>Tips & tricks</h3> +<h3 id="tips--tricks">Tips & tricks</h3> <ul> -<li>Container is an additional subfolder appended to FilesystemConstants.PROPERTY_BASEDIR. + <li>Container is an additional subfolder appended to FilesystemConstants.PROPERTY_BASEDIR. All blobs are stored inside this folder. So its value follows common rules for allowed directory names.</li> -<li> Blob key represent the name of the file stored in the filesystem. It can contains path separator. -In this case, the entire directory structure is generated, starting from the container path. - Also in this case, common rules for allowed file names must be followed.</li> + <li>Blob key represent the name of the file stored in the filesystem. It can contains path separator. + In this case, the entire directory structure is generated, starting from the container path. +Also in this case, common rules for allowed file names must be followed.</li> </ul> - <div class="row clearfix"> <div id="footer" class="col-md-12 column"> <div id="footer"> Modified: jclouds/site-content/guides/glacier/index.html URL: http://svn.apache.org/viewvc/jclouds/site-content/guides/glacier/index.html?rev=1923693&r1=1923692&r2=1923693&view=diff ============================================================================== --- jclouds/site-content/guides/glacier/index.html (original) +++ jclouds/site-content/guides/glacier/index.html Mon Feb 10 07:25:53 2025 @@ -151,36 +151,33 @@ </div> <p>Amazon Glacier is a cold storage service which can be used as an alternative to traditional storage services for data archiving and backup. It is optimized for data infrequently accessed and offers nice scalability and an extremely low cost. There is no limit to the amount of data you can store, and you only pay for what you use.</p> -<p>The main downside of Glacier is its very long retrieval time. Once you've requested your data, it will take several hours until it's ready to be downloaded.</p> +<p>The main downside of Glacier is its very long retrieval time. Once youâve requested your data, it will take several hours until itâs ready to be downloaded.</p> <p>You can find more information in the Amazon Glacier <a href="https://aws.amazon.com/glacier/">documentation</a>.</p> -<h2>Terminology</h2> - +<h2 id="terminology">Terminology</h2> <p>The following resources are defined by the Glacier API:</p> -<h5>Vault</h5> - +<h5 id="vault">Vault</h5> <p>A vault defines a container in a region for a collection of archives and is associated to an account. Each vault can store an unlimited amount of archives but cannot contain other vaults.</p> -<h5>Archive</h5> - +<h5 id="archive">Archive</h5> <p>Archives are the basic storage unit in Glacier. An archive has an unique identifier and an optional description. The identifier is both set and returned by Amazon Glacier when the archive is uploaded.</p> <p><strong>Note</strong>: When uploading a blob to a Glacier provider using the BlobStore interface, the blob name will be ignored. When retrieving a blob using the BlobStore interface, the blob name will be the archive identifier.</p> -<h5>Multipart upload</h5> - +<h5 id="multipart-upload">Multipart upload</h5> <p>In order to upload an archive in parts, we need to create a new multipart upload. Each multipart upload is associated with a single vault.</p> -<h5>Job</h5> - +<h5 id="job">Job</h5> <p>A Job represents a request we send to Glacier to read data. When a job finishes it produces an output that we can read. The estimated time to finish a job is ~4 hours.</p> -<p>There are two different kinds of jobs: -* Inventory retrieval: Used to list the archives within a vault. -* Archive retrieval: Used to read an archive.</p> +<p>There are two different kinds of jobs:</p> +<ul> + <li>Inventory retrieval: Used to list the archives within a vault.</li> + <li>Archive retrieval: Used to read an archive.</li> +</ul> <p><strong>Note</strong>: Inventories are updated only once every 24 hours. The archive list in an inventory may be outdated.</p> @@ -188,84 +185,74 @@ that we can read. The estimated time to <p>At the time of writing only polling is supported by the jclouds Glacier provider.</p> -<h2>BlobStore View</h2> - -<p>Due to the Glacier's nature, many of the BlobStore view methods are will be very slow. Many Glacier users maintain their own application index of Glacier archives to this. In addition, you can interrupt long-running Glacier operations by sending an interrupt to the thread and catching the resulting exception.</p> - -<h2>Using Glacier</h2> +<h2 id="blobstore-view">BlobStore View</h2> +<p>Due to the Glacierâs nature, many of the BlobStore view methods are will be very slow. Many Glacier users maintain their own application index of Glacier archives to this. In addition, you can interrupt long-running Glacier operations by sending an interrupt to the thread and catching the resulting exception.</p> +<h2 id="using-glacier">Using Glacier</h2> <p>These snippets are taken from the jclouds-examples repository, you will find the full code in it.</p> -<h3>Basic usage of the BlobStore view</h3> +<h3 id="basic-usage-of-the-blobstore-view">Basic usage of the BlobStore view</h3> -<div class="highlight"><pre><code class="java"><span class="c1">// get a context with amazon that offers the portable BlobStore API</span> -<span class="n">BlobStoreContext</span> <span class="n">context</span> <span class="o">=</span> <span class="n">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"glacier"</span><span class="o">)</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// get a context with amazon that offers the portable BlobStore API</span> +<span class="nc">BlobStoreContext</span> <span class="n">context</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"glacier"</span><span class="o">)</span> <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="n">accesskeyid</span><span class="o">,</span> <span class="n">secretkey</span><span class="o">)</span> - <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="n">BlobStoreContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> + <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="nc">BlobStoreContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> <span class="k">try</span> <span class="o">{</span> <span class="c1">// create a container in the default location</span> - <span class="n">BlobStore</span> <span class="n">blobstore</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getBlobStore</span><span class="o">();</span> + <span class="nc">BlobStore</span> <span class="n">blobstore</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getBlobStore</span><span class="o">();</span> <span class="n">blobstore</span><span class="o">.</span><span class="na">createContainerInLocation</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="n">containerName</span><span class="o">);</span> <span class="c1">// add blob</span> - <span class="n">ByteSource</span> <span class="n">payload</span> <span class="o">=</span> <span class="n">ByteSource</span><span class="o">.</span><span class="na">wrap</span><span class="o">(</span><span class="s">"data"</span><span class="o">.</span><span class="na">getBytes</span><span class="o">(</span><span class="n">Charsets</span><span class="o">.</span><span class="na">UTF_8</span><span class="o">));</span> - <span class="n">Blob</span> <span class="n">blob</span> <span class="o">=</span> <span class="n">blobstore</span><span class="o">.</span><span class="na">blobBuilder</span><span class="o">(</span><span class="s">"ignored"</span><span class="o">)</span> <span class="c1">// The blob name is ignored in Glacier</span> + <span class="nc">ByteSource</span> <span class="n">payload</span> <span class="o">=</span> <span class="nc">ByteSource</span><span class="o">.</span><span class="na">wrap</span><span class="o">(</span><span class="s">"data"</span><span class="o">.</span><span class="na">getBytes</span><span class="o">(</span><span class="nc">Charsets</span><span class="o">.</span><span class="na">UTF_8</span><span class="o">));</span> + <span class="nc">Blob</span> <span class="n">blob</span> <span class="o">=</span> <span class="n">blobstore</span><span class="o">.</span><span class="na">blobBuilder</span><span class="o">(</span><span class="s">"ignored"</span><span class="o">)</span> <span class="c1">// The blob name is ignored in Glacier</span> <span class="o">.</span><span class="na">payload</span><span class="o">(</span><span class="n">payload</span><span class="o">)</span> <span class="o">.</span><span class="na">contentLength</span><span class="o">(</span><span class="n">payload</span><span class="o">.</span><span class="na">size</span><span class="o">())</span> <span class="o">.</span><span class="na">build</span><span class="o">();</span> - <span class="n">String</span> <span class="n">key</span> <span class="o">=</span> <span class="n">blobstore</span><span class="o">.</span><span class="na">putBlob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="n">blob</span><span class="o">);</span> + <span class="nc">String</span> <span class="n">key</span> <span class="o">=</span> <span class="n">blobstore</span><span class="o">.</span><span class="na">putBlob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="n">blob</span><span class="o">);</span> <span class="o">}</span> <span class="k">finally</span> <span class="o">{</span> <span class="n">context</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> -<span class="o">}</span> -</code></pre></div> - +<span class="o">}</span></code></pre></figure> -<h3>Basic usage of the provider API</h3> +<h3 id="basic-usage-of-the-provider-api">Basic usage of the provider API</h3> -<div class="highlight"><pre><code class="java"><span class="c1">// get a context with amazon that offers the portable BlobStore API</span> -<span class="n">BlobStoreContext</span> <span class="n">context</span> <span class="o">=</span> <span class="n">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"glacier"</span><span class="o">)</span> +<figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="c1">// get a context with amazon that offers the portable BlobStore API</span> +<span class="nc">BlobStoreContext</span> <span class="n">context</span> <span class="o">=</span> <span class="nc">ContextBuilder</span><span class="o">.</span><span class="na">newBuilder</span><span class="o">(</span><span class="s">"glacier"</span><span class="o">)</span> <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="n">accesskeyid</span><span class="o">,</span> <span class="n">secretkey</span><span class="o">)</span> - <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="n">BlobStoreContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> + <span class="o">.</span><span class="na">buildView</span><span class="o">(</span><span class="nc">BlobStoreContext</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> <span class="k">try</span> <span class="o">{</span> <span class="c1">// When you need access to glacier specific features,</span> <span class="c1">// use the provider context</span> - <span class="n">GlacierClient</span> <span class="n">client</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">unwrapApi</span><span class="o">(</span><span class="n">GlacierClient</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> + <span class="nc">GlacierClient</span> <span class="n">client</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">unwrapApi</span><span class="o">(</span><span class="nc">GlacierClient</span><span class="o">.</span><span class="na">class</span><span class="o">);</span> - <span class="n">JobRequest</span> <span class="n">archiveRetrievalJobRequest</span> <span class="o">=</span> <span class="n">ArchiveRetrievalJobRequest</span><span class="o">.</span><span class="na">builder</span><span class="o">()</span> + <span class="nc">JobRequest</span> <span class="n">archiveRetrievalJobRequest</span> <span class="o">=</span> <span class="nc">ArchiveRetrievalJobRequest</span><span class="o">.</span><span class="na">builder</span><span class="o">()</span> <span class="o">.</span><span class="na">archiveId</span><span class="o">(</span><span class="n">key</span><span class="o">)</span> - <span class="o">.</span><span class="na">description</span><span class="o">(</span><span class="s">"retrieval job"</span><span class="o">)</span> + <span class="o">.</span><span class="na">description</span><span class="o">(</span><span class="s">"retrieval job"</span><span class="o">)</span> <span class="o">.</span><span class="na">build</span><span class="o">();</span> - <span class="n">String</span> <span class="n">jobId</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">initiateJob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="n">archiveRetrievalJobRequest</span><span class="o">);</span> + <span class="nc">String</span> <span class="n">jobId</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">initiateJob</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="n">archiveRetrievalJobRequest</span><span class="o">);</span> <span class="c1">// Retrieve output when the job is done</span> - <span class="n">Payload</span> <span class="n">payload</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">getJobOutput</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="n">jobId</span><span class="o">);</span> - <span class="kt">byte</span><span class="o">[]</span> <span class="n">data</span> <span class="o">=</span> <span class="n">ByteStreams2</span><span class="o">.</span><span class="na">toByteArrayAndClose</span><span class="o">(</span><span class="n">payload</span><span class="o">.</span><span class="na">openStream</span><span class="o">());</span> + <span class="nc">Payload</span> <span class="n">payload</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">getJobOutput</span><span class="o">(</span><span class="n">containerName</span><span class="o">,</span> <span class="n">jobId</span><span class="o">);</span> + <span class="kt">byte</span><span class="o">[]</span> <span class="n">data</span> <span class="o">=</span> <span class="nc">ByteStreams2</span><span class="o">.</span><span class="na">toByteArrayAndClose</span><span class="o">(</span><span class="n">payload</span><span class="o">.</span><span class="na">openStream</span><span class="o">());</span> <span class="o">}</span> <span class="k">finally</span> <span class="o">{</span> <span class="n">context</span><span class="o">.</span><span class="na">close</span><span class="o">();</span> -<span class="o">}</span> -</code></pre></div> - - -<h2>Known Issues</h2> +<span class="o">}</span></code></pre></figure> +<h2 id="known-issues">Known Issues</h2> <ul> -<li>Only the us-east-1 region is supported by our signer. <a href="https://issues.apache.org/jira/browse/JCLOUDS-659">JCLOUDS_659</a></li> -<li>Due to an issue with java 6 only archives up to 1GB are supported using uploadArchive operation. You still can download bigger files using multipart upload. This will be fixed in jclouds 2.0.</li> + <li>Only the us-east-1 region is supported by our signer. <a href="https://issues.apache.org/jira/browse/JCLOUDS-659">JCLOUDS_659</a></li> + <li>Due to an issue with java 6 only archives up to 1GB are supported using uploadArchive operation. You still can download bigger files using multipart upload. This will be fixed in jclouds 2.0.</li> </ul> - -<h2>Resources</h2> - +<h2 id="resources">Resources</h2> <ul> -<li><a href="https://aws.amazon.com/glacier/">Glacier information</a></li> -<li><a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-api.html">API reference</a></li> -<li><a href="https://aws.amazon.com/glacier/faqs/#data-inventories">About Inventories</a></li> -<li><a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html">Job options</a></li> + <li><a href="https://aws.amazon.com/glacier/">Glacier information</a></li> + <li><a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-api.html">API reference</a></li> + <li><a href="https://aws.amazon.com/glacier/faqs/#data-inventories">About Inventories</a></li> + <li><a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html">Job options</a></li> </ul> - <div class="row clearfix"> <div id="footer" class="col-md-12 column"> <div id="footer">
