[ARM] IpOption will allocate a public ip when a network is specified
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/b0abfa4b Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/b0abfa4b Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/b0abfa4b Branch: refs/heads/master Commit: b0abfa4b9a2ce825ddef1ee82d1028fbed625ab0 Parents: 79daee3 Author: Andrea Turli <[email protected]> Authored: Wed Sep 13 11:59:37 2017 +0200 Committer: Andrea Turli <[email protected]> Committed: Wed Sep 13 14:10:19 2017 +0200 ---------------------------------------------------------------------- .../CreateResourcesThenCreateNodes.java | 29 ++++++++++---------- .../CreateResourcesThenCreateNodesTest.java | 19 +++++++------ 2 files changed, 24 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/b0abfa4b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodes.java ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodes.java b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodes.java index 4c712d0..fb832c1 100644 --- a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodes.java +++ b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodes.java @@ -16,15 +16,6 @@ */ package org.jclouds.azurecompute.arm.compute.strategy; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkState; -import static com.google.common.collect.Iterables.getOnlyElement; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_SUBNET_ADDRESS_PREFIX; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_VNET_ADDRESS_SPACE_PREFIX; -import static org.jclouds.azurecompute.arm.domain.IdReference.extractName; -import static org.jclouds.azurecompute.arm.domain.IdReference.extractResourceGroup; -import static org.jclouds.azurecompute.arm.domain.Subnet.extractVirtualNetwork; - import java.util.Arrays; import java.util.Map; import java.util.Set; @@ -34,7 +25,6 @@ import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; -import com.google.common.base.Optional; import org.jclouds.Constants; import org.jclouds.azurecompute.arm.AzureComputeApi; import org.jclouds.azurecompute.arm.compute.domain.ResourceGroupAndName; @@ -50,7 +40,6 @@ import org.jclouds.azurecompute.arm.domain.Subnet; import org.jclouds.azurecompute.arm.domain.Subnet.SubnetProperties; import org.jclouds.azurecompute.arm.domain.VirtualNetwork.AddressSpace; import org.jclouds.azurecompute.arm.domain.VirtualNetwork.VirtualNetworkProperties; -import org.jclouds.util.Passwords; import org.jclouds.compute.config.CustomizationResponse; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.Template; @@ -63,8 +52,10 @@ import org.jclouds.compute.strategy.ListNodesStrategy; import org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet; import org.jclouds.domain.Location; import org.jclouds.logging.Logger; +import org.jclouds.util.Passwords; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Optional; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -72,6 +63,15 @@ 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.checkArgument; +import static com.google.common.base.Preconditions.checkState; +import static com.google.common.collect.Iterables.getOnlyElement; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_SUBNET_ADDRESS_PREFIX; +import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_VNET_ADDRESS_SPACE_PREFIX; +import static org.jclouds.azurecompute.arm.domain.IdReference.extractName; +import static org.jclouds.azurecompute.arm.domain.IdReference.extractResourceGroup; +import static org.jclouds.azurecompute.arm.domain.Subnet.extractVirtualNetwork; + @Singleton public class CreateResourcesThenCreateNodes extends CreateNodesWithGroupEncodedIntoNameThenAddToSet { @@ -219,14 +219,14 @@ public class CreateResourcesThenCreateNodes extends CreateNodesWithGroupEncodedI throw new IllegalArgumentException("The options.networks and options.ipOptions are exclusive"); } - if (!options.getNetworks().isEmpty() && options.getIpOptions().isEmpty()) { + if (!options.getNetworks().isEmpty()) { // The portable interface allows to configure network IDs (subnet IDs), // but we don't know the type of the IP configurations to be applied // when attaching nodes to those networks. We'll assume private IPs - // with Dynamic allocation and no public ip address associated. + // with Dynamic allocation and new public ip address allocated. ImmutableList.Builder<IpOptions> ipOptions = ImmutableList.builder(); for (String subnetId : options.getNetworks()) { - ipOptions.add(IpOptions.builder().subnet(subnetId).build()); + ipOptions.add(IpOptions.builder().subnet(subnetId).allocateNewPublicIp(true).build()); } options.ipOptions(ipOptions.build()); } @@ -241,7 +241,6 @@ public class CreateResourcesThenCreateNodes extends CreateNodesWithGroupEncodedI String resourceGroup = extractResourceGroup(ipConfig.subnet()); String networkName = extractVirtualNetwork(ipConfig.subnet()); String subnetName = extractName(ipConfig.subnet()); - Subnet subnet = api.getSubnetApi(resourceGroup, networkName).get(subnetName); checkState(subnet != null, "Configured subnet %s does not exist", ipConfig.subnet()); http://git-wip-us.apache.org/repos/asf/jclouds/blob/b0abfa4b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodesTest.java ---------------------------------------------------------------------- diff --git a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodesTest.java b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodesTest.java index f95430c..51a45af 100644 --- a/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodesTest.java +++ b/providers/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/compute/strategy/CreateResourcesThenCreateNodesTest.java @@ -16,13 +16,6 @@ */ package org.jclouds.azurecompute.arm.compute.strategy; -import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; -import static org.testng.Assert.assertEquals; - import org.jclouds.azurecompute.arm.AzureComputeApi; import org.jclouds.azurecompute.arm.compute.options.AzureTemplateOptions; import org.jclouds.azurecompute.arm.compute.options.IpOptions; @@ -35,6 +28,13 @@ import org.testng.annotations.Test; import com.google.common.collect.ImmutableList; +import static org.easymock.EasyMock.anyObject; +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.testng.Assert.assertEquals; + @Test(groups = "unit", testName = "CreateResourcesThenCreateNodesTest") public class CreateResourcesThenCreateNodesTest { @@ -67,8 +67,9 @@ public class CreateResourcesThenCreateNodesTest { strategy(api).normalizeNetworkOptions(options); assertEquals(options.getIpOptions(), ImmutableList.of( - IpOptions.builder().subnet(netResource("/virtualNetworks/vn/subnets/foo")).build(), IpOptions.builder() - .subnet(netResource("/virtualNetworks/vn/subnets/bar")).build())); + IpOptions.builder().subnet(netResource("/virtualNetworks/vn/subnets/foo")).allocateNewPublicIp(true).build(), + IpOptions.builder().subnet(netResource("/virtualNetworks/vn/subnets/bar")).allocateNewPublicIp(true).build()) + ); // Verify that the code has validated that the subnets exist verify(api, subnetApi);
