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 2013/10/10 17:17:33 UTC
git commit: Fixed CDB examples to be consistent with all other
Rackspace examples.
Updated Branches:
refs/heads/master e9dccd310 -> e59ff818d
Fixed CDB examples to be consistent with all other Rackspace examples.
Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/commit/e59ff818
Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/tree/e59ff818
Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/diff/e59ff818
Branch: refs/heads/master
Commit: e59ff818de1a9ea3e6d9cf81bce66351b8dda17c
Parents: e9dccd3
Author: Everett Toews <ev...@rackspace.com>
Authored: Thu Oct 10 09:26:55 2013 -0500
Committer: Everett Toews <ev...@rackspace.com>
Committed: Thu Oct 10 10:17:10 2013 -0500
----------------------------------------------------------------------
.../rackspace/clouddatabases/Constants.java | 9 +-
.../clouddatabases/CreateDatabase.java | 69 ++++---
.../clouddatabases/CreateInstance.java | 47 +++--
.../rackspace/clouddatabases/CreateUser.java | 60 +++---
.../clouddatabases/DeleteDatabase.java | 58 +++---
.../clouddatabases/DeleteInstance.java | 50 +++--
.../rackspace/clouddatabases/DeleteUser.java | 59 +++---
.../clouddatabases/GrantRootAccess.java | 54 +++--
.../rackspace/clouddatabases/TestDatabase.java | 195 ++++++++++---------
9 files changed, 290 insertions(+), 311 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/Constants.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/Constants.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/Constants.java
index e3a26ac..0c86730 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/Constants.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/Constants.java
@@ -18,16 +18,17 @@
*/
package org.jclouds.examples.rackspace.clouddatabases;
-import static java.util.concurrent.TimeUnit.SECONDS;
-
/**
* Constants used by the Rackspace Examples.
*
* @author Zack Shoylev
*/
public interface Constants {
+ // The provider configures jclouds To use the Rackspace Cloud (US)
+ // To use the Rackspace Cloud (UK) set the system property or default value to "rackspace-clouddatabases-uk"
+ public static final String PROVIDER = System.getProperty("provider.cdb", "rackspace-clouddatabases-us");
+ public static final String ZONE = System.getProperty("zone.cdb", "DFW");
+
public static final String NAME = "jclouds-example";
public static final String PASSWORD = "0192j41dm311iaadjaoqpvplw";
- public static final String ZONE = "DFW";
- public static final String POLL_PERIOD_TWENTY_SECONDS = String.valueOf(SECONDS.toMillis(20));
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java
index beeba17..93e4d85 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateDatabase.java
@@ -30,55 +30,48 @@ import org.jclouds.openstack.trove.v1.features.InstanceApi;
import com.google.common.io.Closeables;
+import static org.jclouds.examples.rackspace.clouddatabases.Constants.*;
+
/**
* This example creates a MySQL database on a Cloud Databases instance.
* The instance is created in the CreateInstance example.
* Think of the instance as a type of server. Multiple databases can run on the same instance.
- *
+ *
* @author Zack Shoylev
*/
public class CreateDatabase implements Closeable {
- private TroveApi api;
- private InstanceApi instanceApi;
- private DatabaseApi databaseApi;
+ private final TroveApi troveApi;
+ private final InstanceApi instanceApi;
+ private final DatabaseApi databaseApi;
/**
- * To get a username and API key see
+ * To get a username and API key see
* http://www.jclouds.org/documentation/quickstart/rackspace/
- *
- * The first argument (args[0]) must be your username.
- * The second argument (args[1]) must be your API key.
- * @throws IOException
+ *
+ * The first argument (args[0]) must be your username
+ * The second argument (args[1]) must be your API key
*/
public static void main(String[] args) throws IOException {
-
- CreateDatabase createDatabase = new CreateDatabase();
+ CreateDatabase createDatabase = new CreateDatabase(args[0], args[1]);
try {
- createDatabase.init(args);
- Instance instance = createDatabase.getInstance();
- createDatabase.createDatabase(instance);
- } catch (Exception e) {
+ createDatabase.createDatabase();
+ }
+ catch (Exception e) {
e.printStackTrace();
- } finally {
+ }
+ finally {
createDatabase.close();
}
}
- private void init(String[] args) {
- // The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-clouddatabases-uk".
- String provider = "rackspace-clouddatabases-us";
-
- String username = args[0];
- String apiKey = args[1];
-
- api = ContextBuilder.newBuilder(provider)
+ public CreateDatabase(String username, String apiKey) {
+ troveApi = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.buildApi(TroveApi.class);
-
- instanceApi = api.getInstanceApiForZone(Constants.ZONE);
- databaseApi = api.getDatabaseApiForInstanceInZone(getInstance().getId(), Constants.ZONE);
+
+ instanceApi = troveApi.getInstanceApiForZone(ZONE);
+ databaseApi = troveApi.getDatabaseApiForInstanceInZone(getInstance().getId(), ZONE);
}
/**
@@ -86,26 +79,30 @@ public class CreateDatabase implements Closeable {
*/
private Instance getInstance() {
for (Instance instance: instanceApi.list()) {
- if (instance.getName().startsWith(Constants.NAME)) {
+ if (instance.getName().startsWith(NAME)) {
return instance;
}
}
- throw new RuntimeException(Constants.NAME + " not found. Run the CreateInstance example first.");
+ throw new RuntimeException(NAME + " not found. Run the CreateInstance example first.");
}
- private void createDatabase(Instance instance) throws TimeoutException {
- System.out.println("Create Database");
+ private void createDatabase() throws TimeoutException {
+ System.out.format("Create Database%n");
+
+ boolean result = databaseApi.create(NAME);
- boolean result = databaseApi.create(Constants.NAME);
- System.out.println(" " + result);
+ System.out.format(" %s%n", result);
}
/**
* Always close your service when you're done with it.
- * @throws IOException
+ *
+ * Note that closing quietly like this is not necessary in Java 7.
+ * You would use try-with-resources in the main method instead.
+ * When jclouds switches to Java 7 the try/catch block below can be removed.
*/
public void close() throws IOException {
- Closeables.close(api, true);
+ Closeables.close(troveApi, true);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java
index 3013a9c..9b76158 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateInstance.java
@@ -32,6 +32,8 @@ import org.jclouds.openstack.trove.v1.utils.TroveUtils;
import com.google.common.collect.Iterables;
import com.google.common.io.Closeables;
+import static org.jclouds.examples.rackspace.clouddatabases.Constants.*;
+
/**
* This example creates a Cloud Databases instance.
* This instance will be used to run a database later on in the Create Database example.
@@ -39,8 +41,8 @@ import com.google.common.io.Closeables;
* @author Zack Shoylev
*/
public class CreateInstance implements Closeable {
- private TroveApi api;
- private FlavorApi flavorApi;
+ private final TroveApi troveApi;
+ private final FlavorApi flavorApi;
/**
* To get a username and API key see
@@ -48,36 +50,28 @@ public class CreateInstance implements Closeable {
*
* The first argument (args[0]) must be your username.
* The second argument (args[1]) must be your API key.
- * @throws IOException
*/
public static void main(String[] args) throws IOException {
-
- CreateInstance createInstance = new CreateInstance();
+ CreateInstance createInstance = new CreateInstance(args[0], args[1]);
try {
- createInstance.init(args);
Flavor flavor = createInstance.getFlavor();
createInstance.createInstance(flavor);
- } catch (Exception e) {
+ }
+ catch (Exception e) {
e.printStackTrace();
- } finally {
+ }
+ finally {
createInstance.close();
}
}
- private void init(String[] args) {
- // The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-clouddatabases-uk".
- String provider = "rackspace-clouddatabases-us";
-
- String username = args[0];
- String apiKey = args[1];
-
- api = ContextBuilder.newBuilder(provider)
+ public CreateInstance(String username, String apiKey) {
+ troveApi = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.buildApi(TroveApi.class);
-
- flavorApi = api.getFlavorApiForZone(Constants.ZONE);
+
+ flavorApi = troveApi.getFlavorApiForZone(ZONE);
}
/**
@@ -88,20 +82,23 @@ public class CreateInstance implements Closeable {
}
private void createInstance(Flavor flavor) throws TimeoutException {
- System.out.println("Create Instance for flavor: " + flavor.getId());
+ System.out.format("Create Instance for Flavor: %s%n", flavor.getId());
- TroveUtils utils = new TroveUtils(api);
+ TroveUtils utils = new TroveUtils(troveApi);
// This call will take a while - it ensures a working instance is created.
- Instance instance = utils.getWorkingInstance(Constants.ZONE, Constants.NAME, "" + flavor.getId(), 1);
+ Instance instance = utils.getWorkingInstance(ZONE, NAME, "" + flavor.getId(), 1);
- System.out.println(" " + instance);
+ System.out.format(" %s%n", instance);
}
/**
* Always close your service when you're done with it.
- * @throws IOException
+ *
+ * Note that closing quietly like this is not necessary in Java 7.
+ * You would use try-with-resources in the main method instead.
+ * When jclouds switches to Java 7 the try/catch block below can be removed.
*/
public void close() throws IOException {
- Closeables.close(api, true);
+ Closeables.close(troveApi, true);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java
index 5c4553c..36a3a96 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/CreateUser.java
@@ -30,15 +30,17 @@ import org.jclouds.openstack.trove.v1.features.UserApi;
import com.google.common.io.Closeables;
+import static org.jclouds.examples.rackspace.clouddatabases.Constants.*;
+
/**
* This example will create a User on the database created in the CreateDatabase example.
*
* @author Zack Shoylev
*/
public class CreateUser implements Closeable {
- private TroveApi api;
- private InstanceApi instanceApi;
- private UserApi userApi;
+ private final TroveApi troveApi;
+ private final InstanceApi instanceApi;
+ private final UserApi userApi;
/**
* To get a username and API key see
@@ -46,37 +48,28 @@ public class CreateUser implements Closeable {
*
* The first argument (args[0]) must be your username.
* The second argument (args[1]) must be your API key.
- * @throws IOException
*/
- public static void main(String[] args) throws IOException {
-
- CreateUser createUser = new CreateUser();
+ public static void main(String[] args) throws IOException {
+ CreateUser createUser = new CreateUser(args[0], args[1]);
try {
- createUser.init(args);
- Instance instance = createUser.getInstance();
- createUser.createUser(instance);
- } catch (Exception e) {
+ createUser.createUser();
+ }
+ catch (Exception e) {
e.printStackTrace();
- } finally {
+ }
+ finally {
createUser.close();
}
}
- private void init(String[] args) {
- // The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-clouddatabases-uk".
- String provider = "rackspace-clouddatabases-us";
-
- String username = args[0];
- String apiKey = args[1];
-
- api = ContextBuilder.newBuilder(provider)
+ public CreateUser(String username, String apiKey) {
+ troveApi = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.buildApi(TroveApi.class);
-
- instanceApi = api.getInstanceApiForZone(Constants.ZONE);
- userApi = api.getUserApiForInstanceInZone(getInstance().getId(), Constants.ZONE);
+
+ instanceApi = troveApi.getInstanceApiForZone(ZONE);
+ userApi = troveApi.getUserApiForInstanceInZone(getInstance().getId(), ZONE);
}
/**
@@ -84,27 +77,30 @@ public class CreateUser implements Closeable {
*/
private Instance getInstance() {
for (Instance instance: instanceApi.list()) {
- if (instance.getName().startsWith(Constants.NAME)) {
+ if (instance.getName().startsWith(NAME)) {
return instance;
}
}
- throw new RuntimeException(Constants.NAME + " not found. Run the CreateInstance example first.");
+ throw new RuntimeException(NAME + " not found. Run the CreateInstance example first.");
}
- private void createUser(Instance instance) throws TimeoutException {
- System.out.println("Create User");
+ private void createUser() throws TimeoutException {
+ System.out.format("Create User%n");
- boolean result = userApi.create(Constants.NAME, Constants.PASSWORD, Constants.NAME);
+ boolean result = userApi.create(NAME, PASSWORD, NAME);
- System.out.println("Create user: " + result);
+ System.out.format(" %s%n", result);
}
/**
* Always close your service when you're done with it.
- * @throws IOException
+ *
+ * Note that closing quietly like this is not necessary in Java 7.
+ * You would use try-with-resources in the main method instead.
+ * When jclouds switches to Java 7 the try/catch block below can be removed.
*/
public void close() throws IOException {
- Closeables.close(api, true);
+ Closeables.close(troveApi, true);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java
index e549e9c..938be4a 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteDatabase.java
@@ -23,7 +23,6 @@ import java.io.IOException;
import java.util.concurrent.TimeoutException;
import org.jclouds.ContextBuilder;
-import org.jclouds.examples.rackspace.cloudblockstorage.Constants;
import org.jclouds.openstack.trove.v1.TroveApi;
import org.jclouds.openstack.trove.v1.domain.Instance;
import org.jclouds.openstack.trove.v1.features.DatabaseApi;
@@ -31,15 +30,17 @@ import org.jclouds.openstack.trove.v1.features.InstanceApi;
import com.google.common.io.Closeables;
+import static org.jclouds.examples.rackspace.clouddatabases.Constants.*;
+
/**
* This example will delete the database created in the CreateDatabase example.
*
* @author Zack Shoylev
*/
public class DeleteDatabase implements Closeable {
- private TroveApi api;
- private InstanceApi instanceApi;
- private DatabaseApi databaseApi;
+ private final TroveApi troveApi;
+ private final InstanceApi instanceApi;
+ private final DatabaseApi databaseApi;
/**
* To get a username and API key see
@@ -47,36 +48,28 @@ public class DeleteDatabase implements Closeable {
*
* The first argument (args[0]) must be your username.
* The second argument (args[1]) must be your API key.
- * @throws IOException
*/
public static void main(String[] args) throws IOException {
-
- DeleteDatabase deleteDatabase = new DeleteDatabase();
+ DeleteDatabase deleteDatabase = new DeleteDatabase(args[0], args[1]);
try {
- deleteDatabase.init(args);
- deleteDatabase.deleteDatabase(deleteDatabase.getInstance());
- } catch (Exception e) {
+ deleteDatabase.deleteDatabase();
+ }
+ catch (Exception e) {
e.printStackTrace();
- } finally {
+ }
+ finally {
deleteDatabase.close();
}
}
- private void init(String[] args) {
- // The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-clouddatabases-uk".
- String provider = "rackspace-clouddatabases-us";
-
- String username = args[0];
- String apiKey = args[1];
-
- api = ContextBuilder.newBuilder(provider)
+ public DeleteDatabase(String username, String apiKey) {
+ troveApi = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.buildApi(TroveApi.class);
-
- instanceApi = api.getInstanceApiForZone(Constants.ZONE);
- databaseApi = api.getDatabaseApiForInstanceInZone(getInstance().getId(), Constants.ZONE);
+
+ instanceApi = troveApi.getInstanceApiForZone(ZONE);
+ databaseApi = troveApi.getDatabaseApiForInstanceInZone(getInstance().getId(), ZONE);
}
/**
@@ -84,27 +77,30 @@ public class DeleteDatabase implements Closeable {
*/
private Instance getInstance() {
for (Instance instance : instanceApi.list()) {
- if (instance.getName().startsWith(Constants.NAME)) {
+ if (instance.getName().startsWith(NAME)) {
return instance;
}
}
- throw new RuntimeException(Constants.NAME + " not found. Run the CreateInstance example first.");
+ throw new RuntimeException(NAME + " not found. Run the CreateInstance example first.");
}
- private void deleteDatabase(Instance instance) throws TimeoutException {
- System.out.println("Delete Database");
+ private void deleteDatabase() throws TimeoutException {
+ System.out.format("Delete Database%n");
- boolean result = databaseApi.delete(Constants.NAME);
+ boolean result = databaseApi.delete(NAME);
- System.out.println(" " + result);
+ System.out.format(" %s%n", result);
}
/**
* Always close your service when you're done with it.
- * @throws IOException
+ *
+ * Note that closing quietly like this is not necessary in Java 7.
+ * You would use try-with-resources in the main method instead.
+ * When jclouds switches to Java 7 the try/catch block below can be removed.
*/
public void close() throws IOException {
- Closeables.close(api, true);
+ Closeables.close(troveApi, true);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java
index d932f79..350efe4 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteInstance.java
@@ -23,7 +23,6 @@ import java.io.IOException;
import java.util.concurrent.TimeoutException;
import org.jclouds.ContextBuilder;
-import org.jclouds.examples.rackspace.cloudblockstorage.Constants;
import org.jclouds.openstack.trove.v1.TroveApi;
import org.jclouds.openstack.trove.v1.domain.Instance;
import org.jclouds.openstack.trove.v1.features.InstanceApi;
@@ -31,14 +30,16 @@ import org.jclouds.openstack.trove.v1.predicates.InstancePredicates;
import com.google.common.io.Closeables;
+import static org.jclouds.examples.rackspace.clouddatabases.Constants.*;
+
/**
* This example will delete the instance created in the CreateInstance example.
*
* @author Zack Shoylev
*/
public class DeleteInstance implements Closeable {
- private TroveApi api;
- private InstanceApi instanceApi;
+ private final TroveApi troveApi;
+ private final InstanceApi instanceApi;
/**
* To get a username and API key see
@@ -46,35 +47,27 @@ public class DeleteInstance implements Closeable {
*
* The first argument (args[0]) must be your username.
* The second argument (args[1]) must be your API key.
- * @throws IOException
*/
- public static void main(String[] args) throws IOException {
-
- DeleteInstance deleteInstance = new DeleteInstance();
+ public static void main(String[] args) throws IOException {
+ DeleteInstance deleteInstance = new DeleteInstance(args[0], args[1]);
try {
- deleteInstance.init(args);
deleteInstance.deleteInstance(deleteInstance.getInstance());
- } catch (Exception e) {
+ }
+ catch (Exception e) {
e.printStackTrace();
- } finally {
+ }
+ finally {
deleteInstance.close();
}
}
- private void init(String[] args) {
- // The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-clouddatabases-uk".
- String provider = "rackspace-clouddatabases-us";
-
- String username = args[0];
- String apiKey = args[1];
-
- api = ContextBuilder.newBuilder(provider)
+ public DeleteInstance(String username, String apiKey) {
+ troveApi = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.buildApi(TroveApi.class);
-
- instanceApi = api.getInstanceApiForZone(Constants.ZONE);
+
+ instanceApi = troveApi.getInstanceApiForZone(ZONE);
}
/**
@@ -82,16 +75,16 @@ public class DeleteInstance implements Closeable {
*/
private Instance getInstance() {
for (Instance instance : instanceApi.list()) {
- if (instance.getName().startsWith(Constants.NAME)) {
+ if (instance.getName().startsWith(NAME)) {
return instance;
}
}
- throw new RuntimeException(Constants.NAME + " not found. Run the CreateInstance example first.");
+ throw new RuntimeException(NAME + " not found. Run the CreateInstance example first.");
}
private void deleteInstance(Instance instance) throws TimeoutException {
- System.out.println("Delete Instance");
+ System.out.format("Delete Instance%n");
boolean result = instanceApi.delete(instance.getId());
@@ -102,14 +95,17 @@ public class DeleteInstance implements Closeable {
throw new TimeoutException("Timeout on instance: " + instance);
}
- System.out.println(" " + result);
+ System.out.format(" %s%n", result);
}
/**
* Always close your service when you're done with it.
- * @throws IOException
+ *
+ * Note that closing quietly like this is not necessary in Java 7.
+ * You would use try-with-resources in the main method instead.
+ * When jclouds switches to Java 7 the try/catch block below can be removed.
*/
public void close() throws IOException {
- Closeables.close(api, true);
+ Closeables.close(troveApi, true);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java
index 861980b..12c6446 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/DeleteUser.java
@@ -23,7 +23,6 @@ import java.io.IOException;
import java.util.concurrent.TimeoutException;
import org.jclouds.ContextBuilder;
-import org.jclouds.examples.rackspace.cloudblockstorage.Constants;
import org.jclouds.openstack.trove.v1.TroveApi;
import org.jclouds.openstack.trove.v1.domain.Instance;
import org.jclouds.openstack.trove.v1.features.InstanceApi;
@@ -31,15 +30,17 @@ import org.jclouds.openstack.trove.v1.features.UserApi;
import com.google.common.io.Closeables;
+import static org.jclouds.examples.rackspace.clouddatabases.Constants.*;
+
/**
* This example will delete the User created in the CreateUser example.
*
* @author Zack Shoylev
*/
public class DeleteUser implements Closeable {
- private TroveApi api;
- private InstanceApi instanceApi;
- private UserApi userApi;
+ private final TroveApi troveApi;
+ private final InstanceApi instanceApi;
+ private final UserApi userApi;
/**
* To get a username and API key see
@@ -49,34 +50,27 @@ public class DeleteUser implements Closeable {
* The second argument (args[1]) must be your API key.
* @throws IOException
*/
- public static void main(String[] args) throws IOException {
-
- DeleteUser deleteUser = new DeleteUser();
+ public static void main(String[] args) throws IOException {
+ DeleteUser deleteUser = new DeleteUser(args[0], args[1]);
try {
- deleteUser.init(args);
- deleteUser.deleteUser(deleteUser.getInstance());
- } catch (Exception e) {
+ deleteUser.deleteUser();
+ }
+ catch (Exception e) {
e.printStackTrace();
- } finally {
+ }
+ finally {
deleteUser.close();
}
}
- private void init(String[] args) {
- // The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-clouddatabases-uk".
- String provider = "rackspace-clouddatabases-us";
-
- String username = args[0];
- String apiKey = args[1];
-
- api = ContextBuilder.newBuilder(provider)
+ public DeleteUser(String username, String apiKey) {
+ troveApi = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.buildApi(TroveApi.class);
-
- instanceApi = api.getInstanceApiForZone(Constants.ZONE);
- userApi = api.getUserApiForInstanceInZone(getInstance().getId(), Constants.ZONE);
+
+ instanceApi = troveApi.getInstanceApiForZone(ZONE);
+ userApi = troveApi.getUserApiForInstanceInZone(getInstance().getId(), ZONE);
}
/**
@@ -84,27 +78,30 @@ public class DeleteUser implements Closeable {
*/
private Instance getInstance() {
for (Instance instance : instanceApi.list()) {
- if (instance.getName().startsWith(Constants.NAME)) {
+ if (instance.getName().startsWith(NAME)) {
return instance;
}
}
- throw new RuntimeException(Constants.NAME + " not found. Run the CreateInstance example first.");
+ throw new RuntimeException(NAME + " not found. Run the CreateInstance example first.");
}
- private void deleteUser(Instance instance) throws TimeoutException {
- System.out.println("Delete User");
+ private void deleteUser() throws TimeoutException {
+ System.out.format("Delete User%n");
- boolean result = userApi.delete(Constants.NAME);
+ boolean result = userApi.delete(NAME);
- System.out.println(" " + result);
+ System.out.format(" %s%n", result);
}
/**
* Always close your service when you're done with it.
- * @throws IOException
+ *
+ * Note that closing quietly like this is not necessary in Java 7.
+ * You would use try-with-resources in the main method instead.
+ * When jclouds switches to Java 7 the try/catch block below can be removed.
*/
public void close() throws IOException {
- Closeables.close(api, true);
+ Closeables.close(troveApi, true);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java
index 8859636..2ca3bd1 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/GrantRootAccess.java
@@ -29,14 +29,16 @@ import org.jclouds.openstack.trove.v1.features.InstanceApi;
import com.google.common.io.Closeables;
+import static org.jclouds.examples.rackspace.clouddatabases.Constants.*;
+
/**
* This example grants root permissions to the instance created in the CreateInstance example.
*
* @author Zack Shoylev
*/
public class GrantRootAccess implements Closeable {
- private TroveApi api;
- private InstanceApi instanceApi;
+ private final TroveApi troveApi;
+ private final InstanceApi instanceApi;
/**
* To get a username and API key see
@@ -44,36 +46,27 @@ public class GrantRootAccess implements Closeable {
*
* The first argument (args[0]) must be your username.
* The second argument (args[1]) must be your API key.
- * @throws IOException
*/
- public static void main(String[] args) throws IOException {
-
- GrantRootAccess grantRootAccess = new GrantRootAccess();
+ public static void main(String[] args) throws IOException {
+ GrantRootAccess grantRootAccess = new GrantRootAccess(args[0], args[1]);
try {
- grantRootAccess.init(args);
- Instance instance = grantRootAccess.getInstance();
- grantRootAccess.grantRootAccess(instance);
- } catch (Exception e) {
+ grantRootAccess.grantRootAccess();
+ }
+ catch (Exception e) {
e.printStackTrace();
- } finally {
+ }
+ finally {
grantRootAccess.close();
}
}
- private void init(String[] args) {
- // The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-clouddatabases-uk".
- String provider = "rackspace-clouddatabases-us";
-
- String username = args[0];
- String apiKey = args[1];
-
- api = ContextBuilder.newBuilder(provider)
+ public GrantRootAccess(String username, String apiKey) {
+ troveApi = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.buildApi(TroveApi.class);
-
- instanceApi = api.getInstanceApiForZone(Constants.ZONE);
+
+ instanceApi = troveApi.getInstanceApiForZone(ZONE);
}
/**
@@ -81,27 +74,30 @@ public class GrantRootAccess implements Closeable {
*/
private Instance getInstance() {
for (Instance instance: instanceApi.list()) {
- if (instance.getName().startsWith(Constants.NAME)) {
+ if (instance.getName().startsWith(NAME)) {
return instance;
}
}
- throw new RuntimeException(Constants.NAME + " not found. Run the CreateInstance example first.");
+ throw new RuntimeException(NAME + " not found. Run the CreateInstance example first.");
}
- private void grantRootAccess(Instance instance) throws TimeoutException {
- System.out.println("Grant root access");
+ private void grantRootAccess() throws TimeoutException {
+ System.out.format("Grant root access%n");
String password = instanceApi.enableRoot(getInstance().getId()); // enable root on the instance
- System.out.println(" " + password);
+ System.out.format(" Password: %s%n", password);
}
/**
* Always close your service when you're done with it.
- * @throws IOException
+ *
+ * Note that closing quietly like this is not necessary in Java 7.
+ * You would use try-with-resources in the main method instead.
+ * When jclouds switches to Java 7 the try/catch block below can be removed.
*/
public void close() throws IOException {
- Closeables.close(api, true);
+ Closeables.close(troveApi, true);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-examples/blob/e59ff818/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java
----------------------------------------------------------------------
diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java
index a3cd4a1..b5e3fdb 100644
--- a/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java
+++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/clouddatabases/TestDatabase.java
@@ -47,6 +47,8 @@ import com.google.common.collect.Sets;
import com.google.common.io.Closeables;
import com.google.common.util.concurrent.Uninterruptibles;
+import static org.jclouds.examples.rackspace.clouddatabases.Constants.*;
+
/**
* This example uses the already created database instance, database user, and database from the examples:
* CreateInstance, CreateDatabase, CreateUser
@@ -58,11 +60,12 @@ import com.google.common.util.concurrent.Uninterruptibles;
* @author Zack Shoylev
*/
public class TestDatabase implements Closeable {
- // private final static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(TestDatabase.class); // If you want to log instead of print
- private CloudLoadBalancersApi clb;
- private LoadBalancerApi lbApi;
- private TroveApi api;
- private InstanceApi instanceApi;
+ // If you want to log instead of print, uncomment the line below
+ // private final static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(TestDatabase.class);
+ private final CloudLoadBalancersApi clbApi;
+ private final LoadBalancerApi lbApi;
+ private final TroveApi troveApi;
+ private final InstanceApi instanceApi;
/**
* To get a username and API key see
@@ -70,54 +73,42 @@ public class TestDatabase implements Closeable {
*
* The first argument (args[0]) must be your username.
* The second argument (args[1]) must be your API key.
- * @throws IOException
*/
- public static void main(String[] args) throws IOException {
-
- TestDatabase testDatabase = new TestDatabase();
+ public static void main(String[] args) throws IOException {
+ TestDatabase testDatabase = new TestDatabase(args[0], args[1]);
try {
- testDatabase.init(args);
-
- Instance instance = testDatabase.getInstance();
-
Set<AddNode> addNodes = testDatabase.addNodesOfDatabaseInstances();
testDatabase.createLoadBalancer(addNodes);
boolean success;
do{
- success = testDatabase.testDatabase(instance);
+ success = testDatabase.testDatabase();
Uninterruptibles.sleepUninterruptibly(5, TimeUnit.SECONDS);
} while(!success);
- } catch (Exception e) {
+ }
+ catch (Exception e) {
e.printStackTrace();
- } finally {
+ }
+ finally {
testDatabase.close();
}
}
- private void init(String[] args) {
+ public TestDatabase(String username, String apiKey) {
// The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-cloudloadbalancers-uk"
- String provider = "rackspace-cloudloadbalancers-us";
-
- String username = args[0];
- String apiKey = args[1];
+ // To use the Rackspace Cloud (UK) set the provider to "rackspace-cloudloadbalancers-uk".
+ String provider = System.getProperty("provider.clb", "rackspace-cloudloadbalancers-us");
- clb = ContextBuilder.newBuilder(provider)
+ clbApi = ContextBuilder.newBuilder(provider)
.credentials(username, apiKey)
.buildApi(CloudLoadBalancersApi.class);
- lbApi = clb.getLoadBalancerApiForZone(Constants.ZONE);
-
- // The provider configures jclouds to use the Rackspace Cloud (US).
- // To use the Rackspace Cloud (UK) set the provider to "rackspace-clouddatabases-uk".
- provider = "rackspace-clouddatabases-us";
-
- api = ContextBuilder.newBuilder(provider)
- .credentials(username, apiKey)
- .buildApi(TroveApi.class);
-
- instanceApi = api.getInstanceApiForZone(Constants.ZONE);
+ lbApi = clbApi.getLoadBalancerApiForZone(ZONE);
+
+ troveApi = ContextBuilder.newBuilder(PROVIDER)
+ .credentials(username, apiKey)
+ .buildApi(TroveApi.class);
+ instanceApi = troveApi.getInstanceApiForZone(ZONE);
}
/**
@@ -125,12 +116,12 @@ public class TestDatabase implements Closeable {
*/
private Instance getInstance() {
for (Instance instance: instanceApi.list()) {
- if (instance.getName().startsWith(Constants.NAME)) {
+ if (instance.getName().startsWith(NAME)) {
return instanceApi.get(instance.getId());
}
}
- throw new RuntimeException(Constants.NAME + " not found. Run the CreateInstance example first.");
+ throw new RuntimeException(NAME + " not found. Run the CreateInstance example first.");
}
/**
@@ -150,13 +141,12 @@ public class TestDatabase implements Closeable {
* Builds and executes the request to create a load balancer service using a set of nodes.
*
* @param addNodes The set of cloud load balancer nodes.
- * @throws TimeoutException
*/
private void createLoadBalancer(Set<AddNode> addNodes) throws TimeoutException {
- System.out.println("Create Cloud Load Balancer");
+ System.out.format("Create Cloud Load Balancer%n");
CreateLoadBalancer createLB = CreateLoadBalancer.builder()
- .name(Constants.NAME)
+ .name(NAME)
.protocol("MYSQL")
.port(3306)
.algorithm(LoadBalancer.Algorithm.RANDOM)
@@ -170,7 +160,8 @@ public class TestDatabase implements Closeable {
do {
loadBalancer = lbApi.create(createLB);
Uninterruptibles.sleepUninterruptibly(30, TimeUnit.SECONDS);
- } while(loadBalancer == null);
+ }
+ while(loadBalancer == null);
// Wait for the Load Balancer to become Active before moving on.
@@ -181,8 +172,7 @@ public class TestDatabase implements Closeable {
throw new TimeoutException("Timeout on loadBalancer: " + loadBalancer);
}
- System.out.println(" " + loadBalancer);
- System.out.println(" Go to http://" + getVirtualIPv4(loadBalancer.getVirtualIPs()));
+ System.out.format(" %s%n", loadBalancer);
}
private String getVirtualIPv4(Set<VirtualIPWithId> set) {
@@ -201,39 +191,38 @@ public class TestDatabase implements Closeable {
*/
private LoadBalancer getLb() {
for (LoadBalancer ls : lbApi.list().concat()) {
- if (ls.getName().startsWith(Constants.NAME)) {
+ if (ls.getName().startsWith(NAME)) {
return ls;
}
}
- throw new RuntimeException(Constants.NAME + " not found. Run the CreateInstance example first.");
+ throw new RuntimeException(NAME + " not found. Run the CreateInstance example first.");
}
/**
* Connects to the database using JDBC over the load balancer and executes a simple query without creating a database table.
* This will verify that the database engine is running on the remote instance.
*
- * @param instance The database instance to test against.
* @return true if connection successful and database engine responsive.
- * @throws TimeoutException
*/
- private boolean testDatabase(Instance instance) throws TimeoutException {
- System.out.println("Connect to database");
+ private boolean testDatabase() throws TimeoutException {
+ System.out.format("Connect to database%n");
// See http://dev.mysql.com/doc/refman/5.6/en/connector-j-examples.html
- Connection conn = null;
+ Connection conn;
+
try {
StringBuilder connString = new StringBuilder();
- connString.append( "jdbc:mysql://" ); // Begin building the JDBC connection string by specifying the database type.
- connString.append( getVirtualIPv4(getLb().getVirtualIPs()) ); // IPv4 of cloud load balancer that will be used to connect to the database
+ connString.append("jdbc:mysql://"); // Begin building the JDBC connection string by specifying the database type.
+ connString.append(getVirtualIPv4(getLb().getVirtualIPs())); // IPv4 of cloud load balancer that will be used to connect to the database
connString.append("/");
- connString.append(Constants.NAME); // Database name
+ connString.append(NAME); // Database name
connString.append("?user=");
- connString.append(Constants.NAME); // User name
+ connString.append(NAME); // User name
connString.append("&password=");
- connString.append(Constants.PASSWORD); // Database user password
+ connString.append(PASSWORD); // Database user password
- System.out.println("Connecting to " + connString);
+ System.out.format(" Connecting to %s%n", connString);
conn = DriverManager.getConnection(connString.toString());
@@ -241,61 +230,75 @@ public class TestDatabase implements Closeable {
ResultSet rs = null;
try {
- stmt = conn.createStatement();
- rs = stmt.executeQuery("SELECT 3+5"); // A simple query that tests the engine but creates no tables and is fairly fast.
- rs.first();
- System.out.println("3+5 is " + rs.getInt(1));
- } catch (SQLException e){
- // handle any errors
- System.out.println("SQLException: " + e.getMessage());
- System.out.println("SQLState: " + e.getSQLState());
- System.out.println("VendorError: " + e.getErrorCode());
- e.printStackTrace();
- return false;
- } finally {
- // Release resources in reverse order of creation.
-
- if (rs != null) {
- try {
- rs.close();
- } catch (SQLException sqlEx) { } // Ignore - you might get an exception if closing out of order.
+ stmt = conn.createStatement();
+ rs = stmt.executeQuery("SELECT 3+5"); // A simple query that tests the engine but creates no tables and is fairly fast.
+ rs.first();
- rs = null;
- }
-
- if (stmt != null) {
- try {
- stmt.close();
- } catch (SQLException sqlEx) { } // Ignore - you might get an exception if closing out of order.
+ System.out.format(" 3+5 is %s%n", rs.getInt(1));
+ }
+ catch (SQLException e){
+ System.out.format("SQLException: %s%n", e.getMessage());
+ System.out.format("SQLState: %s%n", e.getSQLState());
+ System.out.format("VendorError: %s%n", e.getErrorCode());
+ e.printStackTrace();
+
+ return false;
+ }
+ finally {
+ // Release resources in reverse order of creation.
+
+ if (rs != null) {
+ try {
+ rs.close();
+ }
+ catch (SQLException sqlEx) {
+ // Ignore - you might get an exception if closing out of order.
+ }
+ }
- stmt = null;
- }
+ if (stmt != null) {
+ try {
+ stmt.close();
+ }
+ catch (SQLException sqlEx) {
+ // Ignore - you might get an exception if closing out of order.
+ }
+ }
- if(conn != null)
- try {
- conn.close();
- } catch (SQLException sqlEx) { } // Ignore - rare bugs not necessarily related to a specific database.
+ if(conn != null) {
+ try {
+ conn.close();
+ }
+ catch (SQLException sqlEx) {
+ // Ignore - rare bugs not necessarily related to a specific database.
+ }
+ }
}
- } catch (SQLException e) {
- // handle any errors
- System.out.println("SQLException: " + e.getMessage());
- System.out.println("SQLState: " + e.getSQLState());
- System.out.println("VendorError: " + e.getErrorCode());
+ }
+ catch (SQLException e) {
+ System.out.format("SQLException: %s%n", e.getMessage());
+ System.out.format("SQLState: %s%n", e.getSQLState());
+ System.out.format("VendorError: %s%n", e.getErrorCode());
e.printStackTrace();
+
return false;
- }
- return true;
+ }
+
+ return true;
}
/**
* Always close your service when you're done with it.
- * @throws IOException
+ *
+ * Note that closing quietly like this is not necessary in Java 7.
+ * You would use try-with-resources in the main method instead.
+ * When jclouds switches to Java 7 the try/catch block below can be removed.
*/
public void close() throws IOException {
if(lbApi != null) {
lbApi.delete(getLb().getId());
}
- Closeables.close(api, true);
- Closeables.close(clb, true);
+ Closeables.close(troveApi, true);
+ Closeables.close(clbApi, true);
}
}