You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by Trevor Flanagan <no...@github.com> on 2018/10/09 17:23:50 UTC

[jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

You can view, comment on, or merge this pull request online at:

  https://github.com/jclouds/jclouds-site/pull/220

-- Commit Summary --

  * JCLOUDS-1458 Create Dimension Data Provider Guide

-- File Changes --

    A guides/dimensiondata.md (719)
    M guides/index.md (1)

-- Patch Links --

https://github.com/jclouds/jclouds-site/pull/220.patch
https://github.com/jclouds/jclouds-site/pull/220.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +
+The Dimension Data CloudControl organization will be associated with one or more [MCP 2.0 Data Centers](https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations). A Data Center is a container for the assets that will be deployed and created by the jclouds Dimension Data CloudControl Provider.
+
+In jclouds terminology a Zone equates to a Data Center.
+
+The following code example shows you how to programmatically list Data Centers: 
+
+{% highlight java %}
+     PagedIterable<Datacenter> datacenters = api.getInfrastructureApi().listDatacenters();
+{% endhighlight %}
+
+This responds with a paged result set containing the Data Centers visible to your organization.
+
+## <a id="how-to-deploy-a-network-domain"></a>How to: Deploy a Network Domain
+
+For more information on Network Domains see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs)

Done

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224152243

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://6f26d677a008a480bd27-cf03c8b1a081d6a868473e6763309c09.r65.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428281744

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://49397c6acbcea17a2367-5bcc5bd927e56f98a69f0d058796dd97.r79.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428649844

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Vlan state has transitioned to the NORMAL state. The predicate uses the Vlan Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();
+        Predicate<String> vlanNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+        {
+        }, Names.named("VLAN_NORMAL_PREDICATE")));
+        vlanNormalPredicate.apply(vlanId);
+{% endhighlight %}
+
+## <a id="how-to-list-available-os-images"></a>How to: List Os Images
+
+For more information on Os Images see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations#IntroductiontoMCP2.0DataCenterLocations-CloudImagesandServers)

Done

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224152402

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the NORMAL state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();
+        Predicate<String> networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+        {
+        }, Names.named("NETWORK_DOMAIN_NORMAL_PREDICATE")));
+        networkDomainNormalPredicate.apply(networkDomainId);    
+{% endhighlight %}
+
+## <a id="how-to-deploy-a-vlan"></a>How to: Deploy a Vlan
+
+For more information on Vlans see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs)

Done


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224152360

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://ef4a4e2541959859528a-c8a2a6c91a1f49a5cab6765d7d3ab6fa.r94.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428653862

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://dfd4808121dde423a735-63314837b32833fb4e285cc967cd4941.r53.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428641876

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +{% highlight java %}
+        /*
+         * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+         */
+        String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the NORMAL state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();
+        Predicate<String> networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+        {
+        }, Names.named("NETWORK_DOMAIN_NORMAL_PREDICATE")));

Done

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224152328

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://216cd6483f2adf366ed9-a13eb3890e9ab55c2c58f293d5274ab2.r70.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428279149

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://18609a7ef3ac4c75a21c-793bfbe9e44287970dcbcb804c93094e.r66.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428654668

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://589f69ff0a8b89655a72-868bb2ecf1d58a4dcb21a8a2d8507ce5.r21.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428647954

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> @@ -69,6 +69,11 @@ The Maven Group ID for all supported providers below is [org.apache.jclouds.prov
             <td>digitalocean</td>
             <td></td>
         </tr>
+        <tr>
+            <td><a href="/guides/dimensiondata/">Dimension Data</a>*</td>

I think this is all that you require @nacx ?


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#pullrequestreview-163735971

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://accd3709b7a55da9df0d-c0a64f0a7a230e85fd6006b0aa0dd8ed.r73.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428282079

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

4fef5ec  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/d934ee619d86bbc70b956ad288717fbd87f39f4f..4fef5ecba8e6e06f75443daf1c33f1b112061ebe

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +
+## <a id="how-to-deploy-a-network-domain"></a>How to: Deploy a Network Domain
+
+For more information on Network Domains see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs)
+
+The code to deploy a network domain follows.
+
+{% highlight java %}
+        /*
+         * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+         */
+        String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.

