You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2018/01/08 14:52:52 UTC
[31/50] [abbrv] jclouds git commit: JCLOUDS-1282: Add back support
for Azure ARM custom data
JCLOUDS-1282: Add back support for Azure ARM custom data
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/7d3b1beb
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/7d3b1beb
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/7d3b1beb
Branch: refs/heads/master
Commit: 7d3b1bebd5d40fcc1532ffbe264cdd31ee623f2f
Parents: b0abfa4
Author: Vikas Rangarajan <vi...@cable.comcast.com>
Authored: Fri May 26 16:16:35 2017 -0500
Committer: Ignasi Barrera <na...@apache.org>
Committed: Fri Sep 29 11:29:08 2017 +0200
----------------------------------------------------------------------
.../arm/compute/AzureComputeServiceAdapter.java | 8 +-
.../compute/options/AzureTemplateOptions.java | 128 +++++++++++++------
2 files changed, 94 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/7d3b1beb/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
index 213d438..37585e2 100644
--- a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
+++ b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
@@ -99,6 +99,7 @@ import com.google.common.base.Function;
import com.google.common.base.MoreObjects;
import com.google.common.base.Predicate;
import com.google.common.base.Splitter;
+import com.google.common.base.Strings;
import com.google.common.base.Supplier;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
@@ -381,7 +382,7 @@ public class AzureComputeServiceAdapter implements ComputeServiceAdapter<Virtual
OSProfile.Builder builder = OSProfile.builder().adminUsername(adminUsername).adminPassword(adminPassword)
.computerName(computerName);
- if (template.getOptions().getPublicKey() != null
+ if (!Strings.isNullOrEmpty(template.getOptions().getPublicKey())
&& OsFamily.WINDOWS != template.getImage().getOperatingSystem().getFamily()) {
OSProfile.LinuxConfiguration linuxConfiguration = OSProfile.LinuxConfiguration.create("true",
OSProfile.LinuxConfiguration.SSH.create(of(
@@ -391,7 +392,6 @@ public class AzureComputeServiceAdapter implements ComputeServiceAdapter<Virtual
builder.linuxConfiguration(linuxConfiguration);
}
-
AzureTemplateOptions azureTemplateOptions = template.getOptions().as(AzureTemplateOptions.class);
if (azureTemplateOptions.getWindowsConfiguration() != null) {
@@ -402,6 +402,10 @@ public class AzureComputeServiceAdapter implements ComputeServiceAdapter<Virtual
builder.secrets(azureTemplateOptions.getSecrets());
}
+ if (!Strings.isNullOrEmpty(azureTemplateOptions.getCustomData())) {
+ builder.customData(azureTemplateOptions.getCustomData());
+ }
+
return builder.build();
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/7d3b1beb/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/options/AzureTemplateOptions.java
----------------------------------------------------------------------
diff --git a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/options/AzureTemplateOptions.java b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/options/AzureTemplateOptions.java
index 92f592e..b551811 100644
--- a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/options/AzureTemplateOptions.java
+++ b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/options/AzureTemplateOptions.java
@@ -42,7 +42,8 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
private List<IpOptions> ipOptions = ImmutableList.of();
private WindowsConfiguration windowsConfiguration;
private List<Secrets> secrets = ImmutableList.of();
-
+ private String customData;
+
/**
* Sets the availability set where the nodes will be configured. If it does
* not exist jclouds will create a new one with the given configuration.
@@ -60,7 +61,7 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
this.availabilitySetName = availabilitySetName;
return this;
}
-
+
/**
* The resource group where the new resources will be created.
*/
@@ -79,7 +80,7 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
public AzureTemplateOptions dataDisks(DataDisk... dataDisks) {
return dataDisks(ImmutableList.copyOf(checkNotNull(dataDisks, "dataDisks")));
}
-
+
/**
* Configure the NICs that will be attached to the created nodes.
* <p>
@@ -99,6 +100,7 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
/**
* @see {@link AzureTemplateOptions#ipOptions(Iterable)
+
*/
public AzureTemplateOptions ipOptions(IpOptions... ipOptions) {
return ipOptions(ImmutableList.copyOf(checkNotNull(ipOptions, "ipOptions")));
@@ -107,32 +109,66 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
/**
* Windows configuration parameters
*
- * @see <a href="https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/virtualmachines-create-or-update#bk_windowsconfig5">docs</a>
+ * @see <a
+ * href="https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/virtualmachines-create-or-update#bk_windowsconfig5">docs</a>
*/
public AzureTemplateOptions windowsConfiguration(WindowsConfiguration windowsConfiguration) {
- this.windowsConfiguration = windowsConfiguration;
- return this;
- }
+ this.windowsConfiguration = windowsConfiguration;
+ return this;
+ }
/**
* Import certificates in the Windows Certificate Store
*
- * @see <a href="https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/virtualmachines-create-or-update#bk_srcvault">docs</a>
+ * @see <a
+ * href="https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/virtualmachines-create-or-update#bk_srcvault">docs</a>
*/
public AzureTemplateOptions secrets(Iterable<? extends Secrets> secrets) {
- for (Secrets secret : checkNotNull(secrets, "secrets"))
- checkNotNull(secret, "secrets can not be empty");
- this.secrets = ImmutableList.copyOf(secrets);
- return this;
- }
-
- public AvailabilitySet getAvailabilitySet() { return availabilitySet; }
- public String getAvailabilitySetName() { return availabilitySetName; }
- public List<DataDisk> getDataDisks() { return dataDisks; }
- public String getResourceGroup() { return resourceGroup; }
- public List<IpOptions> getIpOptions() { return ipOptions; }
- public WindowsConfiguration getWindowsConfiguration() { return windowsConfiguration; }
- public List<Secrets> getSecrets() { return secrets; }
+ for (Secrets secret : checkNotNull(secrets, "secrets"))
+ checkNotNull(secret, "secrets can not be empty");
+ this.secrets = ImmutableList.copyOf(secrets);
+ return this;
+ }
+
+ /**
+ * Custom data (for cloud-init) for the Azure ARM API
+ */
+ public AzureTemplateOptions customData(String customData) {
+ this.customData = customData;
+ return this;
+ }
+
+ public AvailabilitySet getAvailabilitySet() {
+ return availabilitySet;
+ }
+
+ public String getAvailabilitySetName() {
+ return availabilitySetName;
+ }
+
+ public List<DataDisk> getDataDisks() {
+ return dataDisks;
+ }
+
+ public String getResourceGroup() {
+ return resourceGroup;
+ }
+
+ public List<IpOptions> getIpOptions() {
+ return ipOptions;
+ }
+
+ public WindowsConfiguration getWindowsConfiguration() {
+ return windowsConfiguration;
+ }
+
+ public List<Secrets> getSecrets() {
+ return secrets;
+ }
+
+ public String getCustomData() {
+ return customData;
+ }
@Override
public AzureTemplateOptions clone() {
@@ -153,30 +189,32 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
eTo.ipOptions(ipOptions);
eTo.windowsConfiguration(windowsConfiguration);
eTo.secrets(secrets);
+ eTo.customData(customData);
}
}
@Override
public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof AzureTemplateOptions)) return false;
- if (!super.equals(o)) return false;
+ if (this == o)
+ return true;
+ if (!(o instanceof AzureTemplateOptions))
+ return false;
+ if (!super.equals(o))
+ return false;
AzureTemplateOptions that = (AzureTemplateOptions) o;
-
- return Objects.equal(availabilitySetName, that.availabilitySetName) &&
- Objects.equal(resourceGroup, that.resourceGroup) &&
- Objects.equal(availabilitySet, that.availabilitySet) &&
- Objects.equal(dataDisks, that.dataDisks) &&
- Objects.equal(ipOptions, that.ipOptions) &&
- Objects.equal(windowsConfiguration, that.windowsConfiguration) &&
- Objects.equal(secrets, that.secrets);
+
+ return Objects.equal(availabilitySetName, that.availabilitySetName)
+ && Objects.equal(resourceGroup, that.resourceGroup) && Objects.equal(availabilitySet, that.availabilitySet)
+ && Objects.equal(dataDisks, that.dataDisks) && Objects.equal(ipOptions, that.ipOptions)
+ && Objects.equal(windowsConfiguration, that.windowsConfiguration) && Objects.equal(secrets, that.secrets)
+ && Objects.equal(this.customData, that.customData);
}
@Override
public int hashCode() {
- return Objects.hashCode(availabilitySet, availabilitySetName, dataDisks,
- resourceGroup, ipOptions);
+ return Objects.hashCode(super.hashCode(), availabilitySet, availabilitySetName, dataDisks, resourceGroup,
+ ipOptions, customData);
}
@Override
@@ -193,14 +231,16 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
if (!ipOptions.isEmpty())
toString.add("ipOptions", ipOptions);
if (windowsConfiguration != null)
- toString.add("windowsConfiguration", windowsConfiguration);
+ toString.add("windowsConfiguration", windowsConfiguration);
if (!secrets.isEmpty())
- toString.add("secrets", secrets);
+ toString.add("secrets", secrets);
+ if (customData != null)
+ toString.add("customData", customData);
return toString;
}
public static class Builder {
-
+
/**
* @see AzureTemplateOptions#availabilitySet(AvailabilitySet)
*/
@@ -208,7 +248,7 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
AzureTemplateOptions options = new AzureTemplateOptions();
return options.availabilitySet(availabilitySet);
}
-
+
/**
* @see AzureTemplateOptions#availabilitySet(String)
*/
@@ -232,7 +272,7 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
AzureTemplateOptions options = new AzureTemplateOptions();
return options.dataDisks(dataDisks);
}
-
+
/**
* @see AzureTemplateOptions#resourceGroup(String)
*/
@@ -240,7 +280,7 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
AzureTemplateOptions options = new AzureTemplateOptions();
return options.resourceGroup(resourceGroup);
}
-
+
/**
* @see AzureTemplateOptions#ipOptions(IpOptions...)
*/
@@ -272,5 +312,13 @@ public class AzureTemplateOptions extends TemplateOptions implements Cloneable {
AzureTemplateOptions options = new AzureTemplateOptions();
return options.secrets(secrets);
}
+
+ /**
+ * @see AzureTemplateOptions#customData
+ */
+ public static AzureTemplateOptions customData(String customData) {
+ AzureTemplateOptions options = new AzureTemplateOptions();
+ return options.customData(customData);
+ }
}
}