Repository: jclouds
Updated Branches:
  refs/heads/1.8.x f510424c4 -> 7682f94ff


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/7682f94f
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/7682f94f
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/7682f94f

Branch: refs/heads/1.8.x
Commit: 7682f94ffe5a8ba8948dcc247f6c47e4ec5f2d4b
Parents: f510424
Author: Evgeny Tarasenko <[email protected]>
Authored: Sun Sep 14 17:22:42 2014 +0700
Committer: Jeremy Daggett <[email protected]>
Committed: Wed Sep 24 06:50:27 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/7682f94f/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 f7b7c74..dc31143 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
@@ -108,6 +108,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/7682f94f/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 dc1703d..a5d1cae 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/7682f94f/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 04e0aee..147f94c 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
@@ -344,6 +344,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/7682f94f/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);

Reply via email to