wip - fix AzureComputeServiceLiveTest
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/50ca53e8 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/50ca53e8 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/50ca53e8 Branch: refs/heads/fix/AzureTemplateBuilderLiveTest Commit: 50ca53e83af4bc081de83228f5d47ba6774b2ed1 Parents: d48537f Author: Andrea Turli <[email protected]> Authored: Thu Sep 29 12:24:38 2016 +0200 Committer: Ignasi Barrera <[email protected]> Committed: Thu Sep 29 13:05:34 2016 +0200 ---------------------------------------------------------------------- .../predicates/IsDeploymentInRegions.java | 1 + .../CreateResourceGroupThenCreateNodes.java | 26 ++++++++++++++------ .../arm/util/DeploymentTemplateBuilder.java | 7 +++--- .../compute/AzureComputeServiceLiveTest.java | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50ca53e8/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/predicates/IsDeploymentInRegions.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/predicates/IsDeploymentInRegions.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/predicates/IsDeploymentInRegions.java index 57a0678..66590e1 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/predicates/IsDeploymentInRegions.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/predicates/IsDeploymentInRegions.java @@ -40,6 +40,7 @@ public class IsDeploymentInRegions implements Predicate<Deployment> { @Override public boolean apply(Deployment deployment) { + if (deployment.properties() == null || deployment.properties().parameters() == null || deployment.properties().parameters().get("location") == null) return false; Value locationValue = deployment.properties().parameters().get("location"); return regionIds.get().contains(locationValue.value()); } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50ca53e8/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourceGroupThenCreateNodes.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourceGroupThenCreateNodes.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourceGroupThenCreateNodes.java index 468b87c..59375b5 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourceGroupThenCreateNodes.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourceGroupThenCreateNodes.java @@ -16,8 +16,6 @@ */ package org.jclouds.azurecompute.arm.compute.strategy; -import static com.google.common.base.Preconditions.checkNotNull; - import java.util.Arrays; import java.util.Map; import java.util.Set; @@ -27,12 +25,13 @@ import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; -import com.google.common.collect.ImmutableMap; import org.jclouds.Constants; +import org.jclouds.azurecompute.arm.AzureComputeApi; import org.jclouds.azurecompute.arm.compute.config.AzureComputeServiceContextModule; import org.jclouds.azurecompute.arm.compute.options.AzureTemplateOptions; import org.jclouds.azurecompute.arm.domain.ResourceGroup; import org.jclouds.azurecompute.arm.domain.Subnet; +import org.jclouds.azurecompute.arm.domain.VirtualNetwork; import org.jclouds.azurecompute.arm.features.ResourceGroupApi; import org.jclouds.azurecompute.arm.features.SubnetApi; import org.jclouds.azurecompute.arm.features.VirtualNetworkApi; @@ -45,13 +44,15 @@ import org.jclouds.compute.strategy.CreateNodeWithGroupEncodedIntoName; import org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap; import org.jclouds.compute.strategy.ListNodesStrategy; import org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet; -import org.jclouds.azurecompute.arm.AzureComputeApi; -import org.jclouds.azurecompute.arm.domain.VirtualNetwork; import org.jclouds.logging.Logger; + +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Multimap; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; +import static com.google.common.base.Preconditions.checkNotNull; + @Singleton public class CreateResourceGroupThenCreateNodes extends CreateNodesWithGroupEncodedIntoNameThenAddToSet { @@ -81,7 +82,13 @@ public class CreateResourceGroupThenCreateNodes extends CreateNodesWithGroupEnco public Map<?, ListenableFuture<Void>> execute(String group, int count, Template template, Set<NodeMetadata> goodNodes, Map<NodeMetadata, Exception> badNodes, Multimap<NodeMetadata, CustomizationResponse> customizationResponses) { - + // If there is a script to be run on the node and public key + // authentication has been configured, warn users if the private key + // is not present + if (hasRunScriptWithKeyAuthAndNoPrivateKey(template)) { + logger.warn(">> a runScript was configured but no SSH key has been provided. " + + "Authentication will delegate to the ssh-agent"); + } String azureGroupName = this.azureComputeConstants.azureResourceGroup(); AzureTemplateOptions options = template.getOptions().as(AzureTemplateOptions.class); @@ -91,7 +98,7 @@ public class CreateResourceGroupThenCreateNodes extends CreateNodesWithGroupEnco final String location = template.getLocation().getId(); if (resourceGroup == null){ - final Map<String, String> tags = ImmutableMap.of("description", "jClouds managed VMs"); + final Map<String, String> tags = ImmutableMap.of("description", "jclouds managed VMs"); resourceGroupApi.create(azureGroupName, location, tags).name(); } @@ -135,6 +142,11 @@ public class CreateResourceGroupThenCreateNodes extends CreateNodesWithGroupEnco options.virtualNetworkName(virtualNetworkName); options.subnetId(subnet.id()); + } + private static boolean hasRunScriptWithKeyAuthAndNoPrivateKey(Template template) { + return template.getOptions().getRunScript() != null && template.getOptions().getPublicKey() != null + && !template.getOptions().hasLoginPrivateKeyOption(); } + } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50ca53e8/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java index 31fa6bc..02d343f 100644 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java +++ b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/util/DeploymentTemplateBuilder.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import org.jclouds.azurecompute.arm.compute.config.AzureComputeServiceContextModule; import org.jclouds.azurecompute.arm.compute.extensions.AzureComputeImageExtension; import org.jclouds.azurecompute.arm.compute.options.AzureTemplateOptions; import org.jclouds.azurecompute.arm.domain.DataDisk; @@ -86,7 +85,6 @@ public class DeploymentTemplateBuilder { private List<ResourceDefinition> resources; private Map<String, String> variables; private String location; - private AzureComputeServiceContextModule.AzureComputeConstants azureComputeConstants; private static final String DEPLOYMENT_MODE = "Incremental"; @@ -402,11 +400,12 @@ public class DeploymentTemplateBuilder { //Create Data Disk(s) and add to list final String dataDiskName = name + "datadisk"; variables.put("dataDiskName", dataDiskName); - + final String dataDiskSize = "100"; + List<DataDisk> dataDisks = new ArrayList<DataDisk>(); DataDisk dataDisk = DataDisk.builder() .name("[variables('dataDiskName')]") - .diskSizeGB(azureComputeConstants.azureDefaultDataDiskSizeProperty()) + .diskSizeGB(dataDiskSize) .lun(0) .vhd( VHD.create("[concat('http://',variables('storageAccountName'),'.blob.core.windows.net/',variables('storageAccountContainerName'),'/',variables('dataDiskName'),'.vhd')]") http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/50ca53e8/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java index d6fdd3c..15ca7c9 100644 --- a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java +++ b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceLiveTest.java @@ -92,7 +92,7 @@ public class AzureComputeServiceLiveTest extends BaseComputeServiceLiveTest { properties.setProperty(TIMEOUT_NODE_TERMINATED, scriptTimeout + ""); properties.setProperty(TIMEOUT_NODE_SUSPENDED, scriptTimeout + ""); properties.put(RESOURCE_GROUP_NAME, "a4"); - properties.put(TEMPLATE, "locationId=westeurope"); + properties.put(TEMPLATE, "locationId=northeurope"); properties.put(IMAGE_PUBLISHERS, "Canonical"); AzureLiveTestUtils.defaultProperties(properties);
