You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ab...@apache.org on 2013/07/01 21:15:03 UTC

[16/24] JCLOUDS-151 - CloudStack refactored to remove async, *Client renamed to *Api.

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/AddSecondaryStorageOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/AddSecondaryStorageOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/AddSecondaryStorageOptions.java
index 63b4c53..536f5c4 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/AddSecondaryStorageOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/AddSecondaryStorageOptions.java
@@ -21,7 +21,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options for the GlobalHostClient.addSecondaryStorage() API call
+ * Options for the GlobalHostApi.addSecondaryStorage() API call
  * 
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreatePodOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreatePodOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreatePodOptions.java
index 7ceb326..e5d8a7c 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreatePodOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreatePodOptions.java
@@ -22,7 +22,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options to the GlobalPodClient.createPod API call.
+ * Options to the GlobalPodApi.createPod API call.
  *
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreateSnapshotOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreateSnapshotOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreateSnapshotOptions.java
index c102acd..60c05aa 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreateSnapshotOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/CreateSnapshotOptions.java
@@ -21,8 +21,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the Snapshot createSnapshot method.
  *
- * @see org.jclouds.cloudstack.features.SnapshotClient#createSnapshot
- * @see org.jclouds.cloudstack.features.SnapshotAsyncClient#createSnapshot
+ * @see org.jclouds.cloudstack.features.SnapshotApi#createSnapshot
+ * @see org.jclouds.cloudstack.features.SnapshotApi#createSnapshot
  * @author Richard Downer
  */
 public class CreateSnapshotOptions extends AccountInDomainOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteHostOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteHostOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteHostOptions.java
index 7245c31..bd7f19c 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteHostOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteHostOptions.java
@@ -21,7 +21,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options to the GlobalHostClient.deleteHost() API call
+ * Options to the GlobalHostApi.deleteHost() API call
  *
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteISOOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteISOOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteISOOptions.java
index e5f0445..016c474 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteISOOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/DeleteISOOptions.java
@@ -23,8 +23,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the ISO deleteISO method.
  *
- * @see org.jclouds.cloudstack.features.ISOClient#deleteISO
- * @see org.jclouds.cloudstack.features.ISOAsyncClient#deleteISO
+ * @see org.jclouds.cloudstack.features.ISOApi#deleteISO
+ * @see org.jclouds.cloudstack.features.ISOApi#deleteISO
  * @author Richard Downer
  */
 public class DeleteISOOptions extends BaseHttpRequestOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ExtractISOOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ExtractISOOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ExtractISOOptions.java
index b42fa51..fe5ebf6 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ExtractISOOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ExtractISOOptions.java
@@ -23,8 +23,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the ISO extractISO method.
  *
- * @see org.jclouds.cloudstack.features.ISOClient#extractISO
- * @see org.jclouds.cloudstack.features.ISOAsyncClient#extractISO
+ * @see org.jclouds.cloudstack.features.ISOApi#extractISO
+ * @see org.jclouds.cloudstack.features.ISOApi#extractISO
  * @author Richard Downer
  */
 public class ExtractISOOptions extends BaseHttpRequestOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/GenerateUsageRecordsOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/GenerateUsageRecordsOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/GenerateUsageRecordsOptions.java
index 04af031..b1f2d0c 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/GenerateUsageRecordsOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/GenerateUsageRecordsOptions.java
@@ -21,7 +21,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options to the GlobalUsageClient.generateUsageOptions() API call
+ * Options to the GlobalUsageApi.generateUsageOptions() API call
  *
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListISOsOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListISOsOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListISOsOptions.java
index efd9839..727f274 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListISOsOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListISOsOptions.java
@@ -25,8 +25,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the ISO listISOs method.
  *
- * @see org.jclouds.cloudstack.features.ISOClient#listISOs
- * @see org.jclouds.cloudstack.features.ISOAsyncClient#listISOs
+ * @see org.jclouds.cloudstack.features.ISOApi#listISOs
+ * @see org.jclouds.cloudstack.features.ISOApi#listISOs
  * @author Richard Downer
  */
 public class ListISOsOptions extends AccountInDomainOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListPodsOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListPodsOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListPodsOptions.java
index de1e3da..a15b84d 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListPodsOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListPodsOptions.java
@@ -22,7 +22,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options to the GlobalPodClient.listPods API call.
+ * Options to the GlobalPodApi.listPods API call.
  *
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotPoliciesOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotPoliciesOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotPoliciesOptions.java
index faea0e8..19d1edc 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotPoliciesOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotPoliciesOptions.java
@@ -21,8 +21,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the Snapshot listSnapshotPolicies method.
  *
- * @see org.jclouds.cloudstack.features.SnapshotClient#listSnapshotPolicies
- * @see org.jclouds.cloudstack.features.SnapshotAsyncClient#listSnapshotPolicies
+ * @see org.jclouds.cloudstack.features.SnapshotApi#listSnapshotPolicies
+ * @see org.jclouds.cloudstack.features.SnapshotApi#listSnapshotPolicies
  * @author Richard Downer
  */
 public class ListSnapshotPoliciesOptions extends AccountInDomainOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotsOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotsOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotsOptions.java
index eb69352..605a851 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotsOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListSnapshotsOptions.java
@@ -23,8 +23,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the Snapshot listSnapshots method.
  *
- * @see org.jclouds.cloudstack.features.SnapshotClient#listSnapshots
- * @see org.jclouds.cloudstack.features.SnapshotAsyncClient#listSnapshots
+ * @see org.jclouds.cloudstack.features.SnapshotApi#listSnapshots
+ * @see org.jclouds.cloudstack.features.SnapshotApi#listSnapshots
  * @author Richard Downer
  */
 public class ListSnapshotsOptions extends AccountInDomainOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListUsageRecordsOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListUsageRecordsOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListUsageRecordsOptions.java
index c3e612c..ebc6010 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListUsageRecordsOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/ListUsageRecordsOptions.java
@@ -19,7 +19,7 @@ package org.jclouds.cloudstack.options;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options to the GlobalUsageClient.listUsageOptions() API call
+ * Options to the GlobalUsageApi.listUsageOptions() API call
  *
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/RegisterISOOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/RegisterISOOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/RegisterISOOptions.java
index feae155..fdb77b8 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/RegisterISOOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/RegisterISOOptions.java
@@ -21,8 +21,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the ISO registerISO method.
  *
- * @see org.jclouds.cloudstack.features.ISOClient#registerISO
- * @see org.jclouds.cloudstack.features.ISOAsyncClient#registerISO
+ * @see org.jclouds.cloudstack.features.ISOApi#registerISO
+ * @see org.jclouds.cloudstack.features.ISOApi#registerISO
  * @author Richard Downer
  */
 public class RegisterISOOptions extends AccountInDomainOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateClusterOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateClusterOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateClusterOptions.java
index 3288301..19f4e7a 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateClusterOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateClusterOptions.java
@@ -24,7 +24,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options for the GlobalHostClient.updateCluster() API call.
+ * Options for the GlobalHostApi.updateCluster() API call.
  *
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateHostOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateHostOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateHostOptions.java
index a6868dc..f230224 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateHostOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateHostOptions.java
@@ -25,7 +25,7 @@ import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options to the GlobalHostClient.addHost() API call
+ * Options to the GlobalHostApi.addHost() API call
  *
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOOptions.java
index d11300e..4b31b0a 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOOptions.java
@@ -23,8 +23,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the ISO updateISO method.
  *