Done

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224152381

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://9ca7d3582b9c98bb7831-da204afdf4a5179afae59121cbb46ec0.r0.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428912657

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

3c76242  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/4fef5ecba8e6e06f75443daf1c33f1b112061ebe..3c76242c85565298c74c86f6e45482b699435a54

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +{% highlight java %}
+        /*
+         * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+         */
+        String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the NORMAL state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();
+        Predicate<String> networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+        {
+        }, Names.named("NETWORK_DOMAIN_NORMAL_PREDICATE")));

Fair point, its not done here :-), but it is done in the java class where the example came from. I will make the relevant updates.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224352707

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

2f7f11f  JCLOUDS-1458 Create Dimension Data Provider Guide - correcting the artifact id.


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/b13ec1fd226ca3e9c6621357729c26f298f4ee43..2f7f11faed4a9bd3619422e17c19c1ebfa021cd5

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

b13ec1f  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/dfc01f088e10e19ed542d279ba002289bdb28775..b13ec1fd226ca3e9c6621357729c26f298f4ee43

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://59dadb46f52654dd828d-40841dd8d990a77fc86724dd7fe1da72.r10.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428649017

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://19e02f0e3cef44b5eb11-580d706b8c642fcfc10fe48652be90dc.r60.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428851837

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://70d990968f075210bd8a-9c548d37cb8b0242bf79fec2ca7da7fc.r52.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428981270

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

ba16be9  JCLOUDS-1458 Create Dimension Data Provider Guide - handling code review comments.


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/2f7f11faed4a9bd3619422e17c19c1ebfa021cd5..ba16be9bafe624e06611eee793f75bd12a7794b3

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

2fa987f  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/2e28c0bbd61165e98d47dfadf37a03d8e8a84b79..2fa987f00dd8f41f828a41a1a5c7e97373cfcdb2

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

d934ee6  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/2fa987f00dd8f41f828a41a1a5c7e97373cfcdb2..d934ee619d86bbc70b956ad288717fbd87f39f4f

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Ignasi Barrera <no...@github.com>.
nacx commented on this pull request.



> +
+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. 
+
+Create a tag key. We will use this to tag the assets that we create.
+{% highlight java %}
+        String tagKeyId = api.getTagApi().createTagKey("jclouds", "owner of the asset", true, false);
+{% endhighlight %}
+
+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.
+{% highlight java %}
+        api.getTagApi().applyTags(serverId, "SERVER", Collections.singletonList(TagInfo.create(tagKeyId, "jclouds")));
+{% endhighlight %}
+
+The full set of AssetTypes are SERVER, NETWORK_DOMAIN, VLAN, CUSTOMER_IMAGE, PUBLIC_IP_BLOCK or ACCOUNT.
+
+## <a id="examples"></a>Examples:

