You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2019/08/23 10:48:16 UTC

svn commit: r1865741 - in /jclouds/site-content: ./ blog/ blog/2018/01/15/ blog/2018/01/16/ blog/2018/01/16/keystone-v3/ blog/2018/02/05/ blog/2018/02/06/ blog/2018/02/06/nova-neutron/ img/logos/

Author: nacx
Date: Fri Aug 23 10:48:16 2019
New Revision: 1865741

URL: http://svn.apache.org/viewvc?rev=1865741&view=rev
Log:
deploy jclouds site content

Added:
    jclouds/site-content/Dockerfile
    jclouds/site-content/Makefile
    jclouds/site-content/blog/2018/01/16/
    jclouds/site-content/blog/2018/01/16/keystone-v3/
    jclouds/site-content/blog/2018/01/16/keystone-v3/index.html
    jclouds/site-content/blog/2018/02/06/
    jclouds/site-content/blog/2018/02/06/nova-neutron/
    jclouds/site-content/blog/2018/02/06/nova-neutron/index.html
Removed:
    jclouds/site-content/blog/2018/01/15/
    jclouds/site-content/blog/2018/02/05/
Modified:
    jclouds/site-content/README.md
    jclouds/site-content/blog/atom.xml
    jclouds/site-content/blog/index.html
    jclouds/site-content/img/logos/digitalocean.png

Added: jclouds/site-content/Dockerfile
URL: http://svn.apache.org/viewvc/jclouds/site-content/Dockerfile?rev=1865741&view=auto
==============================================================================
--- jclouds/site-content/Dockerfile (added)
+++ jclouds/site-content/Dockerfile Fri Aug 23 10:48:16 2019
@@ -0,0 +1,11 @@
+FROM ruby:2.2.5
+
+RUN apt-get update && \
+    apt-get install -y rsync
+
+RUN gem install jekyll -v 1.5.1 && \
+    gem install rdiscount
+
+ENV LC_ALL=C.UTF-8 LANG=C.UTF-8
+
+WORKDIR /jclouds-site

Added: jclouds/site-content/Makefile
URL: http://svn.apache.org/viewvc/jclouds/site-content/Makefile?rev=1865741&view=auto
==============================================================================
--- jclouds/site-content/Makefile (added)
+++ jclouds/site-content/Makefile Fri Aug 23 10:48:16 2019
@@ -0,0 +1,20 @@
+IMAGE := jclouds/site-builder
+MOUNTPOINT := /jclouds-site
+
+image:  ## Build the Docker image with all requirements to build and publish the sire
+	docker build -t $(IMAGE) .
+
+build:  ## Build and run the site locally
+	docker run --rm -v "${PWD}:$(MOUNTPOINT)" -p 4000:4000 $(IMAGE) jekyll serve --safe --port 4000
+
+publish:  ## Publish the site to https://jclouds.apache.org
+	rm -rf site-content
+	@read -p "SVN Username: " SVNUSER; \
+	docker run --rm -ti -v "${PWD}:$(MOUNTPOINT)" $(IMAGE) bash deploy-site.sh "${SVNUSER}"
+
+help:  ## Display this help
+	@awk 'BEGIN {FS = ":.*##"; printf "Usage:\n    make \033[36m<target>\033[0m\n\nAvailable targets:\n"} \
+		  /^[a-zA-Z_-]+:.*?##/ { printf "    \033[36m%-15s\033[0m %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
+
+.PHONY:
+	image build publish help

