Repository: jclouds Updated Branches: refs/heads/master 2c790c897 -> cf95033b1
Support availability zone in NovaTemplateOptions. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/cf95033b Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/cf95033b Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/cf95033b Branch: refs/heads/master Commit: cf95033b1a5211b9f7f05ad36add7d6202e47701 Parents: 2c790c8 Author: Evgeny Tarasenko <[email protected]> Authored: Sun Sep 14 17:22:42 2014 +0700 Committer: Jeremy Daggett <[email protected]> Committed: Wed Sep 24 06:49:38 2014 -0700 ---------------------------------------------------------------------- .../v2_0/compute/NovaComputeServiceAdapter.java | 1 + .../compute/options/NovaTemplateOptions.java | 32 ++++++++++++++++++-- .../nova/v2_0/options/CreateServerOptions.java | 5 +++ .../options/NovaTemplateOptionsTest.java | 7 +++++ 4 files changed, 43 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/cf95033b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java index 2762c30..00d5802 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java @@ -109,6 +109,7 @@ public class NovaComputeServiceAdapter implements options.userData(templateOptions.getUserData()); options.diskConfig(templateOptions.getDiskConfig()); options.configDrive(templateOptions.getConfigDrive()); + options.availabilityZone(templateOptions.getAvailabilityZone()); if (templateOptions.getNovaNetworks() != null) { options.novaNetworks(templateOptions.getNovaNetworks()); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/cf95033b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java index 519c0c0..f9906ed 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptions.java @@ -78,6 +78,7 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { eTo.configDrive(getConfigDrive()); eTo.novaNetworks(getNovaNetworks()); + eTo.availabilityZone(getAvailabilityZone()); } } @@ -89,6 +90,7 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { protected String diskConfig; protected boolean configDrive; protected Set<Network> novaNetworks; + protected String availabilityZone; @Override public boolean equals(Object o) { @@ -104,12 +106,14 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { && Arrays.equals(this.userData, that.userData) && equal(this.diskConfig, that.diskConfig) && equal(this.configDrive, that.configDrive) - && equal(this.novaNetworks, that.novaNetworks); + && equal(this.novaNetworks, that.novaNetworks) + && equal(this.availabilityZone, that.availabilityZone); } @Override public int hashCode() { - return Objects.hashCode(super.hashCode(), autoAssignFloatingIp, floatingIpPoolNames, generateKeyPair, keyPairName, userData, diskConfig, configDrive, novaNetworks); + return Objects.hashCode(super.hashCode(), autoAssignFloatingIp, floatingIpPoolNames, generateKeyPair, keyPairName, + userData, diskConfig, configDrive, novaNetworks, availabilityZone); } @Override @@ -126,6 +130,7 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { toString.add("diskConfig", diskConfig); toString.add("configDrive", configDrive); toString.add("novaNetworks", novaNetworks); + toString.add("availabilityZone", availabilityZone); return toString; } @@ -207,6 +212,14 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { } /** + * @see CreateServerOptions#getAvailabilityZone() + */ + public NovaTemplateOptions availabilityZone(String availabilityZone) { + this.availabilityZone = availabilityZone; + return this; + } + + /** * The floating IP pool name(s) to use when allocating a FloatingIP. Applicable * only if #shouldAutoAssignFloatingIp() returns true. If not set will attempt to * use whatever FloatingIP(s) can be found regardless of which pool they originated @@ -275,6 +288,13 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { return novaNetworks; } + /** + * @see CreateServerOptions#getAvailabilityZone() + */ + public String getAvailabilityZone() { + return availabilityZone; + } + public static class Builder { /** @@ -467,6 +487,14 @@ public class NovaTemplateOptions extends TemplateOptions implements Cloneable { NovaTemplateOptions options = new NovaTemplateOptions(); return NovaTemplateOptions.class.cast(options.novaNetworks(novaNetworks)); } + + /** + * @see NovaTemplateOptions#getAvailabilityZone() + */ + public static NovaTemplateOptions availabilityZone(String availabilityZone) { + NovaTemplateOptions options = new NovaTemplateOptions(); + return options.availabilityZone(availabilityZone); + } } // methods that only facilitate returning the correct object type http://git-wip-us.apache.org/repos/asf/jclouds/blob/cf95033b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java index dc092bf..eed4b10 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java @@ -345,6 +345,11 @@ public class CreateServerOptions implements MapBinder { return keyName; } + /** + * The availability zone in which to launch the server. + * + * @return the availability zone to be used + */ public String getAvailabilityZone() { return availabilityZone; } http://git-wip-us.apache.org/repos/asf/jclouds/blob/cf95033b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptionsTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptionsTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptionsTest.java index 94c9919..3801865 100644 --- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptionsTest.java +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/options/NovaTemplateOptionsTest.java @@ -196,6 +196,13 @@ public class NovaTemplateOptionsTest { } @Test + public void testAvailabilityZone() { + NovaTemplateOptions options = new NovaTemplateOptions(); + options.availabilityZone("nova"); + assertEquals(options.getAvailabilityZone(), "nova"); + } + + @Test public void testDiskConfig() { NovaTemplateOptions options = new NovaTemplateOptions(); options.diskConfig(Server.DISK_CONFIG_AUTO);
