You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ev...@apache.org on 2014/04/01 20:28:45 UTC

git commit: Revert compute examples back to use RestContext until Nova is unasynced

Repository: jclouds-examples
Updated Branches:
  refs/heads/master f5beea587 -> 24cfa7336


Revert compute examples back to use RestContext until Nova is unasynced


Project: http://git-wip-us.apache.org/repos/asf/jclouds-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-examples/commit/24cfa733
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-examples/tree/24cfa733
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-examples/diff/24cfa733

Branch: refs/heads/master
Commit: 24cfa7336e6c382394a9cc688d8a13fa50339f9d
Parents: f5beea5
Author: Jeremy Daggett <je...@rackspace.com>
Authored: Sun Mar 30 08:38:24 2014 -0700
Committer: Everett Toews <ev...@rackspace.com>
Committed: Tue Apr 1 13:28:37 2014 -0500

----------------------------------------------------------------------
 .../CreateVolumeAndAttach.java                  | 20 ++++++++++---------
 .../cloudblockstorage/DetachVolume.java         | 18 +++++++++--------
 .../cloudservers/CreateServerWithKeyPair.java   | 21 +++++++++++---------
 .../rackspace/cloudservers/ServerMetadata.java  | 17 +++++++++++-----
 4 files changed, 45 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/24cfa733/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java
index 657135d..6a2ab68 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/CreateVolumeAndAttach.java
@@ -48,9 +48,11 @@ import org.jclouds.openstack.cinder.v1.features.VolumeApi;
 import org.jclouds.openstack.cinder.v1.options.CreateVolumeOptions;
 import org.jclouds.openstack.cinder.v1.predicates.VolumePredicates;
 import org.jclouds.openstack.nova.v2_0.NovaApi;
+import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;
 import org.jclouds.openstack.nova.v2_0.domain.VolumeAttachment;
 import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId;
 import org.jclouds.openstack.nova.v2_0.extensions.VolumeAttachmentApi;
+import org.jclouds.rest.RestContext;
 import org.jclouds.scriptbuilder.ScriptBuilder;
 import org.jclouds.scriptbuilder.domain.OsFamily;
 import org.jclouds.sshj.config.SshjSshClientModule;