Modified: jclouds/site-content/README.md
URL: http://svn.apache.org/viewvc/jclouds/site-content/README.md?rev=1865741&r1=1865740&r2=1865741&view=diff
==============================================================================
--- jclouds/site-content/README.md (original)
+++ jclouds/site-content/README.md Fri Aug 23 10:48:16 2019
@@ -2,13 +2,20 @@
 
 This repository supports the GitHub Pages site for jclouds. See and read more at [http://www.jclouds.org](http://www.jclouds.org).
 
-To test the site locally:
+To test the site locally you will need to create the site build image with:
 
-    jekyll _1.5.1_ serve --safe
+```bash
+make image
+```
 
-To deploy the site:
+Once you have the build image you can use the following command to build and test the site locally:
 
-* Ensure you have [jekyll](http://jekyllrb.com/docs/installation/) 1.5.1 installed: `gem install jekyll -v 1.5.1` (it will require an old Ruby such as 2.2.5)
-* If necessary, clone this repository
-* Run `sh ./deploy-site.sh [$uid] [$pwd]` from the repository root. Here, `$uid` is your ASF account ID and `$pwd` your ASF password. If you do not supply your account ID or password, you will be prompted for them
+```bash
+make build
+```
 
+To deploy the site and make it live run:
+
+```bash
+make publish
+```

Added: jclouds/site-content/blog/2018/01/16/keystone-v3/index.html
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/2018/01/16/keystone-v3/index.html?rev=1865741&view=auto
==============================================================================
--- jclouds/site-content/blog/2018/01/16/keystone-v3/index.html (added)
+++ jclouds/site-content/blog/2018/01/16/keystone-v3/index.html Fri Aug 23 10:48:16 2019
@@ -0,0 +1,336 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+<title>Apache jclouds&reg; :: OpenStack Keystone V3 Support</title>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="description" content="">
+<meta name="author" content="">
+
+<!--link rel="stylesheet/less" href="less/bootstrap.less" type="text/css" /-->
+<!--link rel="stylesheet/less" href="less/responsive.less" type="text/css" /-->
+<!--script src="js/less-1.3.3.min.js"></script-->
+<!--append ‘#!watch’ to the browser URL, then refresh the page. -->
+
+<link href="/css/bootstrap.min.css" rel="stylesheet">
+<link href="/css/style.css" rel="stylesheet">
+<link href="/css/syntax.css" rel="stylesheet">
+
+<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+<!--[if lt IE 9]>
+<script src="js/html5shiv.js"></script>
+<![endif]-->
+
+<!-- Fav and touch icons -->
+<!--
+<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/img/apple-touch-icon-144-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/apple-touch-icon-114-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/apple-touch-icon-72-precomposed.png">
+<link rel="apple-touch-icon-precomposed" href="/img/apple-touch-icon-57-precomposed.png">
+-->
+<link rel="shortcut icon" href="/favicon.ico">
+
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Blog Posts Feed">
+<link rel="alternate" type="application/atom+xml" href="/releasenotes/atom.xml" title="Release Notes Feed">
+
+<script type="text/javascript" src="/js/jquery.min.js"></script>
+<script type="text/javascript" src="/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="/js/toc.js"></script>
+
+<script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-8638379-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+     })();
+</script>
+<script type="text/javascript">
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+     m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+     })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-47106724-1', 'jclouds.apache.org');
+    ga('send', 'pageview');
+</script>
+
+    </head>
+    <body>
+        <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" href="/">Apache jclouds &reg;</a>
+        </div>
+
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+            <ul class="nav navbar-nav">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Getting Started<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/start/what-is-jclouds/">What Is Apache jclouds?</a></li>
+                        <li><a href="/start/install/">Installation Guide</a></li>
+                        <li class="divider"></li>
+                        <li><a href="/start/concepts/">Core Concepts</a></li>
+                        <li><a href="/start/compute/">ComputeService</a></li>
+                        <li><a href="/start/blobstore/">BlobStore</a></li>
+                        <li><a href="http://github.com/apache/jclouds-examples">Examples</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/reference/providers/">Cloud Providers</a></li>
+                        <li><a href="/guides">User Guides</a></li>
+                        <li><a href="/reference/troubleshooting/">Troubleshooting</a></li>
+                        <li><a href="/reference/configuration/">Configuration</a></li>
+                        <li><a href="/reference/logging/">Logging</a></li>
+                        <li><a href="/reference/javadoc/">Javadoc</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Developer Guides</li>
+                        <li><a href="https://cwiki.apache.org/confluence/display/JCLOUDS/">Wiki</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/community/">Get In Touch!</a></li>
+                        <li><a href="/community/users/">Who Is Using jclouds?</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Contribute</li>
+                        <li><a href="/reference/report-a-bug/">Report a Bug</a></li>
+                        <li><a href="https://builds.apache.org/view/J/view/jclouds/">Continuous Integration</a></li>
+                        <li><a href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute">How To Contribute Code</a></li>
+                        <li><a href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation">How To Contribute Documentation</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">About Apache<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="http://www.apache.org">The Apache Software Foundation</a></li>
+                        <li><a href="http://www.apache.org/licenses/">License</a></li>
+                        <li><a href="http://www.apache.org/foundation/contributing.html">Donations</a></li>
+                        <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                        <li><a href="http://www.apache.org/security/">Security</a></li>
+                        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Apache Events</li>
+                        <li><a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png"/></a></li>
+                    </ul>
+                </li>
+                <li><a href="/blog">Blog</a></li>
+            </ul>
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Release Notes<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <!-- only keep the release notes for supported versions in this list -->
+                        <li><a href="/releasenotes/2.1.2">2.1.2</a></li>
+                        <li><a href="/releasenotes/2.1.1">2.1.1</a></li>
+                        <li><a href="/releasenotes/2.1.0">2.1.0</a></li>
+                        <li><a href="/releasenotes/2.0.3">2.0.3</a></li>
+                        <li><a href="/releasenotes/2.0.2">2.0.2</a></li>
+                        <li><a href="/releasenotes/2.0.1">2.0.1</a></li>
+                        <li><a href="/releasenotes/2.0.0">2.0.0</a></li>
+                        <li><a href="/releasenotes/1.9.3">1.9.3</a></li>
+                        <li><a href="/releasenotes/1.9.2">1.9.2</a></li>
+                        <li><a href="/releasenotes/1.9.1">1.9.1</a></li>
+                        <li><a href="/releasenotes/1.9.0">1.9.0</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Previous releases</li>
+                        <li><a href="/releasenotes">Release archive</a></li>
+                    </ul>
+                </li>
+                <li>
+                    <div>
+                        <a class="btn btn-success navbar-btn" href="/start/install/">
+                            <span class="glyphicon glyphicon-download"></span>
+                            Install
+                        </a>
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+</nav>
+
+        <div class="container">
+            <div class="page-header">
+                <h1>OpenStack Keystone V3 Support</h1>
+                <span class="text-muted">16 January 2018, by <a href="https://twitter.com/IgnasiBarrera">Ignasi Barrera</a></span>
+            </div>
+            <p>In the last few months, the jclouds community has been working hard on adding support for <strong>OpenStack Keystone V3</strong>. This has not been easy, as all the existing OpenStack APIs depend on it and we try hard to keep our APIs backwards-compatible. We wanted a clean solution that allowed users to upgrade with minimal changes required to existing code.</p>
+
+<p>After lots of work, we're finally there and are very happy to announce that, starting from the upcoming <code>2.1.0</code> release, jclouds will also support version 3 of the OpenStack Keystone API!</p>
+
+<!--more-->
+
+
+<p>No new dependencies will be required to use the OpenStack Keystone V3 API: <code>openstack-keystone</code> contains the code for both V2 and V3, so all jclouds providers and APIs can support both versions.</p>
+
+<h1>Configuring OpenStack services to use Keystone V3</h1>
+
+<p>Configuring OpenStack services to use Keystone V3 is pretty straightforward. Just create your jclouds <a href="/start/concepts/">context</a> with the following configuration property:</p>
+
+<div class="highlight"><pre><code class="java"><span class="n">Properties</span> <span class="n">overrides</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Properties</span><span class="o">();</span>
+<span class="n">overrides</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">KeystoneProperties</span><span class="o">.</span><span class="na">KEYSTONE_VERSION</span><span class="o">,</span> <span class="s">&quot;3&quot;</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h3>Configuring authentication</h3>
+
+<p>Keystone V3 supports several authentication mechanisms, which provide authentication tokens with different permissions. It is important to configure the correct authentication method, otherwise some operations offered by the Keystone API might not be available.</p>
+
+<p>By default, jclouds uses <strong>password authentication with unscoped authorization</strong>. Project or domain authorization scopes can be configured by setting the <code>KeystoneProperties.SCOPE</code> property when creating your jclouds context, for example:</p>
+
+<div class="highlight"><pre><code class="java"><span class="n">Properties</span> <span class="n">overrides</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Properties</span><span class="o">();</span>
+<span class="c1">// Project scoped authorization (can use the project name or the ID)</span>
+<span class="n">overrides</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">KeystoneProperties</span><span class="o">.</span><span class="na">SCOPE</span><span class="o">,</span> <span class="s">&quot;project:jclouds&quot;</span><span class="o">);</span>
+<span class="n">overrides</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">KeystoneProperties</span><span class="o">.</span><span class="na">SCOPE</span><span class="o">,</span> <span class="s">&quot;projectId:2f9b30f706bc45d7923e055567be2e98&quot;</span><span class="o">);</span>
+<span class="c1">// Domain scoped authorization (can use the domain name or the ID)</span>
+<span class="n">overrides</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">KeystoneProperties</span><span class="o">.</span><span class="na">SCOPE</span><span class="o">,</span> <span class="s">&quot;domain:default&quot;</span><span class="o">);</span>
+<span class="n">overrides</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">KeystoneProperties</span><span class="o">.</span><span class="na">SCOPE</span><span class="o">,</span> <span class="s">&quot;domainId:2f9b30f706bc45d7923e055567be2e98&quot;</span><span class="o">);</span>
+</code></pre></div>
+
+
+<p>Credentials in Keystone V3 must include the <code>domain</code> name and the <code>username</code>, as shown above.</p>
+
+<h1>Using Keystone V3 APIs</h1>
+
+<p>If you are using <code>openstack-nova</code> or other OpenStack APIs, configuring the properties above will suffice. This section describes changes needed only if you are using the Keystone API <strong>directly</strong>.</p>
+
+<p>In order to use the <code>openstack-keystone</code> API to connect to Keystone V3, use the <code>openstack-keystone-3</code> API ID when creating the context. For example:</p>
+
+<div class="highlight"><pre><code class="java"><span class="n">KeystoneApi</span> <span class="n">keystone</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">&quot;openstack-keystone-3&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">endpoint</span><span class="o">(</span><span class="s">&quot;http://openstack-keystone/identity/v3&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="s">&quot;domain:admin&quot;</span><span class="o">,</span> <span class="s">&quot;password&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">overrides</span><span class="o">(</span><span class="n">overrides</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">buildApi</span><span class="o">(</span><span class="n">KeystoneApi</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h3>Invoking Keystone API methods that use PATCH operations</h3>
+
+<p>In the Keystone V3 API, most of the update operations are carried out by sending <code>PATCH</code> HTTP requests. The <code>PATCH</code> verb, however, is not supported by jclouds' default Java HTTP driver. If you plan to use such API methods, you will use an HTTP driver with support for <code>PATCH</code>, such as the <a href="https://github.com/jclouds/jclouds/tree/master/drivers/okhttp">OkHttp</a> or <a href="https://github.com/jclouds/jclouds/tree/master/drivers/apachehc">ApacheHC</a> drivers.</p>
+
+<p>To configure an HTTP driver, add the corresponding module to the list of modules passed to the <code>ContextBuilder</code> when creating your jclouds context. For example:</p>
+
+<div class="highlight"><pre><code class="java"><span class="n">KeystoneApi</span> <span class="n">keystone</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">&quot;openstack-keystone-3&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">endpoint</span><span class="o">(</span><span class="s">&quot;http://openstack-keystone/identity/v3&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="s">&quot;domain:admin&quot;</span><span class="o">,</span> <span class="s">&quot;password&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">overrides</span><span class="o">(</span><span class="n">overrides</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="k">new</span> <span class="n">OkHttpCommandExecutorServiceModule</span><span class="o">()))</span> <span class="c1">// use OkHttp driver</span>
+   <span class="o">.</span><span class="na">buildApi</span><span class="o">(</span><span class="n">KeystoneApi</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+</code></pre></div>
+
+
+<h1>Notes and breaking changes</h1>
+
+<p>Supporting both the V2 and V3 Keystone APIs required a major refactor of the <code>openstack-keystone</code> API. Many packages and classes have been renamed, moved and deleted as a result. If your code uses constants or other global classes, you may need to update the following package references:</p>
+
+<ul>
+<li>Class <code>KeystoneProperties</code> has been moved to <code>org.jclouds.openstack.keystone.config</code>.</li>
+<li>Class <code>CredentialTypes</code> has been moved to <code>org.jclouds.openstack.keystone.auth.config</code>.</li>
+<li>The <code>KeystoneAuthenticationModule</code> and the <code>AuthenticationApiModule</code> have been refactored and generalised into:
+
+<ul>
+<li><code>AuthenticationModule</code> - Providing authentication services to all OpenStack APIs and providers.</li>
+<li><code>ServiceCatalogModule</code> - Providing endpoint resolution to all OpenStack APIs and providers.</li>
+</ul>
+</li>
+</ul>
+
+
+<p>Use <code>AuthenticationModule</code> and <code>ServiceCatalogModule</code> when developing OpenStack APIs.</p>
+
+            
+            <div id="comments">
+                <hr/>
+                <div id="disqus_thread"></div>
+<script type="text/javascript">
+var disqus_shortname = 'jclouds';
+/* * * DON'T EDIT BELOW THIS LINE * * */
+(function() {
+    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+    dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+})();
+</script>
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">Comments powered by Disqus.</a></noscript>
+<a href="http://disqus.com" class="dsq-brlink">Comments powered by <span class="logo-disqus">Disqus</span></a>
+
+            </div>
+            
+            <div class="row clearfix">
+                <div id="footer" class="col-md-12 column">
+                    <div id="footer">
+    <hr/>
+    <div class="row clearfix">
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/start/">Getting Started</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/reference/report-a-bug/">Report a Bug</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a href="https://github.com/apache/jclouds-site/edit/master/_posts/2018-01-16-keystone-v3.md">Fix This Page</a><a class="text-primary" href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation"><sup>*</sup></a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute">Contribute Code</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/community/">Contact Us</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="https://twitter.com/jclouds">Follow Us</a>
+            </p>
+        </div>
+    </div>
+    <hr style="margin-top: 10px"/>
+    <div class="row clearfix">
+        <div class="col-md-12 column">
+            <p class="text-center">
+              Copyright &copy; 2011-2014 <a href="http://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.
+            </p>
+            <p class="text-center">
+              Apache, jclouds, Apache jclouds, the jclouds logo, and the Apache feather logos are registered trademarks or trademarks of the Apache Software Foundation.
+            </p>
+            <p class="text-center">
+              <img src="/img/Apache_Logo.png" height="120" />
+            </p>
+            <p class="text-center">
+                <a href="https://donate.apache.org/" title="Support Apache">
+                    <img src="/img/support-apache.png" height="120" />
+                </a>
+            </p>
+            <br/>
+        </div>
+    </div>
+</div>
+
+                </div>
+            </div>
+        </div>
+    </body>
+</html>

Added: jclouds/site-content/blog/2018/02/06/nova-neutron/index.html
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/2018/02/06/nova-neutron/index.html?rev=1865741&view=auto
==============================================================================
--- jclouds/site-content/blog/2018/02/06/nova-neutron/index.html (added)
+++ jclouds/site-content/blog/2018/02/06/nova-neutron/index.html Fri Aug 23 10:48:16 2019
@@ -0,0 +1,310 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+<title>Apache jclouds&reg; :: Introducing context linking & Neutron support for Nova</title>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="description" content="">
+<meta name="author" content="">
+
+<!--link rel="stylesheet/less" href="less/bootstrap.less" type="text/css" /-->
+<!--link rel="stylesheet/less" href="less/responsive.less" type="text/css" /-->
+<!--script src="js/less-1.3.3.min.js"></script-->
+<!--append ‘#!watch’ to the browser URL, then refresh the page. -->
+
+<link href="/css/bootstrap.min.css" rel="stylesheet">
+<link href="/css/style.css" rel="stylesheet">
+<link href="/css/syntax.css" rel="stylesheet">
+
+<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
+<!--[if lt IE 9]>
+<script src="js/html5shiv.js"></script>
+<![endif]-->
+
+<!-- Fav and touch icons -->
+<!--
+<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/img/apple-touch-icon-144-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/apple-touch-icon-114-precomposed.png">
+<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/apple-touch-icon-72-precomposed.png">
+<link rel="apple-touch-icon-precomposed" href="/img/apple-touch-icon-57-precomposed.png">
+-->
+<link rel="shortcut icon" href="/favicon.ico">
+
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Blog Posts Feed">
+<link rel="alternate" type="application/atom+xml" href="/releasenotes/atom.xml" title="Release Notes Feed">
+
+<script type="text/javascript" src="/js/jquery.min.js"></script>
+<script type="text/javascript" src="/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="/js/toc.js"></script>
+
+<script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-8638379-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+     })();
+</script>
+<script type="text/javascript">
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+     (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+     m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+     })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-47106724-1', 'jclouds.apache.org');
+    ga('send', 'pageview');
+</script>
+
+    </head>
+    <body>
+        <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" href="/">Apache jclouds &reg;</a>
+        </div>
+
+        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+            <ul class="nav navbar-nav">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Getting Started<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/start/what-is-jclouds/">What Is Apache jclouds?</a></li>
+                        <li><a href="/start/install/">Installation Guide</a></li>
+                        <li class="divider"></li>
+                        <li><a href="/start/concepts/">Core Concepts</a></li>
+                        <li><a href="/start/compute/">ComputeService</a></li>
+                        <li><a href="/start/blobstore/">BlobStore</a></li>
+                        <li><a href="http://github.com/apache/jclouds-examples">Examples</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/reference/providers/">Cloud Providers</a></li>
+                        <li><a href="/guides">User Guides</a></li>
+                        <li><a href="/reference/troubleshooting/">Troubleshooting</a></li>
+                        <li><a href="/reference/configuration/">Configuration</a></li>
+                        <li><a href="/reference/logging/">Logging</a></li>
+                        <li><a href="/reference/javadoc/">Javadoc</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Developer Guides</li>
+                        <li><a href="https://cwiki.apache.org/confluence/display/JCLOUDS/">Wiki</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="/community/">Get In Touch!</a></li>
+                        <li><a href="/community/users/">Who Is Using jclouds?</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Contribute</li>
+                        <li><a href="/reference/report-a-bug/">Report a Bug</a></li>
+                        <li><a href="https://builds.apache.org/view/J/view/jclouds/">Continuous Integration</a></li>
+                        <li><a href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute">How To Contribute Code</a></li>
+                        <li><a href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation">How To Contribute Documentation</a></li>
+                    </ul>
+                </li>
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">About Apache<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="http://www.apache.org">The Apache Software Foundation</a></li>
+                        <li><a href="http://www.apache.org/licenses/">License</a></li>
+                        <li><a href="http://www.apache.org/foundation/contributing.html">Donations</a></li>
+                        <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+                        <li><a href="http://www.apache.org/security/">Security</a></li>
+                        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Apache Events</li>
+                        <li><a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png"/></a></li>
+                    </ul>
+                </li>
+                <li><a href="/blog">Blog</a></li>
+            </ul>
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Release Notes<strong class="caret"></strong></a>
+                    <ul class="dropdown-menu">
+                        <!-- only keep the release notes for supported versions in this list -->
+                        <li><a href="/releasenotes/2.1.2">2.1.2</a></li>
+                        <li><a href="/releasenotes/2.1.1">2.1.1</a></li>
+                        <li><a href="/releasenotes/2.1.0">2.1.0</a></li>
+                        <li><a href="/releasenotes/2.0.3">2.0.3</a></li>
+                        <li><a href="/releasenotes/2.0.2">2.0.2</a></li>
+                        <li><a href="/releasenotes/2.0.1">2.0.1</a></li>
+                        <li><a href="/releasenotes/2.0.0">2.0.0</a></li>
+                        <li><a href="/releasenotes/1.9.3">1.9.3</a></li>
+                        <li><a href="/releasenotes/1.9.2">1.9.2</a></li>
+                        <li><a href="/releasenotes/1.9.1">1.9.1</a></li>
+                        <li><a href="/releasenotes/1.9.0">1.9.0</a></li>
+                        <li class="divider"></li>
+                        <li class="dropdown-header">Previous releases</li>
+                        <li><a href="/releasenotes">Release archive</a></li>
+                    </ul>
+                </li>
+                <li>
+                    <div>
+                        <a class="btn btn-success navbar-btn" href="/start/install/">
+                            <span class="glyphicon glyphicon-download"></span>
+                            Install
+                        </a>
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+</nav>
+
+        <div class="container">
+            <div class="page-header">
+                <h1>Introducing context linking & Neutron support for Nova</h1>
+                <span class="text-muted">06 February 2018, by <a href="https://twitter.com/IgnasiBarrera">Ignasi Barrera</a></span>
+            </div>
+            <p>One of the limitations of some jclouds APIs and Providers is that they are isolated libraries that cannot directly interact between them. There are scenarios where this would be desirable, such as letting OpenStack Nova (compute) use the OpenStack Neutron API (networking) to perform all networking related operations. There was no direct way to implement this in the jclouds APIs code, and users were left with the responsibility of invoking both APIs to have the desired behavior.</p>
+
+<p>Apache jclouds 2.1.0 comes with a <strong>context linking</strong> feature, where APIs and providers that have dependencies between them can be <em>linked</em> so they can call each other where needed.</p>
+
+<!-- more -->
+
+
+<h2>Context Linking</h2>
+
+<p>Linking one API or Provider to another is something that has to be defined in the API or Provider itself. It is a mechanism that allows users to inject an API or Provider <em>inside</em> a given jclouds context, so the API that <em>receives</em> the linked context can use it internally. Linking is not supposed to be used to link arbitrary APIs and Providers (that would have no effect), but APIs that are <em>prepared</em> to receive linked contexts and call its API methods.</p>
+
+<p>For example, in jclouds 2.1.0, OpenStack Nova has been integrated with Neutron, and users will be able to link the <code>openstack-nova</code> context to an <code>openstack-neutron</code> one so the Nova API can use the Neutron features to manage all networking stuff. On the other hand, linking other APIs or providers together may have no effect, as the code for those APIs and providers may not expect any linked context. When thinking about linking two contexts together, please refer to the docs.</p>
+
+<p>Linking is done at <em>context</em> level, and links are specified in the <em>using</em> context and point to the context(s) that it uses. This isolates each individual context and allows users to configure an independent set of properties for each one without overlapping issues. The <code>ContextLinking.linkContext</code> and <code>ContextLinking.linkView</code> helper methods can be used to easily link one context or view to another.</p>
+
+<h2>Linking OpenStack Nova to Neutron</h2>
+
+<p>The following example shows how to link an OpenStack Nova API to a Neutron API context, to leverage Neutron features when provisioning instances with Nova:</p>
+
+<div class="highlight"><pre><code class="java"><span class="c1">// Create the connection to OpenStack Neutron</span>
+<span class="n">ApiContext</span><span class="o">&lt;</span><span class="n">NeutronApi</span><span class="o">&gt;</span> <span class="n">neutronCtx</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">&quot;openstack-neutron&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">endpoint</span><span class="o">(</span><span class="s">&quot;http://localhost/identity/v3/&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="s">&quot;domain:user&quot;</span><span class="o">,</span> <span class="s">&quot;password&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">overrides</span><span class="o">(</span><span class="n">neutronProperties</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">build</span><span class="o">();</span>
+
+<span class="c1">// Create the connection to OpenStack nova and link it to Neutron</span>
+<span class="n">NovaApi</span> <span class="n">nova</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">&quot;openstack-nova&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">endpoint</span><span class="o">(</span><span class="s">&quot;http://localhost/identity/v3/&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">credentials</span><span class="o">(</span><span class="s">&quot;domain:user&quot;</span><span class="o">,</span> <span class="s">&quot;password&quot;</span><span class="o">)</span>
+   <span class="o">.</span><span class="na">overrides</span><span class="o">(</span><span class="n">novaProperties</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="n">ContextLinking</span><span class="o">.</span><span class="na">linkContext</span><span class="o">(</span><span class="n">neutronCtx</span><span class="o">),</span>
+               <span class="k">new</span> <span class="nf">SLF4JLoggingModule</span><span class="o">()))</span>
+   <span class="o">.</span><span class="na">buildApi</span><span class="o">(</span><span class="n">NovaApi</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+</code></pre></div>
+
+
+<p>With this configuration the <code>nova</code> API is configured to use the linked <code>neutron</code> for all networking operations.</p>
+
+<h2>Writing code that accepts a linked context</h2>
+
+<p>When writing an API or Provider that needs to use another jclouds API, you can easily leverage the context linking feature by injecting the target API as follows:</p>
+
+<div class="highlight"><pre><code class="java"><span class="nd">@Inject</span><span class="o">(</span><span class="n">optional</span> <span class="o">=</span> <span class="kc">true</span><span class="o">)</span>
+<span class="nd">@Named</span><span class="o">(</span><span class="s">&quot;openstack-neutron&quot;</span><span class="o">)</span>
+<span class="kd">private</span> <span class="n">Supplier</span><span class="o">&lt;</span><span class="n">Context</span><span class="o">&gt;</span> <span class="n">neutronContextSupplier</span><span class="o">;</span>
+</code></pre></div>
+
+
+<ul>
+<li>You must use the <strong>Provider or API id</strong> in the <code>@Named</code> annotation.</li>
+<li>If the linked context is optional you can declare an optional injection.</li>
+</ul>
+
+
+<p>Then you can access the portble abstraction view or provider-specific API from the injected context.</p>
+
+            
+            <div id="comments">
+                <hr/>
+                <div id="disqus_thread"></div>
+<script type="text/javascript">
+var disqus_shortname = 'jclouds';
+/* * * DON'T EDIT BELOW THIS LINE * * */
+(function() {
+    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+    dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+})();
+</script>
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">Comments powered by Disqus.</a></noscript>
+<a href="http://disqus.com" class="dsq-brlink">Comments powered by <span class="logo-disqus">Disqus</span></a>
+
+            </div>
+            
+            <div class="row clearfix">
+                <div id="footer" class="col-md-12 column">
+                    <div id="footer">
+    <hr/>
+    <div class="row clearfix">
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/start/">Getting Started</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/reference/report-a-bug/">Report a Bug</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a href="https://github.com/apache/jclouds-site/edit/master/_posts/2018-02-06-nova-neutron.md">Fix This Page</a><a class="text-primary" href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation"><sup>*</sup></a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute">Contribute Code</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="/community/">Contact Us</a>
+            </p>
+        </div>
+        <div class="col-md-2 column">
+            <p class="text-center">
+                <a class="text-primary" href="https://twitter.com/jclouds">Follow Us</a>
+            </p>
+        </div>
+    </div>
+    <hr style="margin-top: 10px"/>
+    <div class="row clearfix">
+        <div class="col-md-12 column">
+            <p class="text-center">
+              Copyright &copy; 2011-2014 <a href="http://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.
+            </p>
+            <p class="text-center">
+              Apache, jclouds, Apache jclouds, the jclouds logo, and the Apache feather logos are registered trademarks or trademarks of the Apache Software Foundation.
+            </p>
+            <p class="text-center">
+              <img src="/img/Apache_Logo.png" height="120" />
+            </p>
+            <p class="text-center">
+                <a href="https://donate.apache.org/" title="Support Apache">
+                    <img src="/img/support-apache.png" height="120" />
+                </a>
+            </p>
+            <br/>
+        </div>
+    </div>
+</div>
+
+                </div>
+            </div>
+        </div>
+    </body>
+</html>

Modified: jclouds/site-content/blog/atom.xml
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/atom.xml?rev=1865741&r1=1865740&r2=1865741&view=diff
==============================================================================
--- jclouds/site-content/blog/atom.xml (original)
+++ jclouds/site-content/blog/atom.xml Fri Aug 23 10:48:16 2019
@@ -8,10 +8,10 @@
 
   
   <entry>
-    <id>https://jclouds.apache.org/blog/2018/02/05/nova-neutron</id>
+    <id>https://jclouds.apache.org/blog/2018/02/06/nova-neutron</id>
     <title type="html"><![CDATA[Introducing context linking & Neutron support for Nova]]></title>
-    <link href="https://jclouds.apache.org/blog/2018/02/05/nova-neutron"/>
-    <updated>2018-02-05T00:00:00Z</updated>
+    <link href="https://jclouds.apache.org/blog/2018/02/06/nova-neutron"/>
+    <updated>2018-02-06T00:00:00Z</updated>
     <content type="html"><![CDATA[<p>One of the limitations of some jclouds APIs and Providers is that they are isolated libraries that cannot directly interact between them. There are scenarios where this would be desirable, such as letting OpenStack Nova (compute) use the OpenStack Neutron API (networking) to perform all networking related operations. There was no direct way to implement this in the jclouds APIs code, and users were left with the responsibility of invoking both APIs to have the desired behavior.</p>
 
 <p>Apache jclouds 2.1.0 comes with a <strong>context linking</strong> feature, where APIs and providers that have dependencies between them can be <em>linked</em> so they can call each other where needed.</p>
@@ -74,10 +74,10 @@
   </entry>
   
   <entry>
-    <id>https://jclouds.apache.org/blog/2018/01/15/keystone-v3</id>
+    <id>https://jclouds.apache.org/blog/2018/01/16/keystone-v3</id>
     <title type="html"><![CDATA[OpenStack Keystone V3 Support]]></title>
-    <link href="https://jclouds.apache.org/blog/2018/01/15/keystone-v3"/>
-    <updated>2018-01-15T00:00:00Z</updated>
+    <link href="https://jclouds.apache.org/blog/2018/01/16/keystone-v3"/>
+    <updated>2018-01-16T00:00:00Z</updated>
     <content type="html"><![CDATA[<p>In the last few months, the jclouds community has been working hard on adding support for <strong>OpenStack Keystone V3</strong>. This has not been easy, as all the existing OpenStack APIs depend on it and we try hard to keep our APIs backwards-compatible. We wanted a clean solution that allowed users to upgrade with minimal changes required to existing code.</p>
 
 <p>After lots of work, we're finally there and are very happy to announce that, starting from the upcoming <code>2.1.0</code> release, jclouds will also support version 3 of the OpenStack Keystone API!</p>

Modified: jclouds/site-content/blog/index.html
URL: http://svn.apache.org/viewvc/jclouds/site-content/blog/index.html?rev=1865741&r1=1865740&r2=1865741&view=diff
==============================================================================
--- jclouds/site-content/blog/index.html (original)
+++ jclouds/site-content/blog/index.html Fri Aug 23 10:48:16 2019
@@ -170,13 +170,13 @@
             <p><a href="https://cwiki.apache.org/confluence/display/JCLOUDS/How+to+Contribute+Documentation">Write a guest post!</a></p>
 
 
-<h3><a class="text-primary" href="/blog/2018/02/05/nova-neutron">Introducing context linking & Neutron support for Nova</a></h3>
-<span class="text-muted">05 February 2018, by <a href="https://twitter.com/IgnasiBarrera">Ignasi Barrera</a></span>
+<h3><a class="text-primary" href="/blog/2018/02/06/nova-neutron">Introducing context linking & Neutron support for Nova</a></h3>
+<span class="text-muted">06 February 2018, by <a href="https://twitter.com/IgnasiBarrera">Ignasi Barrera</a></span>
 <p>One of the limitations of some jclouds APIs and Providers is that they are isolated libraries that cannot directly interact between them. There are scenarios where this would be desirable, such as letting OpenStack Nova (compute) use the OpenStack Neutron API (networking) to perform all networking related operations. There was no direct way to implement this in the jclouds APIs code, and users were left with the responsibility of invoking both APIs to have the desired behavior.
 </p>
 
-<h3><a class="text-primary" href="/blog/2018/01/15/keystone-v3">OpenStack Keystone V3 Support</a></h3>
-<span class="text-muted">15 January 2018, by <a href="https://twitter.com/IgnasiBarrera">Ignasi Barrera</a></span>
+<h3><a class="text-primary" href="/blog/2018/01/16/keystone-v3">OpenStack Keystone V3 Support</a></h3>
+<span class="text-muted">16 January 2018, by <a href="https://twitter.com/IgnasiBarrera">Ignasi Barrera</a></span>
 <p>In the last few months, the jclouds community has been working hard on adding support for OpenStack Keystone V3. This has not been easy, as all the existing OpenStack APIs depend on it and we try hard to keep our APIs backwards-compatible. We wanted a clean solution that allowed users to upgrade with minimal changes required to existing code.
 </p>
 

Modified: jclouds/site-content/img/logos/digitalocean.png
URL: http://svn.apache.org/viewvc/jclouds/site-content/img/logos/digitalocean.png?rev=1865741&r1=1865740&r2=1865741&view=diff
==============================================================================
Binary files - no diff available.