Instead of doing this, I'd just add one line saying that further and more detailed examples can be found in the examples repo under the `dimensiondata` folder. Just one line. Otherwise, are we going to add every example we may add here? Let's just add that note.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224345951

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +
+## <a id="concepts"></a>Concepts
+
+The jclouds library wraps the [Dimension Data CloudControl API](https://docs.mcp-services.net/display/DEV/Welcome+to+the+CloudControl+documentation+portal). 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.
+
+
+## <a id="getting-started"></a>Getting Started
+
+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.
+
+The Dimension Data CloudControl provider supports [API version 2.4](https://docs.mcp-services.net/display/CCD/Understanding+API+v0.9+vs.+API+v2) and [MCP 2.0 datacenters](https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations) only. 
+
+Upgrading to later versions is planned and in progress, see [JCLOUDS-1456](https://issues.apache.org/jira/browse/JCLOUDS-1456) and [JCLOUDS-1407](https://issues.apache.org/jira/browse/JCLOUDS-1407) for current progress.
+
+ 
+### Installation

Done

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224152211

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Ignasi Barrera <no...@github.com>.
Merged and published

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-439219335

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

c43833b  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/0b140b717e775cad1f84d7d5815c5078b742352b..c43833ba02909532e34551dec348c17bb72e089c

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +
+--------------
+
+## <a id="concepts"></a>Concepts
+
+The jclouds library wraps the [Dimension Data CloudControl API](https://docs.mcp-services.net/display/DEV/Welcome+to+the+CloudControl+documentation+portal). 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.
+
+
+## <a id="getting-started"></a>Getting Started
+
+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.
+
+The Dimension Data CloudControl provider supports [API version 2.4](https://docs.mcp-services.net/display/CCD/Understanding+API+v0.9+vs.+API+v2) and [MCP 2.0 datacenters](https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations) only. 
+
+Upgrading to later versions is planned and in progress, see [JCLOUDS-1456](https://issues.apache.org/jira/browse/JCLOUDS-1456) and [JCLOUDS-1407](https://issues.apache.org/jira/browse/JCLOUDS-1407) for current progress.
+

Great idea, I will make this adjustment.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224090121

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Ignasi Barrera <no...@github.com>.
nacx commented on this pull request.



> +{% highlight java %}
+        /*
+         * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+         */
+        String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the NORMAL state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();
+        Predicate<String> networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+        {
+        }, Names.named("NETWORK_DOMAIN_NORMAL_PREDICATE")));

Is it actually done?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224345465

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

0b140b7  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/3c76242c85565298c74c86f6e45482b699435a54..0b140b717e775cad1f84d7d5815c5078b742352b

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +
+{% highlight java %}
+/*
+ * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+ */
+String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 `PENDING_ADD` to `NORMAL`.
+
+The following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the `NORMAL` state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+Predicate<String> networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+{
+}, Names.named(NETWORK_DOMAIN_NORMAL_PREDICATE)));

@nacx I understand. In fact our plan was to make this change during the past week or two but ran out of time (we have an internal jira for it). I will adjust the docs to show what this will eventually look like. Appreciate your time on this PR.

One question - is there a planned release date for 2.2.0?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224471761

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://0dbe6aa2010efbcebaa1-1c9655684642689b76e7e9f1381a1c37.r15.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428853991

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +
+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. 
+
+Create a tag key. We will use this to tag the assets that we create.
+{% highlight java %}
+        String tagKeyId = api.getTagApi().createTagKey("jclouds", "owner of the asset", true, false);
+{% endhighlight %}
+
+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.
+{% highlight java %}
+        api.getTagApi().applyTags(serverId, "SERVER", Collections.singletonList(TagInfo.create(tagKeyId, "jclouds")));
+{% endhighlight %}
+
+The full set of AssetTypes are SERVER, NETWORK_DOMAIN, VLAN, CUSTOMER_IMAGE, PUBLIC_IP_BLOCK or ACCOUNT.
+
+## <a id="examples"></a>Examples:

I have updated with the assumed links to master (when the https://github.com/jclouds/jclouds-examples/pull/94 is merged)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224152671

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

74b3524  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/3dd85f6698116976df279c87ea32099dd2f198d5..74b352415306028ebdb90bb90fb4d006a163ab21

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by DimensionDataDublin <no...@github.com>.
rebuild please

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428281561

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://8a95420fbf433646c291-b5a21ac7a2034c81ca27936639187c4c.r64.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428869393

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Ignasi Barrera <no...@github.com>.
Closed #220.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#event-1969963497

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

3dd85f6  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/f25a0b2973dc3aa48e260f88c154ba099659eb75..3dd85f6698116976df279c87ea32099dd2f198d5

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

dfc01f0  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/c43833ba02909532e34551dec348c17bb72e089c..dfc01f088e10e19ed542d279ba002289bdb28775

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 1 commit.

65f45b3  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/74b352415306028ebdb90bb90fb4d006a163ab21..65f45b3d3fd884683ade906f78685dd0679c01d2

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Ignasi Barrera <no...@github.com>.
Could you also add the provider in the providers page, and link to the guide?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428854692

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +
+The code to deploy a network domain follows.
+
+{% highlight java %}
+        /*
+         * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+         */
+        String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the NORMAL state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();

Done

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224152300

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
trevorflanagan commented on this pull request.



> +### Terms
+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:
+
+- Node - a `Server`
+- Image - both *user-uploaded* and *provided* `CustomerImage` and `OSImage`
+- Location - `Geographic Region` equates to a jclouds Region (AU, NA, EU etc) and `Datacenter` equates to a jclouds Zone (NA9, NA12 etc). There is further information on the Geographic Regions [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Geographic+Regions).
+- Hardware - number of cores, RAM size and storage size for a given Image
+
+### Getting Started
+
+{% highlight java %}
+    ComputeService compute = ContextBuilder.newBuilder( "dimensiondata-cloudcontrol" )
+                             .credentials( "username", "password" )
+                             .buildView( ComputeServiceContext.class )
+                             .getComputeService();
+{% endhighlight %}                             

This is not yet implemented. I am going to leave a note instead to use the unrwapped version of the API for now.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#discussion_r224142592

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by jclouds-commentator <no...@github.com>.
  Go to http://91b48a972d456b89e214-28ffb5d120641c204869a8ee37f192ce.r58.cf5.rackcdn.com/ to review your changes.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#issuecomment-428473689

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Ignasi Barrera <no...@github.com>.
nacx requested changes on this pull request.

Thanks for taking your time to write the docs @trevorflanagan. This is highly appreciated!

> +
+--------------
+
+## <a id="concepts"></a>Concepts
+
+The jclouds library wraps the [Dimension Data CloudControl API](https://docs.mcp-services.net/display/DEV/Welcome+to+the+CloudControl+documentation+portal). 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.
+
+
+## <a id="getting-started"></a>Getting Started
+
+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.
+
+The Dimension Data CloudControl provider supports [API version 2.4](https://docs.mcp-services.net/display/CCD/Understanding+API+v0.9+vs.+API+v2) and [MCP 2.0 datacenters](https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations) only. 
+
+Upgrading to later versions is planned and in progress, see [JCLOUDS-1456](https://issues.apache.org/jira/browse/JCLOUDS-1456) and [JCLOUDS-1407](https://issues.apache.org/jira/browse/JCLOUDS-1407) for current progress.
+

Instead of linking to specific issues (which will become obsolete quite soon) you could add a generic message and point to a JIRA search on the `dimensiondata` label.

> +
+## <a id="concepts"></a>Concepts
+
+The jclouds library wraps the [Dimension Data CloudControl API](https://docs.mcp-services.net/display/DEV/Welcome+to+the+CloudControl+documentation+portal). 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.
+
+
+## <a id="getting-started"></a>Getting Started
+
+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.
+
+The Dimension Data CloudControl provider supports [API version 2.4](https://docs.mcp-services.net/display/CCD/Understanding+API+v0.9+vs.+API+v2) and [MCP 2.0 datacenters](https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations) only. 
+
+Upgrading to later versions is planned and in progress, see [JCLOUDS-1456](https://issues.apache.org/jira/browse/JCLOUDS-1456) and [JCLOUDS-1407](https://issues.apache.org/jira/browse/JCLOUDS-1407) for current progress.
+
+ 
+### Installation

Remove this section contents and just point to the=jclouds [Install](https://jclouds.apache.org/start/install/) page.

> +### Terms
+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:
+
+- Node - a `Server`
+- Image - both *user-uploaded* and *provided* `CustomerImage` and `OSImage`
+- Location - `Geographic Region` equates to a jclouds Region (AU, NA, EU etc) and `Datacenter` equates to a jclouds Zone (NA9, NA12 etc). There is further information on the Geographic Regions [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Geographic+Regions).
+- Hardware - number of cores, RAM size and storage size for a given Image
+
+### Getting Started
+
+{% highlight java %}
+    ComputeService compute = ContextBuilder.newBuilder( "dimensiondata-cloudcontrol" )
+                             .credentials( "username", "password" )
+                             .buildView( ComputeServiceContext.class )
+                             .getComputeService();
+{% endhighlight %}                             

AFAIK there is no `ComputeSerrvice` implementation yet. Does this work?

> +
+The Dimension Data CloudControl organization will be associated with one or more [MCP 2.0 Data Centers](https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations). A Data Center is a container for the assets that will be deployed and created by the jclouds Dimension Data CloudControl Provider.
+
+In jclouds terminology a Zone equates to a Data Center.
+
+The following code example shows you how to programmatically list Data Centers: 
+
+{% highlight java %}
+     PagedIterable<Datacenter> datacenters = api.getInfrastructureApi().listDatacenters();
+{% endhighlight %}
+
+This responds with a paged result set containing the Data Centers visible to your organization.
+
+## <a id="how-to-deploy-a-network-domain"></a>How to: Deploy a Network Domain
+
+For more information on Network Domains see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs)

[minor] punctuation at the end.

> +The following code example shows you how to programmatically list Data Centers: 
+
+{% highlight java %}
+     PagedIterable<Datacenter> datacenters = api.getInfrastructureApi().listDatacenters();
+{% endhighlight %}
+
+This responds with a paged result set containing the Data Centers visible to your organization.
+
+## <a id="how-to-deploy-a-network-domain"></a>How to: Deploy a Network Domain
+
+For more information on Network Domains see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs)
+
+The code to deploy a network domain follows.
+
+{% highlight java %}
+        /*

Remove indent from code snippets. The code appears indented in the code box and looks ugly. Apply this to all code boxes.

> +
+The code to deploy a network domain follows.
+
+{% highlight java %}
+        /*
+         * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+         */
+        String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the NORMAL state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();

Don't do this. Instead use `context.utils().injector()` and if necessary explain how to build an `ApiContext< DimensionDataCloudControlApi>`. Users should never manually build the injector.

> +{% highlight java %}
+        /*
+         * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+         */
+        String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the NORMAL state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();
+        Predicate<String> networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+        {
+        }, Names.named("NETWORK_DOMAIN_NORMAL_PREDICATE")));

If this is going to be user-facing you'd probably want to expose that `Key` as a public constant in the code so they just have to do `injector.getInstance(NETWORK_DOMAIN_PREDICATE)`.

> +
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the NORMAL state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();
+        Predicate<String> networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+        {
+        }, Names.named("NETWORK_DOMAIN_NORMAL_PREDICATE")));
+        networkDomainNormalPredicate.apply(networkDomainId);    
+{% endhighlight %}
+
+## <a id="how-to-deploy-a-vlan"></a>How to: Deploy a Vlan
+
+For more information on Vlans see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs)

Punctuation.

> +
+## <a id="how-to-deploy-a-network-domain"></a>How to: Deploy a Network Domain
+
+For more information on Network Domains see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+Cloud+Network+Domains+and+VLANs)
+
+The code to deploy a network domain follows.
+
+{% highlight java %}
+        /*
+         * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+         */
+        String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.

Quote constants as code `PENDING_ADD` and `NORMAL` (apply elsewhere).

> +{% endhighlight %}
+
+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 PENDING_ADD to NORMAL.
+
+Following is some example code that shows how the to use predicate suitable for asserting a Vlan state has transitioned to the NORMAL state. The predicate uses the Vlan Identifier we wish to check the state of.
+{% highlight java %}
+        Injector injector = contextBuilder.buildInjector();
+        Predicate<String> vlanNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+        {
+        }, Names.named("VLAN_NORMAL_PREDICATE")));
+        vlanNormalPredicate.apply(vlanId);
+{% endhighlight %}
+
+## <a id="how-to-list-available-os-images"></a>How to: List Os Images
+
+For more information on Os Images see [here](https://docs.mcp-services.net/display/CCD/Introduction+to+MCP+2.0+Data+Center+Locations#IntroductiontoMCP2.0DataCenterLocations-CloudImagesandServers)

Punctuation (apply elsewhere).

> +
+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. 
+
+Create a tag key. We will use this to tag the assets that we create.
+{% highlight java %}
+        String tagKeyId = api.getTagApi().createTagKey("jclouds", "owner of the asset", true, false);
+{% endhighlight %}
+
+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.
+{% highlight java %}
+        api.getTagApi().applyTags(serverId, "SERVER", Collections.singletonList(TagInfo.create(tagKeyId, "jclouds")));
+{% endhighlight %}
+
+The full set of AssetTypes are SERVER, NETWORK_DOMAIN, VLAN, CUSTOMER_IMAGE, PUBLIC_IP_BLOCK or ACCOUNT.
+
+## <a id="examples"></a>Examples:

This is gonna become obsolete quickly. Remove the code examples here and link to the examples repo.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#pullrequestreview-163243226

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Trevor Flanagan <no...@github.com>.
@trevorflanagan pushed 5 commits.

e9793c0  JCLOUDS-1458 Create Dimension Data Provider Guide
c0011df  JCLOUDS-1458 Create Dimension Data Provider Guide
c3f804f  JCLOUDS-1458 Create Dimension Data Provider Guide
bb2b4c6  JCLOUDS-1458 Create Dimension Data Provider Guide
2e28c0b  JCLOUDS-1458 Create Dimension Data Provider Guide


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220/files/65f45b3d3fd884683ade906f78685dd0679c01d2..2e28c0bbd61165e98d47dfadf37a03d8e8a84b79

Re: [jclouds/jclouds-site] JCLOUDS-1458 Create Dimension Data Provider Guide (#220)

Posted by Ignasi Barrera <no...@github.com>.
nacx commented on this pull request.



> +
+{% highlight java %}
+/*
+ * Deploy Network Domain to the Zone / Datacenter we wish to operate on. The response from this API is the Network Domain Identifier.
+ */
+String networkDomainId = api.getNetworkApi().deployNetworkDomain(AU9, "jclouds-example", "jclouds-example", "ESSENTIALS");
+{% endhighlight %}
+
+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 `PENDING_ADD` to `NORMAL`.
+
+The following is some example code that shows how the to use predicate suitable for asserting a Network Domain state has transitioned to the `NORMAL` state. The predicate uses the Network Domain Identifier we wish to check the state of.
+{% highlight java %}
+Predicate<String> networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>()
+{
+}, Names.named(NETWORK_DOMAIN_NORMAL_PREDICATE)));

My intention with the comment was to make this more usable by extracting the whole `Key` object into a constant, not just the string. This way users wouldn't need to build this ugly construct.

However, if it makes sense to expose this predicate to users, then it's better to add the following method to the `NetworkApi` interface:
```java
@Provides
@Named("NETWORK_DOMAIN_NORMAL_PREDICATE")
Predicate<String> networkDomainNormalPredicate();
```

This way useres can jsut get it with `api. getNetworkApi().networkDomainNormalPredicate()` (the `@Provides` annotation does the magic here), which makes much more sense and is more usable. Apply the same pattern to the other user-facing predicates and their corresponding API interfaces.

Feel free to open a PR in the provider to add these methods, but let's change the docs now and move forward.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-site/pull/220#pullrequestreview-163828272