- * @see org.jclouds.cloudstack.features.ISOClient#updateISO
- * @see org.jclouds.cloudstack.features.ISOAsyncClient#updateISO
+ * @see org.jclouds.cloudstack.features.ISOApi#updateISO
+ * @see org.jclouds.cloudstack.features.ISOApi#updateISO
  * @author Richard Downer
  */
 public class UpdateISOOptions extends BaseHttpRequestOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOPermissionsOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOPermissionsOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOPermissionsOptions.java
index b891fad..dff0e40 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOPermissionsOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdateISOPermissionsOptions.java
@@ -25,8 +25,8 @@ import com.google.common.collect.ImmutableSet;
 /**
  * Options for the ISO updateISOPermissions method.
  *
- * @see org.jclouds.cloudstack.features.ISOClient#updateISOPermissions
- * @see org.jclouds.cloudstack.features.ISOAsyncClient#updateISOPermissions
+ * @see org.jclouds.cloudstack.features.ISOApi#updateISOPermissions
+ * @see org.jclouds.cloudstack.features.ISOApi#updateISOPermissions
  * @author Richard Downer
  */
 public class UpdateISOPermissionsOptions extends BaseHttpRequestOptions {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdatePodOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdatePodOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdatePodOptions.java
index 5e4020c..b123482 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdatePodOptions.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/options/UpdatePodOptions.java
@@ -22,7 +22,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Options to the GlobalPodClient.updatePod API call.
+ * Options to the GlobalPodApi.updatePod API call.
  *
  * @author Richard Downer
  */

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java
index 55f3349..daad5d6 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java
@@ -24,7 +24,7 @@ import java.util.Set;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.Template;
 import org.jclouds.cloudstack.domain.Zone;
 
@@ -47,23 +47,23 @@ public class CorrectHypervisorForZone implements Function<String, Predicate<Temp
    private final Supplier<Map<String, Set<String>>> hypervisorsSupplier;
 
    @Inject
-   public CorrectHypervisorForZone(CloudStackClient client) {
-      this(Suppliers.ofInstance(new CloudStackClientToZoneToHypervisors().apply(checkNotNull(client, "client"))));
+   public CorrectHypervisorForZone(CloudStackApi client) {
+      this(Suppliers.ofInstance(new CloudStackApiToZoneToHypervisors().apply(checkNotNull(client, "client"))));
    }
 
    public CorrectHypervisorForZone(Supplier<Map<String, Set<String>>> hypervisorsSupplier) {
       this.hypervisorsSupplier = checkNotNull(hypervisorsSupplier, "hypervisorsSupplier");
    }
 
-   private static class CloudStackClientToZoneToHypervisors implements
-         Function<CloudStackClient, Map<String, Set<String>>> {
+   private static class CloudStackApiToZoneToHypervisors implements
+         Function<CloudStackApi, Map<String, Set<String>>> {
 
       @Override
-      public Map<String, Set<String>> apply(CloudStackClient client) {
+      public Map<String, Set<String>> apply(CloudStackApi client) {
          checkNotNull(client, "client");
          Builder<String, Set<String>> builder = ImmutableMap.builder();
-         for (Zone zone : client.getZoneClient().listZones()) {
-            builder.put(zone.getId(), client.getHypervisorClient().listHypervisorsInZone(zone.getId()));
+         for (Zone zone : client.getZoneApi().listZones()) {
+            builder.put(zone.getId(), client.getHypervisorApi().listHypervisorsInZone(zone.getId()));
          }
          return builder.build();
       }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java
index d0b81f3..f45437b 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java
@@ -22,7 +22,7 @@ import javax.annotation.Resource;
 import javax.inject.Singleton;
 
 import org.jclouds.cloudstack.AsyncJobException;
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.AsyncJob;
 import org.jclouds.logging.Logger;
 
@@ -38,13 +38,13 @@ import com.google.inject.Inject;
 @Singleton
 public class JobComplete implements Predicate<String> {
 
-   private final CloudStackClient client;
+   private final CloudStackApi client;
 
    @Resource
    protected Logger logger = Logger.NULL;
 
    @Inject
-   public JobComplete(CloudStackClient client) {
+   public JobComplete(CloudStackApi client) {
       this.client = client;
    }
 
@@ -64,6 +64,6 @@ public class JobComplete implements Predicate<String> {
    }
 
    private AsyncJob<?> refresh(String jobId) {
-      return client.getAsyncJobClient().getAsyncJob(jobId);
+      return client.getAsyncJobApi().getAsyncJob(jobId);
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java
index 7ec13a8..2b50e55 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java
@@ -22,7 +22,7 @@ import javax.annotation.Resource;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.LoadBalancerRule;
 import org.jclouds.cloudstack.domain.LoadBalancerRule.State;
 import org.jclouds.logging.Logger;
@@ -38,13 +38,13 @@ import com.google.common.base.Predicate;
 @Singleton
 public class LoadBalancerRuleActive implements Predicate<LoadBalancerRule> {
 
-   private final CloudStackClient client;
+   private final CloudStackApi client;
 
    @Resource
    protected Logger logger = Logger.NULL;
 
    @Inject
-   public LoadBalancerRuleActive(CloudStackClient client) {
+   public LoadBalancerRuleActive(CloudStackApi client) {
       this.client = client;
    }
 
@@ -58,6 +58,6 @@ public class LoadBalancerRuleActive implements Predicate<LoadBalancerRule> {
    }
 
    private LoadBalancerRule refresh(LoadBalancerRule rule) {
-      return client.getLoadBalancerClient().getLoadBalancerRule(rule.getId());
+      return client.getLoadBalancerApi().getLoadBalancerRule(rule.getId());
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.java
index 606f655..31b26be 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.java
@@ -24,7 +24,7 @@ import java.util.Set;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.OSType;
 import org.jclouds.cloudstack.domain.Template;
 
@@ -46,9 +46,9 @@ public class OSCategoryIn implements Function<Set<String>, Predicate<Template>>
    private final Supplier<Set<OSType>> osTypesSupplier;
 
    @Inject
-   public OSCategoryIn(CloudStackClient client) {
-      this(Suppliers.ofInstance(checkNotNull(client, "client").getGuestOSClient().listOSCategories()), Suppliers
-            .ofInstance(client.getGuestOSClient().listOSTypes()));
+   public OSCategoryIn(CloudStackApi client) {
+      this(Suppliers.ofInstance(checkNotNull(client, "client").getGuestOSApi().listOSCategories()), Suppliers
+            .ofInstance(client.getGuestOSApi().listOSTypes()));
    }
 
    public OSCategoryIn(Supplier<Map<String, String>> categoriesSupplier, Supplier<Set<OSType>> osTypesSupplier) {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java
index 42698d4..47cecdf 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java
@@ -21,7 +21,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import javax.annotation.Resource;
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.VirtualMachine;
 import org.jclouds.cloudstack.domain.VirtualMachine.State;
 import org.jclouds.logging.Logger;
@@ -38,13 +38,13 @@ import com.google.inject.Inject;
 @Singleton
 public class VirtualMachineDestroyed implements Predicate<VirtualMachine> {
 
-   private final CloudStackClient client;
+   private final CloudStackApi client;
 
    @Resource
    protected Logger logger = Logger.NULL;
 
    @Inject
-   public VirtualMachineDestroyed(CloudStackClient client) {
+   public VirtualMachineDestroyed(CloudStackApi client) {
       this.client = client;
    }
 
@@ -59,6 +59,6 @@ public class VirtualMachineDestroyed implements Predicate<VirtualMachine> {
    }
 
    private VirtualMachine refresh(VirtualMachine virtualMachine) {
-      return client.getVirtualMachineClient().getVirtualMachine(virtualMachine.getId());
+      return client.getVirtualMachineApi().getVirtualMachine(virtualMachine.getId());
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java
index 73974e7..1a1718a 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java
@@ -21,7 +21,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import javax.annotation.Resource;
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.VirtualMachine;
 import org.jclouds.logging.Logger;
 
@@ -37,13 +37,13 @@ import com.google.inject.Inject;
 @Singleton
 public class VirtualMachineExpunged implements Predicate<VirtualMachine> {
 
-   private final CloudStackClient client;
+   private final CloudStackApi client;
 
    @Resource
    protected Logger logger = Logger.NULL;
 
    @Inject
-   public VirtualMachineExpunged(CloudStackClient client) {
+   public VirtualMachineExpunged(CloudStackApi client) {
       this.client = client;
    }
 
@@ -53,6 +53,6 @@ public class VirtualMachineExpunged implements Predicate<VirtualMachine> {
    }
 
    private VirtualMachine refresh(VirtualMachine virtualMachine) {
-      return client.getVirtualMachineClient().getVirtualMachine(virtualMachine.getId());
+      return client.getVirtualMachineApi().getVirtualMachine(virtualMachine.getId());
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.java
index a129a38..2ec9bfc 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.java
@@ -21,7 +21,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import javax.annotation.Resource;
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.VirtualMachine;
 import org.jclouds.cloudstack.domain.VirtualMachine.State;
 import org.jclouds.logging.Logger;
@@ -38,13 +38,13 @@ import com.google.inject.Inject;
 @Singleton
 public class VirtualMachineRunning implements Predicate<VirtualMachine> {
 
-   private final CloudStackClient client;
+   private final CloudStackApi client;
 
    @Resource
    protected Logger logger = Logger.NULL;
 
    @Inject
-   public VirtualMachineRunning(CloudStackClient client) {
+   public VirtualMachineRunning(CloudStackApi client) {
       this.client = client;
    }
 
@@ -61,6 +61,6 @@ public class VirtualMachineRunning implements Predicate<VirtualMachine> {
    }
 
    private VirtualMachine refresh(VirtualMachine virtualMachine) {
-      return client.getVirtualMachineClient().getVirtualMachine(virtualMachine.getId());
+      return client.getVirtualMachineApi().getVirtualMachine(virtualMachine.getId());
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java
index dc3fbd1..d96bd1a 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java
@@ -24,7 +24,7 @@ import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.AsyncCreateResponse;
 import org.jclouds.cloudstack.domain.AsyncJob;
 import org.jclouds.compute.reference.ComputeServiceConstants;
@@ -42,11 +42,11 @@ public class BlockUntilJobCompletesAndReturnResult {
    @Named(ComputeServiceConstants.COMPUTE_LOGGER)
    protected Logger logger = Logger.NULL;
    
-   private final CloudStackClient client;
+   private final CloudStackApi client;
    private final Predicate<String> jobComplete;
 
    @Inject
-   public BlockUntilJobCompletesAndReturnResult(CloudStackClient client, Predicate<String> jobComplete) {
+   public BlockUntilJobCompletesAndReturnResult(CloudStackApi client, Predicate<String> jobComplete) {
       this.client = checkNotNull(client, "client");
       this.jobComplete = checkNotNull(jobComplete, "jobComplete");
    }
@@ -61,7 +61,7 @@ public class BlockUntilJobCompletesAndReturnResult {
    public <T> T apply(AsyncCreateResponse job) {
       boolean completed = jobComplete.apply(job.getJobId());
       logger.trace("<< job(%s) complete(%s)", job, completed);
-      AsyncJob<T> jobWithResult = client.getAsyncJobClient().<T> getAsyncJob(job.getJobId());
+      AsyncJob<T> jobWithResult = client.getAsyncJobApi().<T> getAsyncJob(job.getJobId());
       checkState(completed, "job %s failed to complete in time %s", job.getJobId(), jobWithResult);
       if (jobWithResult.getError() != null)
          throw new UncheckedExecutionException(String.format("job %s failed with exception %s", job.getJobId(),

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java
index f637478..2c99f8e 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java
@@ -23,7 +23,7 @@ import java.util.NoSuchElementException;
 import javax.annotation.Resource;
 import javax.inject.Inject;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.User;
 import org.jclouds.cloudstack.predicates.UserPredicates;
 import org.jclouds.domain.Credentials;
@@ -43,18 +43,18 @@ public class GetCurrentUser implements Supplier<User> {
    @Resource
    protected Logger logger = Logger.NULL;
 
-   private final CloudStackClient client;
+   private final CloudStackApi client;
    private final Supplier<Credentials> creds;
 
    @Inject
-   public GetCurrentUser(CloudStackClient client, @Provider Supplier<Credentials> creds) {
+   public GetCurrentUser(CloudStackApi client, @Provider Supplier<Credentials> creds) {
       this.client = checkNotNull(client, "client");
       this.creds = checkNotNull(creds, "creds");
    }
 
    @Override
    public User get() {
-      Iterable<User> users = Iterables.concat(client.getAccountClient().listAccounts());
+      Iterable<User> users = Iterables.concat(client.getAccountApi().listAccounts());
       Predicate<User> apiKeyMatches = UserPredicates.apiKeyEquals(creds.get().identity);
       User currentUser = null;
       try {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java
index 2005d38..7b11ef6 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java
@@ -23,10 +23,10 @@ import java.util.Map;
 
 import javax.inject.Inject;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.Network;
 import org.jclouds.cloudstack.domain.User;
-import org.jclouds.cloudstack.features.NetworkClient;
+import org.jclouds.cloudstack.features.NetworkApi;
 import org.jclouds.collect.Memoized;
 
 import com.google.common.base.Function;
@@ -38,11 +38,11 @@ import com.google.common.collect.Maps;
  * @author Adrian Cole
  */
 public class NetworksForCurrentUser implements Supplier<Map<String, Network>> {
-   private final CloudStackClient client;
+   private final CloudStackApi client;
    private final Supplier<User> currentUserSupplier;
 
    @Inject
-   public NetworksForCurrentUser(CloudStackClient client, @Memoized Supplier<User> currentUserSupplier) {
+   public NetworksForCurrentUser(CloudStackApi client, @Memoized Supplier<User> currentUserSupplier) {
       this.client = checkNotNull(client, "client");
       this.currentUserSupplier = checkNotNull(currentUserSupplier, "currentUserSupplier");
    }
@@ -50,7 +50,7 @@ public class NetworksForCurrentUser implements Supplier<Map<String, Network>> {
    @Override
    public Map<String, Network> get() {
       User currentUser = currentUserSupplier.get();
-      NetworkClient networkClient = client.getNetworkClient();
+      NetworkApi networkClient = client.getNetworkApi();
       return Maps.uniqueIndex(
             networkClient.listNetworks(accountInDomain(currentUser.getAccount(), currentUser.getDomainId())),
             new Function<Network, String>() {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/main/java/org/jclouds/cloudstack/util/ApiKeyPairs.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/util/ApiKeyPairs.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/util/ApiKeyPairs.java
index 4064e5d..5ac2147 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/util/ApiKeyPairs.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/util/ApiKeyPairs.java
@@ -26,7 +26,7 @@ import java.util.Set;
 import org.jclouds.Constants;
 import org.jclouds.ContextBuilder;
 import org.jclouds.cloudstack.CloudStackApiMetadata;
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.CloudStackContext;
 import org.jclouds.cloudstack.domain.Account;
 import org.jclouds.cloudstack.domain.ApiKeyPair;
@@ -65,8 +65,8 @@ public class ApiKeyPairs {
                .credentials(String.format("%s/%s", checkNotNull(domain, "domain"), checkNotNull(username, "username")), password)
                .overrides(overrides).build(CloudStackContext.class);
 
-         CloudStackClient client = context.unwrap(CloudStackApiMetadata.CONTEXT_TOKEN).getApi();
-         Set<Account> listOfAccounts = client.getAccountClient().listAccounts();
+         CloudStackApi client = context.getApi();
+         Set<Account> listOfAccounts = client.getAccountApi().listAccounts();
 
          domain = (domain.equals("") || domain.equals("/")) ? "ROOT" : domain;
          for (Account account : listOfAccounts) {

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/CloudStackAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/CloudStackAsyncClientTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/CloudStackAsyncClientTest.java
deleted file mode 100644
index 1d3d3a9..0000000
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/CloudStackAsyncClientTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.cloudstack;
-
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-
-import org.jclouds.cloudstack.internal.BaseCloudStackAsyncClientTest;
-import org.jclouds.http.HttpRequest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-/**
- * Tests behavior of {@code CloudStackAsyncClient}
- * 
- * @author Adrian Cole
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during
-// surefire
-@Test(groups = "unit", testName = "CloudStackAsyncClientTest")
-public class CloudStackAsyncClientTest extends BaseCloudStackAsyncClientTest<CloudStackAsyncClient> {
-
-   private CloudStackAsyncClient asyncClient;
-   private CloudStackClient syncClient;
-   private CloudStackDomainAsyncClient domainAsyncClient;
-   private CloudStackDomainClient domainSyncClient;
-   private CloudStackGlobalAsyncClient globalAsyncClient;
-   private CloudStackGlobalClient globalSyncClient;
-
-   public void testSync() throws SecurityException, NoSuchMethodException, InterruptedException, ExecutionException {
-      assert syncClient.getZoneClient() != null;
-      assert syncClient.getTemplateClient() != null;
-      assert syncClient.getOfferingClient() != null;
-      assert syncClient.getNetworkClient() != null;
-      assert syncClient.getVirtualMachineClient() != null;
-      assert syncClient.getSecurityGroupClient() != null;
-      assert syncClient.getAsyncJobClient() != null;
-      assert syncClient.getAddressClient() != null;
-      assert syncClient.getNATClient() != null;
-      assert syncClient.getFirewallClient() != null;
-      assert syncClient.getLoadBalancerClient() != null;
-      assert syncClient.getGuestOSClient() != null;
-      assert syncClient.getHypervisorClient() != null;
-      assert syncClient.getConfigurationClient() != null;
-      assert syncClient.getAccountClient() != null;
-      assert syncClient.getSSHKeyPairClient() != null;
-      assert syncClient.getVMGroupClient() != null;
-      assert syncClient.getEventClient() != null;
-      assert syncClient.getLimitClient() != null;
-      assert syncClient.getISOClient() != null;
-      assert syncClient.getVolumeClient() != null;
-      assert syncClient.getSnapshotClient() != null;
-
-      assert domainSyncClient.getLimitClient() != null;
-      assert domainSyncClient.getAccountClient() != null;
-
-      assert globalSyncClient.getAccountClient() != null;
-   }
-
-   public void testAsync() throws SecurityException, NoSuchMethodException, InterruptedException, ExecutionException {
-      assert asyncClient.getZoneClient() != null;
-      assert asyncClient.getTemplateClient() != null;
-      assert asyncClient.getOfferingClient() != null;
-      assert asyncClient.getNetworkClient() != null;
-      assert asyncClient.getVirtualMachineClient() != null;
-      assert asyncClient.getSecurityGroupClient() != null;
-      assert asyncClient.getAsyncJobClient() != null;
-      assert asyncClient.getAddressClient() != null;
-      assert asyncClient.getNATClient() != null;
-      assert asyncClient.getFirewallClient() != null;
-      assert asyncClient.getLoadBalancerClient() != null;
-      assert asyncClient.getGuestOSClient() != null;
-      assert asyncClient.getHypervisorClient() != null;
-      assert asyncClient.getConfigurationClient() != null;
-      assert asyncClient.getAccountClient() != null;
-      assert asyncClient.getSSHKeyPairClient() != null;
-      assert asyncClient.getVMGroupClient() != null;
-      assert asyncClient.getEventClient() != null;
-      assert asyncClient.getLimitClient() != null;
-      assert asyncClient.getISOClient() != null;
-      assert asyncClient.getVolumeClient() != null;
-      assert asyncClient.getSnapshotClient() != null;
-
-      assert domainAsyncClient.getLimitClient() != null;
-      assert domainAsyncClient.getAccountClient() != null;
-
-      assert globalAsyncClient.getAccountClient() != null;
-   }
-
-   @BeforeClass
-   @Override
-   protected void setupFactory() throws IOException {
-      super.setupFactory();
-      asyncClient = injector.getInstance(CloudStackAsyncClient.class);
-      syncClient = injector.getInstance(CloudStackClient.class);
-      domainAsyncClient = injector.getInstance(CloudStackDomainAsyncClient.class);
-      domainSyncClient = injector.getInstance(CloudStackDomainClient.class);
-      globalAsyncClient = injector.getInstance(CloudStackGlobalAsyncClient.class);
-      globalSyncClient = injector.getInstance(CloudStackGlobalClient.class);
-   }
-
-   @Override
-   protected void checkFilters(HttpRequest request) {
-
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/PasswordAuthenticationExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/PasswordAuthenticationExpectTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/PasswordAuthenticationExpectTest.java
index 97c29d3..fbd132f 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/PasswordAuthenticationExpectTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/PasswordAuthenticationExpectTest.java
@@ -21,7 +21,7 @@ import static org.testng.Assert.assertNotNull;
 import java.util.Properties;
 
 import org.jclouds.cloudstack.config.CloudStackProperties;
-import org.jclouds.cloudstack.features.AccountClient;
+import org.jclouds.cloudstack.features.AccountApi;
 import org.jclouds.cloudstack.internal.BaseCloudStackExpectTest;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -36,7 +36,7 @@ import com.google.common.net.HttpHeaders;
  * @author Adrian Cole
  */
 @Test(groups = "unit", testName = "PasswordAuthenticationExpectTest")
-public class PasswordAuthenticationExpectTest extends BaseCloudStackExpectTest<AccountClient> {
+public class PasswordAuthenticationExpectTest extends BaseCloudStackExpectTest<AccountApi> {
 
    /**
     * this reflects the properties that a user would pass to createContext
@@ -50,7 +50,7 @@ public class PasswordAuthenticationExpectTest extends BaseCloudStackExpectTest<A
 
    public void testLoginWithPasswordSetsSessionKeyAndCookie() {
       
-      AccountClient client = requestsSendResponses(
+      AccountApi client = requestsSendResponses(
                login, loginResponse, 
          HttpRequest.builder()
             .method("GET")
@@ -68,7 +68,7 @@ public class PasswordAuthenticationExpectTest extends BaseCloudStackExpectTest<A
    }
 
    @Override
-   protected AccountClient clientFrom(CloudStackContext context) {
-      return context.unwrap(CloudStackApiMetadata.CONTEXT_TOKEN).getApi().getAccountClient();
+   protected AccountApi clientFrom(CloudStackContext context) {
+      return context.getApi().getAccountApi();
    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterLiveTest.java
index 82efa60..af1ef2a 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackComputeServiceAdapterLiveTest.java
@@ -29,7 +29,7 @@ import java.util.Set;
 
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.compute.config.CloudStackComputeServiceContextModule;
 import org.jclouds.cloudstack.compute.functions.OrphanedGroupsByZoneId;
 import org.jclouds.cloudstack.compute.loaders.CreateUniqueKeyPair;
@@ -38,7 +38,7 @@ import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
 import org.jclouds.cloudstack.compute.strategy.CloudStackComputeServiceAdapter;
 import org.jclouds.cloudstack.compute.strategy.OptionsConverter;
 import org.jclouds.cloudstack.config.CloudStackParserModule;
-import org.jclouds.cloudstack.config.CloudStackRestClientModule;
+import org.jclouds.cloudstack.config.CloudStackHttpApiModule;
 import org.jclouds.cloudstack.domain.FirewallRule;
 import org.jclouds.cloudstack.domain.IPForwardingRule;
 import org.jclouds.cloudstack.domain.Network;
@@ -56,7 +56,7 @@ import org.jclouds.cloudstack.functions.GetFirewallRulesByVirtualMachine;
 import org.jclouds.cloudstack.functions.GetIPForwardingRulesByVirtualMachine;
 import org.jclouds.cloudstack.functions.StaticNATVirtualMachineInNetwork;
 import org.jclouds.cloudstack.functions.ZoneIdToZone;
-import org.jclouds.cloudstack.internal.BaseCloudStackClientLiveTest;
+import org.jclouds.cloudstack.internal.BaseCloudStackApiLiveTest;
 import org.jclouds.cloudstack.predicates.JobComplete;
 import org.jclouds.cloudstack.predicates.TemplatePredicates;
 import org.jclouds.cloudstack.suppliers.GetCurrentUser;
@@ -99,7 +99,7 @@ import com.google.inject.assistedinject.FactoryModuleBuilder;
 import com.google.inject.name.Names;
 
 @Test(groups = "live", singleThreaded = true, testName = "CloudStackComputeServiceAdapterLiveTest")
-public class CloudStackComputeServiceAdapterLiveTest extends BaseCloudStackClientLiveTest {
+public class CloudStackComputeServiceAdapterLiveTest extends BaseCloudStackApiLiveTest {
 
    private CloudStackComputeServiceAdapter adapter;
    private NodeAndInitialCredentials<VirtualMachine> vm;
@@ -118,8 +118,8 @@ public class CloudStackComputeServiceAdapterLiveTest extends BaseCloudStackClien
       keyPairName = prefix + "-adapter-test-keypair";
       keyPair = ComputeTestUtils.setupKeyPair();
 
-      client.getSSHKeyPairClient().deleteSSHKeyPair(keyPairName);
-      client.getSSHKeyPairClient().registerSSHKeyPair(keyPairName, keyPair.get("public"));
+      client.getSSHKeyPairApi().deleteSSHKeyPair(keyPairName);
+      client.getSSHKeyPairApi().registerSSHKeyPair(keyPairName, keyPair.get("public"));
    }
 
    @Test
@@ -137,11 +137,11 @@ public class CloudStackComputeServiceAdapterLiveTest extends BaseCloudStackClien
       Template template = view.getComputeService().templateBuilder().build();
 
       if (!client
-            .getTemplateClient()
+            .getTemplateApi()
             .getTemplateInZone(template.getImage().getId(),
                   template.getLocation().getId()).isPasswordEnabled()) {
 
-         // TODO: look at SecurityGroupClientLiveTest for how to do this
+         // TODO: look at SecurityGroupApiLiveTest for how to do this
          template.getOptions().as(CloudStackTemplateOptions.class).keyPair(keyPairName);
       }
       vm = adapter.createNodeWithGroupEncodedIntoName(group, name, template);
@@ -150,7 +150,7 @@ public class CloudStackComputeServiceAdapterLiveTest extends BaseCloudStackClien
       // check to see if we setup a NAT rule (conceding we could check this from
       // cache)
       IPForwardingRule rule = getFirst(
-         client.getNATClient().getIPForwardingRulesForVirtualMachine(vm.getNode().getId()), null);
+         client.getNATApi().getIPForwardingRulesForVirtualMachine(vm.getNode().getId()), null);
 
       String address = rule != null ? rule.getIPAddress() : vm.getNode().getIPAddress();
 

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java
index 9df4c80..66e73ca 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java
@@ -30,7 +30,7 @@ import java.util.logging.Logger;
 import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions;
 import org.jclouds.cloudstack.domain.Network;
 import org.jclouds.cloudstack.domain.TrafficType;
-import org.jclouds.cloudstack.internal.BaseCloudStackClientLiveTest;
+import org.jclouds.cloudstack.internal.BaseCloudStackApiLiveTest;
 import org.jclouds.cloudstack.options.ListNetworksOptions;
 import org.jclouds.compute.RunNodesException;
 import org.jclouds.compute.domain.NodeMetadata;
@@ -42,14 +42,14 @@ import org.testng.annotations.Test;
  * @author Adrian Cole
  */
 @Test(groups = "live", testName = "CloudStackExperimentLiveTest")
-public class CloudStackExperimentLiveTest extends BaseCloudStackClientLiveTest {
+public class CloudStackExperimentLiveTest extends BaseCloudStackApiLiveTest {
 
    public CloudStackExperimentLiveTest() {
       provider = "cloudstack";
    }
 
    protected void deleteNetworksInZoneWithVlanId(String zoneId, String vlanId) {
-      Set<Network> networks = domainAdminClient.getNetworkClient().listNetworks(
+      Set<Network> networks = domainAdminClient.getNetworkApi().listNetworks(
          ListNetworksOptions.Builder
             .isDefault(false)
             .isSystem(false)
@@ -61,7 +61,7 @@ public class CloudStackExperimentLiveTest extends BaseCloudStackClientLiveTest {
       URI broadcastUri = URI.create("vlan://" + vlanId);
       for (Network net : networks) {
          if (broadcastUri.equals(net.getBroadcastURI())) {
-            String jobId = domainAdminClient.getNetworkClient().deleteNetwork(net.getId());
+            String jobId = domainAdminClient.getNetworkApi().deleteNetwork(net.getId());
             adminJobComplete.apply(jobId);
          }
       }
@@ -91,11 +91,11 @@ public class CloudStackExperimentLiveTest extends BaseCloudStackClientLiveTest {
 
          // find a network offering that supports vlans in our zone
          String offeringId = get(
-            cloudStackContext.getApi().getOfferingClient().listNetworkOfferings(specifyVLAN(true).zoneId(zoneId)), 0).getId();
+            cloudStackContext.getApi().getOfferingApi().listNetworkOfferings(specifyVLAN(true).zoneId(zoneId)), 0).getId();
 
          // create an arbitrary network
          network = domainAdminClient
-            .getNetworkClient()
+            .getNetworkApi()
                // startIP/endIP/netmask/gateway must be specified together
             .createNetworkInZone(zoneId, offeringId, group, group,
                vlan(vlanId).startIP("192.168.1.2").netmask("255.255.255.0").gateway("192.168.1.1"));
@@ -115,7 +115,7 @@ public class CloudStackExperimentLiveTest extends BaseCloudStackClientLiveTest {
          if (nodes != null)
             view.getComputeService().destroyNodesMatching(NodePredicates.inGroup(group));
          if (network != null)
-            domainAdminClient.getNetworkClient().deleteNetwork(network.getId());
+            domainAdminClient.getNetworkApi().deleteNetwork(network.getId());
       }
    }
 

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/CreateUniqueKeyPairTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/CreateUniqueKeyPairTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/CreateUniqueKeyPairTest.java
index 1bb09e6..b0c485c 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/CreateUniqueKeyPairTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/CreateUniqueKeyPairTest.java
@@ -24,9 +24,9 @@ import static org.testng.Assert.assertEquals;
 
 import java.net.UnknownHostException;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.SshKeyPair;
-import org.jclouds.cloudstack.features.SSHKeyPairClient;
+import org.jclouds.cloudstack.features.SSHKeyPairApi;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Supplier;
@@ -44,12 +44,12 @@ public class CreateUniqueKeyPairTest {
 
    @Test
    public void testLoad() throws UnknownHostException {
-      final CloudStackClient client = createMock(CloudStackClient.class);
-      SSHKeyPairClient keyClient = createMock(SSHKeyPairClient.class);
+      final CloudStackApi client = createMock(CloudStackApi.class);
+      SSHKeyPairApi keyClient = createMock(SSHKeyPairApi.class);
 
       SshKeyPair pair = createMock(SshKeyPair.class);
 
-      expect(client.getSSHKeyPairClient()).andReturn(keyClient);
+      expect(client.getSSHKeyPairApi()).andReturn(keyClient);
       expect(keyClient.createSSHKeyPair("group-1")).andReturn(pair);
 
       replay(client, keyClient);
@@ -60,7 +60,7 @@ public class CreateUniqueKeyPairTest {
          protected void configure() {
             bind(new TypeLiteral<Supplier<String>>() {
             }).toInstance(Suppliers.ofInstance("1"));
-            bind(CloudStackClient.class).toInstance(client);
+            bind(CloudStackApi.class).toInstance(client);
          }
 
       }).getInstance(CreateUniqueKeyPair.class);

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/FindSecurityGroupOrCreateTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/FindSecurityGroupOrCreateTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/FindSecurityGroupOrCreateTest.java
index fa6b749..68dd292 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/FindSecurityGroupOrCreateTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/loaders/FindSecurityGroupOrCreateTest.java
@@ -29,15 +29,15 @@ import static org.testng.Assert.assertEquals;
 import java.net.UnknownHostException;
 import javax.inject.Singleton;
 
-import org.jclouds.cloudstack.CloudStackClient;
+import org.jclouds.cloudstack.CloudStackApi;
 import org.jclouds.cloudstack.domain.IngressRule;
 import org.jclouds.cloudstack.domain.SecurityGroup;
 import org.jclouds.cloudstack.domain.Zone;
 import org.jclouds.cloudstack.domain.ZoneAndName;
 import org.jclouds.cloudstack.domain.ZoneSecurityGroupNamePortsCidrs;
-import org.jclouds.cloudstack.features.AsyncJobClient;
-import org.jclouds.cloudstack.features.SecurityGroupClient;
-import org.jclouds.cloudstack.features.ZoneClient;
+import org.jclouds.cloudstack.features.AsyncJobApi;
+import org.jclouds.cloudstack.features.SecurityGroupApi;
+import org.jclouds.cloudstack.features.ZoneApi;
 import org.jclouds.cloudstack.functions.CreateSecurityGroupIfNeeded;
 import org.jclouds.cloudstack.functions.ZoneIdToZone;
 import org.jclouds.cloudstack.predicates.JobComplete;
@@ -66,10 +66,10 @@ public class FindSecurityGroupOrCreateTest {
 
    @Test
    public void testLoad() throws UnknownHostException {
-      final CloudStackClient client = createMock(CloudStackClient.class);
-      SecurityGroupClient secClient = createMock(SecurityGroupClient.class);
-      ZoneClient zoneClient = createMock(ZoneClient.class);
-      AsyncJobClient jobClient = createMock(AsyncJobClient.class);
+      final CloudStackApi client = createMock(CloudStackApi.class);
+      SecurityGroupApi secClient = createMock(SecurityGroupApi.class);
+      ZoneApi zoneClient = createMock(ZoneApi.class);
+      AsyncJobApi jobClient = createMock(AsyncJobApi.class);
       
       SecurityGroup group = createMock(SecurityGroup.class);
       
@@ -79,10 +79,10 @@ public class FindSecurityGroupOrCreateTest {
       expect(group.getId()).andReturn("sec-1234").anyTimes();
       expect(zone.isSecurityGroupsEnabled()).andReturn(true);
       
-      expect(client.getSecurityGroupClient()).andReturn(secClient)
+      expect(client.getSecurityGroupApi()).andReturn(secClient)
          .anyTimes();
-      expect(client.getZoneClient()).andReturn(zoneClient);
-      expect(client.getAsyncJobClient()).andReturn(jobClient).anyTimes();
+      expect(client.getZoneApi()).andReturn(zoneClient);
+      expect(client.getAsyncJobApi()).andReturn(jobClient).anyTimes();
 
       expect(zoneClient.getZone("zone-1")).andReturn(zone);
       expect(secClient.getSecurityGroupByName("group-1")).andReturn(null);
@@ -107,7 +107,7 @@ public class FindSecurityGroupOrCreateTest {
             protected void configure() {
                bind(new TypeLiteral<Supplier<String>>() {
                   }).toInstance(Suppliers.ofInstance("1"));
-               bind(CloudStackClient.class).toInstance(client);
+               bind(CloudStackApi.class).toInstance(client);
                bind(new TypeLiteral<CacheLoader<String, Zone>>() {}).
                   to(ZoneIdToZone.class);
                bind(new TypeLiteral<Supplier<LoadingCache<String, Zone>>>() {}).
@@ -137,10 +137,10 @@ public class FindSecurityGroupOrCreateTest {
    
    @Test
    public void testLoadAlreadyExists() throws UnknownHostException {
-      final CloudStackClient client = createMock(CloudStackClient.class);
-      SecurityGroupClient secClient = createMock(SecurityGroupClient.class);
-      ZoneClient zoneClient = createMock(ZoneClient.class);
-      AsyncJobClient jobClient = createMock(AsyncJobClient.class);
+      final CloudStackApi client = createMock(CloudStackApi.class);
+      SecurityGroupApi secClient = createMock(SecurityGroupApi.class);
+      ZoneApi zoneClient = createMock(ZoneApi.class);
+      AsyncJobApi jobClient = createMock(AsyncJobApi.class);
       
       SecurityGroup group = createMock(SecurityGroup.class);
       
@@ -148,10 +148,10 @@ public class FindSecurityGroupOrCreateTest {
 
       expect(group.getId()).andReturn("sec-1234").anyTimes();
       
-      expect(client.getSecurityGroupClient()).andReturn(secClient)
+      expect(client.getSecurityGroupApi()).andReturn(secClient)
          .anyTimes();
-      expect(client.getZoneClient()).andReturn(zoneClient);
-      expect(client.getAsyncJobClient()).andReturn(jobClient).anyTimes();
+      expect(client.getZoneApi()).andReturn(zoneClient);
+      expect(client.getAsyncJobApi()).andReturn(jobClient).anyTimes();
 
       expect(secClient.getSecurityGroupByName("group-1")).andReturn(group);
 
@@ -169,7 +169,7 @@ public class FindSecurityGroupOrCreateTest {
             protected void configure() {
                bind(new TypeLiteral<Supplier<String>>() {
                   }).toInstance(Suppliers.ofInstance("1"));
-               bind(CloudStackClient.class).toInstance(client);
+               bind(CloudStackApi.class).toInstance(client);
                bind(new TypeLiteral<CacheLoader<String, Zone>>() {}).
                   to(ZoneIdToZone.class);
                bind(new TypeLiteral<Supplier<LoadingCache<String, Zone>>>() {}).
@@ -198,10 +198,10 @@ public class FindSecurityGroupOrCreateTest {
 
    @Test(expectedExceptions = IllegalArgumentException.class)
    public void testLoadZoneNoSecurityGroups() throws UnknownHostException {
-      final CloudStackClient client = createMock(CloudStackClient.class);
-      SecurityGroupClient secClient = createMock(SecurityGroupClient.class);
-      ZoneClient zoneClient = createMock(ZoneClient.class);
-      AsyncJobClient jobClient = createMock(AsyncJobClient.class);
+      final CloudStackApi client = createMock(CloudStackApi.class);
+      SecurityGroupApi secClient = createMock(SecurityGroupApi.class);
+      ZoneApi zoneClient = createMock(ZoneApi.class);
+      AsyncJobApi jobClient = createMock(AsyncJobApi.class);
       
       SecurityGroup group = createMock(SecurityGroup.class);
       
@@ -209,10 +209,10 @@ public class FindSecurityGroupOrCreateTest {
 
       expect(zone.isSecurityGroupsEnabled()).andReturn(false);
       
-      expect(client.getSecurityGroupClient()).andReturn(secClient)
+      expect(client.getSecurityGroupApi()).andReturn(secClient)
          .anyTimes();
-      expect(client.getZoneClient()).andReturn(zoneClient);
-      expect(client.getAsyncJobClient()).andReturn(jobClient).anyTimes();
+      expect(client.getZoneApi()).andReturn(zoneClient);
+      expect(client.getAsyncJobApi()).andReturn(jobClient).anyTimes();
 
       expect(zoneClient.getZone("zone-1")).andReturn(zone);
       expect(secClient.getSecurityGroupByName("group-1")).andReturn(null);
@@ -231,7 +231,7 @@ public class FindSecurityGroupOrCreateTest {
             protected void configure() {
                bind(new TypeLiteral<Supplier<String>>() {
                   }).toInstance(Suppliers.ofInstance("1"));
-               bind(CloudStackClient.class).toInstance(client);
+               bind(CloudStackApi.class).toInstance(client);
                bind(new TypeLiteral<CacheLoader<String, Zone>>() {}).
                   to(ZoneIdToZone.class);
                bind(new TypeLiteral<Supplier<LoadingCache<String, Zone>>>() {}).

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiExpectTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiExpectTest.java
new file mode 100644
index 0000000..883b3da
--- /dev/null
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiExpectTest.java
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.cloudstack.features;
+
+import static org.testng.Assert.assertEquals;
+
+import java.util.Set;
+
+import org.jclouds.cloudstack.CloudStackApiMetadata;
+import org.jclouds.cloudstack.CloudStackContext;
+import org.jclouds.cloudstack.domain.Account;
+import org.jclouds.cloudstack.domain.User;
+import org.jclouds.cloudstack.internal.BaseCloudStackExpectTest;
+import org.jclouds.date.internal.SimpleDateFormatDateService;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.http.HttpResponse;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableSet;
+
+/**
+ * Test the CloudStack AccountApi
+ *
+ * @author Andrei Savu
+ */
+@Test(groups = "unit", testName = "AccountApiExpectTest")
+public class AccountApiExpectTest extends BaseCloudStackExpectTest<AccountApi> {
+
+
+   public void testListAccountsWhenResponseIs2xx() {
+
+      AccountApi client = requestSendsResponse(
+         HttpRequest.builder()
+            .method("GET")
+            .endpoint("http://localhost:8080/client/api?response=json&command=listAccounts&listAll=true&apiKey=identity&signature=yMZYMZxzFlaUsbfxtuppMwNhpXI%3D")
+            .addHeader("Accept", "application/json")
+            .build(),
+         HttpResponse.builder()
+            .statusCode(200)
+            .payload(payloadFromResource("/listaccountsresponse.json"))
+            .build());
+
+      Set<User> users = ImmutableSet.of(
+         User.builder()
+            .id("505")
+            .name("jclouds")
+            .firstName("Adrian")
+            .lastName("Cole")
+            .email("adrian@jclouds.org")
+            .created(new SimpleDateFormatDateService().iso8601SecondsDateParse("2011-04-19T01:57:24+0000"))
+            .state(User.State.ENABLED)
+            .account("jclouds")
+            .accountType(Account.Type.USER)
+            .domainId("457")
+            .domain("AA000062-jclouds-dev")
+            .apiKey("APIKEY")
+            .secretKey("SECRETKEY").build());
+
+      assertEquals(client.listAccounts(),
+         ImmutableSet.of(Account.builder()
+            .id("505")
+            .name("jclouds")
+            .type(Account.Type.USER)
+            .domainId("457")
+            .domain("AA000062-jclouds-dev")
+            .receivedBytes(318900216)
+            .sentBytes(23189677)
+            .VMLimit(15l)
+            .VMs(1)
+            .IPsAvailable(14l)
+            .IPLimit(15l)
+            .IPs(0)
+            .IPsAvailable(15l)
+            .volumeLimit(90l)
+            .volumes(2)
+            .volumesAvailable(88l)
+            .snapshotLimit(250l)
+            .snapshots(0)
+            .snapshotsAvailable(250l)
+            .templateLimit(15l)
+            .templates(0)
+            .templatesAvailable(15l)
+            .VMsAvailable(14l)
+            .VMsStopped(0)
+            .VMsRunning(1)
+            .state(Account.State.ENABLED)
+            .users(users).build()));
+   }
+
+   @Override
+   protected AccountApi clientFrom(CloudStackContext context) {
+      return context.getApi().getAccountApi();
+   }
+}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiLiveTest.java
new file mode 100644
index 0000000..1ad3630
--- /dev/null
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiLiveTest.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.cloudstack.features;
+
+import static org.testng.Assert.assertEquals;
+
+import org.jclouds.cloudstack.domain.Account;
+import org.jclouds.cloudstack.domain.User;
+import org.jclouds.cloudstack.internal.BaseCloudStackApiLiveTest;
+import org.testng.annotations.Test;
+
+/**
+ * Tests behavior of {@code AccountApi}
+ * 
+ * @author Adrian Cole
+ */
+@Test(groups = "live", singleThreaded = true, testName = "AccountApiLiveTest")
+public class AccountApiLiveTest extends BaseCloudStackApiLiveTest {
+
+   @Test
+   public void testListAccounts() throws Exception {
+      for (Account securityAccount : client.getAccountApi().listAccounts())
+         checkAccount(securityAccount);
+   }
+
+   protected void checkAccount(Account account) {
+      assert account.getId() != null : account;
+      assertEquals(account.toString(), client.getAccountApi().getAccount(account.getId()).toString());
+      assert account.getName() != null : account;
+      assert account.getType() != null && account.getType() != Account.Type.UNRECOGNIZED : account;
+      assert account.getDomain() != null : account;
+      assert account.getDomainId() != null : account;
+      assert account.getUsers() != null : account;
+      for (User user : account.getUsers()) {
+         assert user.getName() != null : user;
+         assert user.getAccountType().equals(account.getType()) : user;
+         assert user.getDomain().equals(account.getDomain()) : user;
+         assert user.getDomainId().equals(account.getDomainId()) : user;
+         assert user.getCreated() != null : user;
+         assert user.getEmail() != null : user;
+         assert user.getLastName() != null : user;
+         assert user.getFirstName() != null : user;
+         assert user.getId() != null : user;
+         assert user.getState() != null : user;
+      }
+      assert account.getIPsAvailable() == null || account.getIPsAvailable() >= 0 : account;
+      assert account.getIPLimit() == null || account.getIPLimit() >= 0 : account;
+      assert account.getIPs() >= 0 : account;
+      assert account.getReceivedBytes() >= 0 : account;
+      assert account.getSentBytes() >= 0 : account;
+      assert account.getSnapshotsAvailable() == null || account.getSnapshotsAvailable() >= 0 : account;
+      assert account.getSnapshotLimit() == null || account.getSnapshotLimit() >= 0 : account;
+      assert account.getSnapshots() >= 0 : account;
+      assert account.getState() != null && account.getState() != Account.State.UNRECOGNIZED : account;
+      assert account.getTemplatesAvailable() == null || account.getTemplatesAvailable() >= 0 : account;
+      assert account.getTemplateLimit() == null || account.getTemplateLimit() >= 0 : account;
+      assert account.getTemplates() >= 0 : account;
+      assert account.getVMsAvailable() == null || account.getVMsAvailable() >= 0 : account;
+      assert account.getVMLimit() == null || account.getVMLimit() >= 0 : account;
+      assert account.getVMsRunning() >= 0 : account;
+      assert account.getVMsStopped() >= 0 : account;
+      assert account.getVMs() >= 0 : account;
+      assert account.getVolumesAvailable() == null || account.getVolumesAvailable() >= 0 : account;
+      assert account.getVolumeLimit() == null || account.getVolumeLimit() >= 0 : account;
+      assert account.getVolumes() >= 0 : account;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiTest.java
new file mode 100644
index 0000000..14cb153
--- /dev/null
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountApiTest.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.cloudstack.features;
+import static org.jclouds.reflect.Reflection2.method;
+
+import java.io.IOException;
+
+import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404;
+import org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import org.jclouds.cloudstack.internal.BaseCloudStackApiTest;
+import org.jclouds.cloudstack.options.ListAccountsOptions;
+import org.jclouds.functions.IdentityFunction;
+import org.jclouds.http.functions.ParseFirstJsonValueNamed;
+import org.jclouds.rest.internal.GeneratedHttpRequest;
+import org.testng.annotations.Test;
+
+import com.google.common.base.Functions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.reflect.Invokable;
+
+/**
+ * Tests behavior of {@code AccountApi}
+ * 
+ * @author Adrian Cole
+ */
+// NOTE:without testName, this will not call @Before* and fail w/NPE during
+// surefire
+@Test(groups = "unit", testName = "AccountApiTest")
+public class AccountApiTest extends BaseCloudStackApiTest<AccountApi> {
+
+   public void testListAccounts() throws SecurityException, NoSuchMethodException, IOException {
+      Invokable<?, ?> method = method(AccountApi.class, "listAccounts", ListAccountsOptions[].class);
+      GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.of());
+
+      assertRequestLineEquals(httpRequest,
+            "GET http://localhost:8080/client/api?response=json&command=listAccounts&listAll=true HTTP/1.1");
+      assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n");
+      assertPayloadEquals(httpRequest, null, null, false);
+
+      assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class);
+      assertSaxResponseParserClassEquals(method, null);
+      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
+
+      checkFilters(httpRequest);
+
+   }
+
+   public void testListAccountsOptions() throws SecurityException, NoSuchMethodException, IOException {
+      Invokable<?, ?> method = method(AccountApi.class, "listAccounts", ListAccountsOptions[].class);
+      GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.<Object> of(
+            ListAccountsOptions.Builder.accountInDomain("jclouds", "123")));
+
+      assertRequestLineEquals(httpRequest,
+            "GET http://localhost:8080/client/api?response=json&command=listAccounts&listAll=true&account=jclouds&domainid=123 HTTP/1.1");
+      assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n");
+      assertPayloadEquals(httpRequest, null, null, false);
+
+      assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class);
+      assertSaxResponseParserClassEquals(method, null);
+      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
+
+      checkFilters(httpRequest);
+
+   }
+
+   public void testGetAccount() throws SecurityException, NoSuchMethodException, IOException {
+      Invokable<?, ?> method = method(AccountApi.class, "getAccount", String.class);
+      GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.<Object> of("3"));
+
+      assertRequestLineEquals(httpRequest,
+            "GET http://localhost:8080/client/api?response=json&command=listAccounts&listAll=true&id=3 HTTP/1.1");
+      assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n");
+      assertPayloadEquals(httpRequest, null, null, false);
+
+      assertResponseParserClassEquals(method, httpRequest,
+            Functions.compose(IdentityFunction.INSTANCE, IdentityFunction.INSTANCE).getClass());
+      assertSaxResponseParserClassEquals(method, null);
+      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
+
+      checkFilters(httpRequest);
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c6986efd/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountAsyncClientTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountAsyncClientTest.java
deleted file mode 100644
index 4d8d9dc..0000000
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AccountAsyncClientTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.cloudstack.features;
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-
-import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.cloudstack.internal.BaseCloudStackAsyncClientTest;
-import org.jclouds.cloudstack.options.ListAccountsOptions;
-import org.jclouds.functions.IdentityFunction;
-import org.jclouds.http.functions.ParseFirstJsonValueNamed;
-import org.jclouds.rest.internal.GeneratedHttpRequest;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Functions;
-import com.google.common.collect.ImmutableList;
-import com.google.common.reflect.Invokable;
-
-/**
- * Tests behavior of {@code AccountAsyncClient}
- * 
- * @author Adrian Cole
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during
-// surefire
-@Test(groups = "unit", testName = "AccountAsyncClientTest")
-public class AccountAsyncClientTest extends BaseCloudStackAsyncClientTest<AccountAsyncClient> {
-
-   public void testListAccounts() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AccountAsyncClient.class, "listAccounts", ListAccountsOptions[].class);
-      GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.of());
-
-      assertRequestLineEquals(httpRequest,
-            "GET http://localhost:8080/client/api?response=json&command=listAccounts&listAll=true HTTP/1.1");
-      assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n");
-      assertPayloadEquals(httpRequest, null, null, false);
-
-      assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(httpRequest);
-
-   }
-
-   public void testListAccountsOptions() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AccountAsyncClient.class, "listAccounts", ListAccountsOptions[].class);
-      GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.<Object> of(
-            ListAccountsOptions.Builder.accountInDomain("jclouds", "123")));
-
-      assertRequestLineEquals(httpRequest,
-            "GET http://localhost:8080/client/api?response=json&command=listAccounts&listAll=true&account=jclouds&domainid=123 HTTP/1.1");
-      assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n");
-      assertPayloadEquals(httpRequest, null, null, false);
-
-      assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(httpRequest);
-
-   }
-
-   public void testGetAccount() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AccountAsyncClient.class, "getAccount", String.class);
-      GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.<Object> of("3"));
-
-      assertRequestLineEquals(httpRequest,
-            "GET http://localhost:8080/client/api?response=json&command=listAccounts&listAll=true&id=3 HTTP/1.1");
-      assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n");
-      assertPayloadEquals(httpRequest, null, null, false);
-
-      assertResponseParserClassEquals(method, httpRequest,
-            Functions.compose(IdentityFunction.INSTANCE, IdentityFunction.INSTANCE).getClass());
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(httpRequest);
-
-   }
-
-}