Repository: jclouds
Updated Branches:
  refs/heads/1.9.x cc1217b5c -> f69518b75


JCLOUDS-995 - Add `userData` property to `CloudStackTemplateOptions` and map it 
in the underlying adapter.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/1ef5c701
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/1ef5c701
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/1ef5c701

Branch: refs/heads/1.9.x
Commit: 1ef5c701065f5e43d5734fc76ba9234658698eb6
Parents: cc1217b
Author: Irmo Manie <[email protected]>
Authored: Tue Sep 1 11:21:36 2015 +0200
Committer: Ignasi Barrera <[email protected]>
Committed: Mon Sep 7 00:19:30 2015 +0200

----------------------------------------------------------------------
 .../options/CloudStackTemplateOptions.java      | 32 +++++++++++++++++---
 .../CloudStackComputeServiceAdapter.java        |  4 +++
 2 files changed, 31 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/1ef5c701/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java
----------------------------------------------------------------------
diff --git 
a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java
 
b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java
index 1bcad0c..59ceff9 100644
--- 
a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java
+++ 
b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java
@@ -32,13 +32,13 @@ import com.google.common.collect.Sets;
  * {@link ComputeService#createNodesInGroup(String, int, TemplateOptions)} and
  * {@link ComputeService#createNodesInGroup(String, int, TemplateOptions)}
  * operations on the <em>gogrid</em> provider.
- * 
+ *
  * <h2>Usage</h2> The recommended way to instantiate a
  * {@link CloudStackTemplateOptions} object is to statically import
  * {@code CloudStackTemplateOptions.*} and invoke a static creation method
  * followed by an instance mutator (if needed):
  * <p>
- * 
+ *
  * <pre>
  * import static 
org.jclouds.compute.options.CloudStackTemplateOptions.Builder.*;
  * ComputeService client = // get connection
@@ -59,7 +59,8 @@ public class CloudStackTemplateOptions extends 
TemplateOptions implements Clonea
    protected boolean generateSecurityGroup = false;
    protected String diskOfferingId;
    protected int dataDiskSize;
-   
+   protected byte[] unencodedData;
+
    @Override
    public CloudStackTemplateOptions clone() {
       CloudStackTemplateOptions options = new CloudStackTemplateOptions();
@@ -83,6 +84,7 @@ public class CloudStackTemplateOptions extends 
TemplateOptions implements Clonea
          eTo.setupStaticNat(setupStaticNat);
          eTo.diskOfferingId(diskOfferingId);
          eTo.dataDiskSize(dataDiskSize);
+         eTo.userData(unencodedData);
       }
    }
 
@@ -111,6 +113,18 @@ public class CloudStackTemplateOptions extends 
TemplateOptions implements Clonea
    }
 
    /**
+    * @see DeployVirtualMachineOptions#userData
+    */
+   public CloudStackTemplateOptions userData(byte[] unencodedData) {
+      this.unencodedData = unencodedData;
+      return this;
+   }
+
+   public byte[] getUserData() {
+      return unencodedData;
+   }
+
+   /**
     * @see DeployVirtualMachineOptions#securityGroupId
     */
    public CloudStackTemplateOptions securityGroupId(String securityGroupId) {
@@ -279,6 +293,14 @@ public class CloudStackTemplateOptions extends 
TemplateOptions implements Clonea
       }
 
       /**
+       * @see CloudStackTemplateOptions#userData
+       */
+      public static CloudStackTemplateOptions userData(byte[] unencodedData) {
+         CloudStackTemplateOptions options = new CloudStackTemplateOptions();
+         return options.userData(unencodedData);
+      }
+
+      /**
        * @see CloudStackTemplateOptions#securityGroupId
        */
       public static CloudStackTemplateOptions securityGroupId(String id) {
@@ -295,7 +317,7 @@ public class CloudStackTemplateOptions extends 
TemplateOptions implements Clonea
       }
 
       /**
-       * @see CloudStackTemplateOptions#shouldGenerateSecurityGroup() 
+       * @see CloudStackTemplateOptions#shouldGenerateSecurityGroup()
        */
       public static CloudStackTemplateOptions generateSecurityGroup(boolean 
enable) {
          return new CloudStackTemplateOptions().generateSecurityGroup(enable);
@@ -352,7 +374,7 @@ public class CloudStackTemplateOptions extends 
TemplateOptions implements Clonea
       }
 
       /**
-       * @see CloudStackTemplateOptions#shouldGenerateKeyPair() 
+       * @see CloudStackTemplateOptions#shouldGenerateKeyPair()
        */
       public static CloudStackTemplateOptions generateKeyPair(boolean enable) {
          return new CloudStackTemplateOptions().generateKeyPair(enable);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/1ef5c701/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git 
a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
 
b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
index e723f7f..3806a83 100644
--- 
a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
+++ 
b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
@@ -183,6 +183,10 @@ public class CloudStackComputeServiceAdapter implements
          options.ipsToNetworks(templateOptions.getIpsToNetworks());
       }
 
+      if (templateOptions.getUserData() != null) {
+         options.userData(templateOptions.getUserData());
+      }
+
       if (templateOptions.getKeyPair() != null) {
          SshKeyPair keyPair = null;
          if (templateOptions.getLoginPrivateKey() != null) {

Reply via email to