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);
}
}