@@ -67,8 +69,9 @@ import com.google.inject.Module;
  */
 public class CreateVolumeAndAttach implements Closeable {
    private final ComputeService computeService;
-   private final NovaApi nova;
+   private final RestContext<NovaApi, NovaAsyncApi> nova;
    private final VolumeAttachmentApi volumeAttachmentApi;
+
    private final CinderApi cinderApi;
    private final VolumeApi volumeApi;
 
@@ -107,14 +110,14 @@ public class CreateVolumeAndAttach implements Closeable {
 
       Iterable<Module> modules = ImmutableSet.<Module> of(new SshjSshClientModule());
 
-      ContextBuilder builder = ContextBuilder.newBuilder(provider)
+      ComputeServiceContext context = ContextBuilder.newBuilder(provider)
             .credentials(username, apiKey)
             .modules(modules)
-            .overrides(overrides);
-
-      computeService = builder.buildView(ComputeServiceContext.class).getComputeService();
-      nova = builder.buildApi(NovaApi.class);
-      volumeAttachmentApi = nova.getVolumeAttachmentExtensionForZone(ZONE).get();
+            .overrides(overrides)
+            .buildView(ComputeServiceContext.class);
+      computeService = context.getComputeService();
+      nova = context.unwrap();
+      volumeAttachmentApi = nova.getApi().getVolumeAttachmentExtensionForZone(ZONE).get();
 
       cinderApi = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
@@ -137,7 +140,7 @@ public class CreateVolumeAndAttach implements Closeable {
       String publicAddress = nodeMetadata.getPublicAddresses().iterator().next();
 
       // We set the password to something we know so we can login in the DetachVolume example
-      nova.getServerApiForZone(ZONE)
+      nova.getApi().getServerApiForZone(ZONE)
             .changeAdminPass(nodeMetadata.getProviderId(), PASSWORD);
 
       System.out.format("  %s%n", nodeMetadata);
@@ -215,7 +218,6 @@ public class CreateVolumeAndAttach implements Closeable {
     */
    public void close() throws IOException {
       Closeables.close(cinderApi, true);
-      Closeables.close(nova, true);
       Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/24cfa733/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java
index 4f748fb..bb9c5bf 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudblockstorage/DetachVolume.java
@@ -39,11 +39,13 @@ import org.jclouds.openstack.cinder.v1.domain.Volume;
 import org.jclouds.openstack.cinder.v1.features.VolumeApi;
 import org.jclouds.openstack.cinder.v1.predicates.VolumePredicates;
 import org.jclouds.openstack.nova.v2_0.NovaApi;
+import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;
 import org.jclouds.openstack.nova.v2_0.domain.Server;
 import org.jclouds.openstack.nova.v2_0.domain.VolumeAttachment;
 import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId;
 import org.jclouds.openstack.nova.v2_0.extensions.VolumeAttachmentApi;
 import org.jclouds.openstack.nova.v2_0.features.ServerApi;
+import org.jclouds.rest.RestContext;
 import org.jclouds.scriptbuilder.ScriptBuilder;
 import org.jclouds.scriptbuilder.domain.OsFamily;
 import org.jclouds.sshj.config.SshjSshClientModule;
@@ -60,7 +62,7 @@ import com.google.inject.Module;
  */
 public class DetachVolume implements Closeable {
    private final ComputeService computeService;
-   private final NovaApi nova;
+   private final RestContext<NovaApi, NovaAsyncApi> nova;
    private final ServerApi serverApi;
    private final VolumeAttachmentApi volumeAttachmentApi;
 
@@ -97,13 +99,14 @@ public class DetachVolume implements Closeable {
 
       Iterable<Module> modules = ImmutableSet.<Module> of(new SshjSshClientModule());
 
-      ContextBuilder builder = ContextBuilder.newBuilder(provider)
+      ComputeServiceContext context = ContextBuilder.newBuilder(provider)
             .credentials(username, apiKey)
-            .modules(modules);
-      computeService = builder.buildView(ComputeServiceContext.class).getComputeService();
-      nova = builder.buildApi(NovaApi.class);
-      serverApi = nova.getServerApiForZone(ZONE);
-      volumeAttachmentApi = nova.getVolumeAttachmentExtensionForZone(ZONE).get();
+            .modules(modules)
+            .buildView(ComputeServiceContext.class);
+      computeService = context.getComputeService();
+      nova = context.unwrap();
+      serverApi = nova.getApi().getServerApiForZone(ZONE);
+      volumeAttachmentApi = nova.getApi().getVolumeAttachmentExtensionForZone(ZONE).get();
 
       cinderApi = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
@@ -177,7 +180,6 @@ public class DetachVolume implements Closeable {
     */
    public void close() throws IOException {
       Closeables.close(cinderApi, true);
-      Closeables.close(nova, true);
       Closeables.close(computeService.getContext(), true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/24cfa733/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServerWithKeyPair.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServerWithKeyPair.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServerWithKeyPair.java
index 0e2eb3a..67eef9a 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServerWithKeyPair.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/CreateServerWithKeyPair.java
@@ -42,10 +42,12 @@ import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.Template;
 import org.jclouds.compute.options.RunScriptOptions;
 import org.jclouds.openstack.nova.v2_0.NovaApi;
+import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;
 import org.jclouds.openstack.nova.v2_0.compute.options.NovaTemplateOptions;
 import org.jclouds.openstack.nova.v2_0.domain.KeyPair;
 import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndId;
 import org.jclouds.openstack.nova.v2_0.extensions.KeyPairApi;
+import org.jclouds.rest.RestContext;
 import org.jclouds.scriptbuilder.ScriptBuilder;
 import org.jclouds.scriptbuilder.domain.OsFamily;
 import org.jclouds.sshj.config.SshjSshClientModule;
@@ -66,7 +68,7 @@ import com.google.inject.Module;
  */
 public class CreateServerWithKeyPair implements Closeable {
    private final ComputeService computeService;
-   private final NovaApi nova;
+   private final RestContext<NovaApi, NovaAsyncApi> novaContext;
 
    private final File keyPairFile = new File(NAME + ".pem");
 
@@ -106,12 +108,14 @@ public class CreateServerWithKeyPair implements Closeable {
       overrides.setProperty(POLL_INITIAL_PERIOD, POLL_PERIOD_TWENTY_SECONDS);
       overrides.setProperty(POLL_MAX_PERIOD, POLL_PERIOD_TWENTY_SECONDS);
 
-      ContextBuilder builder = ContextBuilder.newBuilder(PROVIDER)
+      ComputeServiceContext context = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
             .overrides(overrides)
-            .modules(modules);
-      computeService = builder.buildView(ComputeServiceContext.class).getComputeService();
-      nova = builder.buildApi(NovaApi.class);
+            .modules(modules)
+            .buildView(ComputeServiceContext.class);
+
+      computeService = context.getComputeService();
+      novaContext = context.unwrap();
    }
 
    /**
@@ -120,7 +124,7 @@ public class CreateServerWithKeyPair implements Closeable {
     * This method is not necessary and is here for demonstration purposes only.
     */
    private void detectKeyPairExtension() {
-      Optional<? extends KeyPairApi> keyPairApiExtension = nova.getKeyPairExtensionForZone(ZONE);
+      Optional<? extends KeyPairApi> keyPairApiExtension = novaContext.getApi().getKeyPairExtensionForZone(ZONE);
 
       if (keyPairApiExtension.isPresent()) {
          System.out.format("  Key Pair Extension Present%n");
@@ -139,7 +143,7 @@ public class CreateServerWithKeyPair implements Closeable {
    private KeyPair createKeyPair() throws IOException {
       System.out.format("  Create Key Pair%n");
 
-      KeyPairApi keyPairApi = nova.getKeyPairExtensionForZone(ZONE).get();
+      KeyPairApi keyPairApi = novaContext.getApi().getKeyPairExtensionForZone(ZONE).get();
       KeyPair keyPair = keyPairApi.create(NAME);
 
       Files.write(keyPair.getPrivateKey(), keyPairFile, UTF_8);
@@ -207,7 +211,7 @@ public class CreateServerWithKeyPair implements Closeable {
    private void deleteKeyPair(KeyPair keyPair) {
       System.out.format("  Delete Key Pair%n");
 
-      KeyPairApi keyPairApi = nova.getKeyPairExtensionForZone(ZONE).get();
+      KeyPairApi keyPairApi = novaContext.getApi().getKeyPairExtensionForZone(ZONE).get();
       keyPairApi.delete(keyPair.getName());
 
       if (keyPairFile.delete()) {
@@ -223,6 +227,5 @@ public class CreateServerWithKeyPair implements Closeable {
     */
    public void close() throws IOException {
       Closeables.close(computeService.getContext(), true);
-      Closeables.close(nova, true);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/24cfa733/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java
index b094655..9919e8c 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudservers/ServerMetadata.java
@@ -27,9 +27,13 @@ import java.io.IOException;
 import java.util.Map;
 
 import org.jclouds.ContextBuilder;
+import org.jclouds.compute.ComputeService;
+import org.jclouds.compute.ComputeServiceContext;
 import org.jclouds.openstack.nova.v2_0.NovaApi;
+import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;
 import org.jclouds.openstack.nova.v2_0.domain.Server;
 import org.jclouds.openstack.nova.v2_0.features.ServerApi;
+import org.jclouds.rest.RestContext;
 
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableMap;
@@ -42,7 +46,8 @@ import com.google.common.io.Closeables;
  * @author Jeremy Daggett
  */
 public class ServerMetadata implements Closeable {
-   private final NovaApi nova;
+   private final ComputeService computeService;
+   private final RestContext<NovaApi, NovaAsyncApi> nova;
    private final ServerApi serverApi;
 
    /**
@@ -70,10 +75,12 @@ public class ServerMetadata implements Closeable {
    }
 
    public ServerMetadata(String username, String apiKey) {
-      nova = ContextBuilder.newBuilder(PROVIDER)
+      ComputeServiceContext context = ContextBuilder.newBuilder(PROVIDER)
             .credentials(username, apiKey)
-            .buildApi(NovaApi.class);
-      serverApi = nova.getServerApiForZone(ZONE);
+            .buildView(ComputeServiceContext.class);
+      computeService = context.getComputeService();
+      nova = context.unwrap();
+      serverApi = nova.getApi().getServerApiForZone(ZONE);
    }
 
    /**
@@ -130,6 +137,6 @@ public class ServerMetadata implements Closeable {
     * Always close your service when you're done with it.
     */
    public void close() throws IOException {
-      Closeables.close(nova, true);
+      Closeables.close(computeService.getContext(), true);
    }
 }