Minor tweaks for PR comments

Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/72d82330
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/72d82330
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/72d82330

Branch: refs/heads/master
Commit: 72d823308c71aa71ce1f4260db4adb9430d6b04b
Parents: 4447085
Author: graeme.miller <[email protected]>
Authored: Wed Jun 21 14:55:47 2017 +0100
Committer: graeme.miller <[email protected]>
Committed: Wed Jun 21 14:55:47 2017 +0100

----------------------------------------------------------------------
 .../location/jclouds/JcloudsLocation.java       |  2 +-
 .../creator/DefaultAzureArmNetworkCreator.java  | 50 +++++++++++++-------
 .../DefaultAzureArmNetworkCreatorTest.java      | 26 ++++++++--
 3 files changed, 56 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/72d82330/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
----------------------------------------------------------------------
diff --git 
a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
 
b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
index 2409727..c0d419c 100644
--- 
a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
+++ 
b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
@@ -670,7 +670,7 @@ public class JcloudsLocation extends 
AbstractCloudMachineProvisioningLocation im
             try {
                 // Create default network for Azure ARM if necessary
                 if ("azurecompute-arm".equals(this.getProvider())) {
-                    
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptions(computeService,
 setup);
+                    
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptionsIfRequired(computeService,
 setup);
                 }
 
                 // Setup the template

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/72d82330/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreator.java
----------------------------------------------------------------------
diff --git 
a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreator.java
 
b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreator.java
index f12d929..179c12c 100644
--- 
a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreator.java
+++ 
b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreator.java
@@ -37,6 +37,9 @@ import org.jclouds.azurecompute.arm.domain.Subnet;
 import org.jclouds.azurecompute.arm.domain.VirtualNetwork;
 import org.jclouds.compute.ComputeService;
 
+import org.apache.brooklyn.config.ConfigKey;
+import org.apache.brooklyn.core.config.ConfigKeys;
+import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.core.config.ConfigBag;
 
 public class DefaultAzureArmNetworkCreator {
@@ -47,23 +50,35 @@ public class DefaultAzureArmNetworkCreator {
     private static final String DEFAULT_NETWORK_NAME = 
"brooklyn-default-network";
     private static final String DEFAULT_SUBNET_NAME = 
"brooklyn-default-subnet";
 
-    private static final String defaultVnetAddressPrefix = "10.1.0.0/16";
-    private static final String defaultSubnetAddressPrefix = "10.1.0.0/24";
+    private static final String DEFAULT_VNET_ADDRESS_PREFIX = "10.1.0.0/16";
+    private static final String DEFAULT_SUBNET_ADDRESS_PREFIX = "10.1.0.0/24";
+
+    public static ConfigKey<Boolean> AZURE_ARM_DEFAULT_NETWORK_ENABLED = 
ConfigKeys.newBooleanConfigKey(
+            "azure.arm.default.network.enabled",
+            "When set to true, AMP will create a default network and subnet 
per Azure region and " +
+                    "deploy applications there (if no network configuration 
has been set for the application).",
+            true);
+
+    public static void 
createDefaultNetworkAndAddToTemplateOptionsIfRequired(ComputeService 
computeService, ConfigBag config) {
+        if (!config.get(AZURE_ARM_DEFAULT_NETWORK_ENABLED)) {
+            LOG.info("azure.arm.default.network.enabled is disabled, not 
creating default network");
+            return;
+        }
+
 
-    public static void 
createDefaultNetworkAndAddToTemplateOptions(ComputeService computeService, 
ConfigBag config) {
         Map<String, Object> templateOptions = config.get(TEMPLATE_OPTIONS);
 
         //Only create a default network if we haven't specified a network name 
(in template options or config) or ip options
         if (config.containsKey(NETWORK_NAME)) {
-            LOG.info("Network config specified when creating Azure location. 
Not creating default network");
+            LOG.info("Network config specified when provisioning Azure 
machine. Not creating default network");
             return;
         }
         if (templateOptions != null && 
(templateOptions.containsKey(NETWORK_NAME.getName()) || 
templateOptions.containsKey("ipOptions"))) {
-            LOG.info("Network config specified when creating Azure location. 
Not creating default network");
+            LOG.info("Network config specified when provisioning Azure 
machine. Not creating default network");
             return;
         }
 
-        LOG.info("Network config not specified when creating Azure location. 
Creating default network if doesn't exist");
+        LOG.info("Network config not specified when provisioning Azure 
machine. Creating default network if doesn't exist");
 
         AzureComputeApi api = 
computeService.getContext().unwrapApi(AzureComputeApi.class);
         String location = config.get(CLOUD_REGION_ID);
@@ -87,10 +102,10 @@ public class DefaultAzureArmNetworkCreator {
 
         //Setup properties for creating subnet/network
         Subnet subnet = Subnet.create(subnetName, null, null,
-                
Subnet.SubnetProperties.builder().addressPrefix(defaultSubnetAddressPrefix).build());
+                
Subnet.SubnetProperties.builder().addressPrefix(DEFAULT_SUBNET_ADDRESS_PREFIX).build());
 
         VirtualNetwork.VirtualNetworkProperties virtualNetworkProperties = 
VirtualNetwork.VirtualNetworkProperties
-                
.builder().addressSpace(VirtualNetwork.AddressSpace.create(Arrays.asList(defaultVnetAddressPrefix)))
+                
.builder().addressSpace(VirtualNetwork.AddressSpace.create(Arrays.asList(DEFAULT_VNET_ADDRESS_PREFIX)))
                 .subnets(Arrays.asList(subnet)).build();
 
         //Create network
@@ -103,19 +118,22 @@ public class DefaultAzureArmNetworkCreator {
     }
 
     private static void updateTemplateOptions(ConfigBag config, Subnet 
createdSubnet){
-        Map<String, Object> templateOptions = config.get(TEMPLATE_OPTIONS);
+        Map<String, Object> templateOptions;
 
-        if(templateOptions == null) {
+        if(config.containsKey(TEMPLATE_OPTIONS)) {
+            templateOptions = MutableMap.copyOf(config.get(TEMPLATE_OPTIONS));
+        } else {
             templateOptions = new HashMap<>();
-            config.put(TEMPLATE_OPTIONS, templateOptions);
         }
 
-        Map<String, Object> ipOptions = new HashMap<>();
-        ipOptions.put("allocateNewPublicIp", true); //JClouds will not provide 
a public IP unless we set this
-        ipOptions.put("subnet", createdSubnet.id());
-        templateOptions.put("ipOptions", ipOptions);
-    }
+        templateOptions.put("ipOptions", ImmutableMap.of(
+                "allocateNewPublicIp", true, //jclouds will not provide a 
public IP unless we set this
+                "subnet", createdSubnet.id()
+        ));
 
+        config.put(TEMPLATE_OPTIONS, templateOptions);
+
+    }
 
     private static void createResourceGroupIfNeeded(AzureComputeApi api, 
String resourceGroup, String location) {
         LOG.debug("using resource group [%s]", resourceGroup);

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/72d82330/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreatorTest.java
----------------------------------------------------------------------
diff --git 
a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreatorTest.java
 
b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreatorTest.java
index 2dd6a5d..a2c4fc6 100644
--- 
a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreatorTest.java
+++ 
b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/networking/creator/DefaultAzureArmNetworkCreatorTest.java
@@ -21,6 +21,7 @@ package 
org.apache.brooklyn.location.jclouds.networking.creator;
 import static 
org.apache.brooklyn.core.location.cloud.CloudLocationConfig.CLOUD_REGION_ID;
 import static 
org.apache.brooklyn.location.jclouds.api.JcloudsLocationConfigPublic.NETWORK_NAME;
 import static 
org.apache.brooklyn.location.jclouds.api.JcloudsLocationConfigPublic.TEMPLATE_OPTIONS;
+import static 
org.apache.brooklyn.location.jclouds.networking.creator.DefaultAzureArmNetworkCreator.AZURE_ARM_DEFAULT_NETWORK_ENABLED;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -79,7 +80,7 @@ public class DefaultAzureArmNetworkCreatorTest {
         when(subnet.id()).thenReturn(TEST_SUBNET_ID);
 
         //Test
-        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptions(computeService,
 configBag);
+        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptionsIfRequired(computeService,
 configBag);
 
         //verify
         verify(subnetApi).get(TEST_SUBNET_NAME);
@@ -111,7 +112,7 @@ public class DefaultAzureArmNetworkCreatorTest {
 
 
         //Test
-        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptions(computeService,
 configBag);
+        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptionsIfRequired(computeService,
 configBag);
 
         //verify
         verify(subnetApi, times(2)).get(TEST_SUBNET_NAME);
@@ -136,7 +137,7 @@ public class DefaultAzureArmNetworkCreatorTest {
 
         Map<String, Object> configCopy = configBag.getAllConfig();
 
-        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptions(computeService,
 configBag);
+        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptionsIfRequired(computeService,
 configBag);
 
         //Ensure nothing changed, and no calls were made to the compute service
         assertEquals(configCopy, configBag.getAllConfig());
@@ -154,7 +155,7 @@ public class DefaultAzureArmNetworkCreatorTest {
 
         Map<String, Object> configCopy = configBag.getAllConfig();
 
-        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptions(computeService,
 configBag);
+        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptionsIfRequired(computeService,
 configBag);
 
         //Ensure nothing changed, and no calls were made to the compute service
         assertEquals(configCopy, configBag.getAllConfig());
@@ -172,7 +173,22 @@ public class DefaultAzureArmNetworkCreatorTest {
 
         Map<String, Object> configCopy = configBag.getAllConfig();
 
-        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptions(computeService,
 configBag);
+        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptionsIfRequired(computeService,
 configBag);
+
+        //Ensure nothing changed, and no calls were made to the compute service
+        assertEquals(configCopy, configBag.getAllConfig());
+        Mockito.verifyZeroInteractions(computeService);
+    }
+
+    @Test
+    public void testConfigDisabled() {
+        ConfigBag configBag = ConfigBag.newInstance();
+        configBag.put(CLOUD_REGION_ID, TEST_LOCATION);
+        configBag.put(AZURE_ARM_DEFAULT_NETWORK_ENABLED, false);
+
+        Map<String, Object> configCopy = configBag.getAllConfig();
+
+        
DefaultAzureArmNetworkCreator.createDefaultNetworkAndAddToTemplateOptionsIfRequired(computeService,
 configBag);
 
         //Ensure nothing changed, and no calls were made to the compute service
         assertEquals(configCopy, configBag.getAllConfig());

Reply via email to