This is an automated email from the ASF dual-hosted git repository.
nacx pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jclouds.git
The following commit(s) were added to refs/heads/master by this push:
new fa1962b Add OS disk type in template options (#46)
fa1962b is described below
commit fa1962b22377642b2a213b73fba41afd28676410
Author: Simone Locci <[email protected]>
AuthorDate: Wed Sep 18 16:34:34 2019 +0200
Add OS disk type in template options (#46)
* Add OS disk type in template options
* Fix review and code style
---
.../arm/compute/AzureComputeServiceAdapter.java | 12 ++++++-----
.../arm/compute/options/AzureTemplateOptions.java | 24 ++++++++++++++++++++--
2 files changed, 29 insertions(+), 7 deletions(-)
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 7b766d7..6a21609 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
@@ -155,7 +155,7 @@ public class AzureComputeServiceAdapter implements
ComputeServiceAdapter<Virtual
IdReference availabilitySet =
getAvailabilitySetIdReference(templateOptions.getAvailabilitySet());
NetworkProfile networkProfile =
createNetworkProfile(createNetworkInterfaceCards(name, locationName,
templateOptions));
- StorageProfile storageProfile = createStorageProfile(image,
templateOptions.getDataDisks());
+ StorageProfile storageProfile = createStorageProfile(image,
templateOptions);
HardwareProfile hardwareProfile =
HardwareProfile.builder().vmSize(hardwareId).build();
OSProfile osProfile = createOsProfile(name, template);
@@ -515,8 +515,10 @@ public class AzureComputeServiceAdapter implements
ComputeServiceAdapter<Virtual
return ip;
}
- private StorageProfile createStorageProfile(Image image, List<DataDisk>
dataDisks) {
- return StorageProfile.create(createImageReference(image),
createOSDisk(image), dataDisks);
+ private StorageProfile createStorageProfile(Image image,
AzureTemplateOptions templateOptions) {
+ List<DataDisk> dataDisks = templateOptions.getDataDisks();
+ StorageAccountType osDiskStorageType =
templateOptions.getOsDiskStorageType();
+ return StorageProfile.create(createImageReference(image),
createOSDisk(image, osDiskStorageType), dataDisks);
}
private ImageReference createImageReference(Image image) {
@@ -525,14 +527,14 @@ public class AzureComputeServiceAdapter implements
ComputeServiceAdapter<Virtual
.version("latest").build();
}
- private OSDisk createOSDisk(Image image) {
+ private OSDisk createOSDisk(Image image, StorageAccountType
osDiskStorageType) {
OsFamily osFamily = image.getOperatingSystem().getFamily();
String osType = osFamily == OsFamily.WINDOWS ? "Windows" : "Linux";
return OSDisk.builder()
.osType(osType)
.caching(DataDisk.CachingTypes.READ_WRITE.toString())
.createOption(CreationData.CreateOptions.FROM_IMAGE.toString())
- .managedDiskParameters(ManagedDiskParameters.create(null,
StorageAccountType.STANDARD_LRS.toString()))
+ .managedDiskParameters(ManagedDiskParameters.create(null,
osDiskStorageType.toString()))
.build();
}
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 b551811..e6c3a03 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
@@ -24,6 +24,7 @@ import org.jclouds.azurecompute.arm.domain.AvailabilitySet;
import org.jclouds.azurecompute.arm.domain.DataDisk;
import org.jclouds.azurecompute.arm.domain.OSProfile.WindowsConfiguration;
import org.jclouds.azurecompute.arm.domain.Secrets;
+import org.jclouds.azurecompute.arm.domain.StorageAccountType;
import org.jclouds.compute.options.TemplateOptions;
import com.google.common.base.MoreObjects;
@@ -43,6 +44,7 @@ public class AzureTemplateOptions extends TemplateOptions
implements Cloneable {
private WindowsConfiguration windowsConfiguration;
private List<Secrets> secrets = ImmutableList.of();
private String customData;
+ private StorageAccountType osDiskStorageType =
StorageAccountType.STANDARD_LRS;
/**
* Sets the availability set where the nodes will be configured. If it does
@@ -138,6 +140,11 @@ public class AzureTemplateOptions extends TemplateOptions
implements Cloneable {
return this;
}
+ public AzureTemplateOptions osDiskStorageType(StorageAccountType
osDiskStorageType) {
+ this.osDiskStorageType = osDiskStorageType;
+ return this;
+ }
+
public AvailabilitySet getAvailabilitySet() {
return availabilitySet;
}
@@ -170,6 +177,10 @@ public class AzureTemplateOptions extends TemplateOptions
implements Cloneable {
return customData;
}
+ public StorageAccountType getOsDiskStorageType() {
+ return osDiskStorageType;
+ }
+
@Override
public AzureTemplateOptions clone() {
AzureTemplateOptions options = new AzureTemplateOptions();
@@ -190,6 +201,7 @@ public class AzureTemplateOptions extends TemplateOptions
implements Cloneable {
eTo.windowsConfiguration(windowsConfiguration);
eTo.secrets(secrets);
eTo.customData(customData);
+ eTo.osDiskStorageType(osDiskStorageType);
}
}
@@ -306,7 +318,7 @@ public class AzureTemplateOptions extends TemplateOptions
implements Cloneable {
}
/**
- * @see AzureTemplateOptions#secrets(List)
+ * @see AzureTemplateOptions#secrets(Iterable)
*/
public static AzureTemplateOptions secrets(Iterable<? extends Secrets>
secrets) {
AzureTemplateOptions options = new AzureTemplateOptions();
@@ -314,11 +326,19 @@ public class AzureTemplateOptions extends TemplateOptions
implements Cloneable {
}
/**
- * @see AzureTemplateOptions#customData
+ * @see AzureTemplateOptions#customData(String)
*/
public static AzureTemplateOptions customData(String customData) {
AzureTemplateOptions options = new AzureTemplateOptions();
return options.customData(customData);
}
+
+ /**
+ * @see AzureTemplateOptions#osDiskStorageType(StorageAccountType)
+ */
+ public static AzureTemplateOptions osDiskStorageType(StorageAccountType
osDiskStorageType) {
+ AzureTemplateOptions options = new AzureTemplateOptions();
+ return options.osDiskStorageType(osDiskStorageType);
+ }
}
}