[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);

Reply via email to