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 <[email protected]> Authored: Sun Mar 30 08:38:24 2014 -0700 Committer: Everett Toews <[email protected]> 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); } }
