Repository: jclouds-labs
Updated Branches:
  refs/heads/master 7fe205f0b -> 2e3874301


Configure jclouds group in virtualmachine tags


Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/3e5c92d9
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/3e5c92d9
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/3e5c92d9

Branch: refs/heads/master
Commit: 3e5c92d9f3b859ad9d13f76c4894b7322962e891
Parents: f6e1134
Author: Ignasi Barrera <n...@apache.org>
Authored: Tue Oct 18 11:17:38 2016 +0200
Committer: Ignasi Barrera <n...@apache.org>
Committed: Tue Oct 18 12:09:07 2016 +0200

----------------------------------------------------------------------
 .../arm/compute/AzureComputeServiceAdapter.java           | 10 +++++++---
 .../compute/functions/VirtualMachineToNodeMetadata.java   |  8 +++++++-
 2 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/3e5c92d9/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
index 4574ca7..9670433 100644
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
+++ 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeServiceAdapter.java
@@ -99,6 +99,8 @@ import com.google.common.collect.Lists;
 @Singleton
 public class AzureComputeServiceAdapter implements 
ComputeServiceAdapter<VirtualMachine, VMHardware, VMImage, Location> {
 
+   public static final String GROUP_KEY = "jclouds_group";
+   
    private final CleanupResources cleanupResources;
    private final AzureComputeApi api;
    private final AzureComputeConstants azureComputeConstants;
@@ -125,8 +127,6 @@ public class AzureComputeServiceAdapter implements 
ComputeServiceAdapter<Virtual
       AzureTemplateOptions templateOptions = 
template.getOptions().as(AzureTemplateOptions.class);
       String azureGroup = 
locationToResourceGroupName.apply(template.getLocation().getId());
 
-      // TODO Store group apart from the name to be able to identify nodes with
-      // custom names in the configured group
       // TODO ARM specific options
       // TODO network ids => create one nic in each network
       // TODO inbound ports
@@ -145,6 +145,9 @@ public class AzureComputeServiceAdapter implements 
ComputeServiceAdapter<Virtual
             
.hardwareProfile(hardwareProfile).storageProfile(storageProfile).osProfile(osProfile)
             .networkProfile(networkProfile).build();
       
+      // Store group apart from the name to be able to identify nodes with
+      // custom names in the configured group
+      template.getOptions().getUserMetadata().put(GROUP_KEY, group);
       Map<String, String> metadataAndTags = 
metadataAndTagsAsCommaDelimitedValue(template.getOptions());
       Plan plan = getMarketplacePlanFromImageMetadata(template.getImage());
 
@@ -187,7 +190,8 @@ public class AzureComputeServiceAdapter implements 
ComputeServiceAdapter<Virtual
             for (Version version : versionList) {
                Version versionDetails = osImageApi.getVersion(publisherName, 
offer.name(), sku.name(), version.name());
                VMImage vmImage = 
VMImage.azureImage().publisher(publisherName).offer(offer.name()).sku(sku.name())
-                     
.version(versionDetails.name()).location(location).versionProperties(version.properties()).build();
+                     
.version(versionDetails.name()).location(location).versionProperties(versionDetails.properties())
+                     .build();
                osImagesRef.add(vmImage);
             }
          }

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/3e5c92d9/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java
 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java
index 48c8508..6527d25 100644
--- 
a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java
+++ 
b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java
@@ -20,6 +20,7 @@ import static 
com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.collect.Iterables.find;
 import static com.google.common.collect.Iterables.transform;
 import static com.google.common.collect.Iterables.tryFind;
+import static 
org.jclouds.azurecompute.arm.compute.AzureComputeServiceAdapter.GROUP_KEY;
 import static 
org.jclouds.azurecompute.arm.compute.extensions.AzureComputeImageExtension.CONTAINER_NAME;
 import static 
org.jclouds.azurecompute.arm.compute.extensions.AzureComputeImageExtension.CUSTOM_IMAGE_OFFER;
 import static 
org.jclouds.azurecompute.arm.compute.functions.VMImageToImage.encodeFieldsToUniqueId;
@@ -148,7 +149,6 @@ public class VirtualMachineToNodeMetadata implements 
Function<VirtualMachine, No
       builder.providerId(virtualMachine.id());
       builder.name(virtualMachine.name());
       builder.hostname(virtualMachine.name());
-      builder.group(nodeNamingConvention.extractGroup(virtualMachine.name()));
 
       ProvisioningState provisioningState = 
virtualMachine.properties().provisioningState();
       if (ProvisioningState.SUCCEEDED.equals(provisioningState)) {
@@ -175,10 +175,16 @@ public class VirtualMachineToNodeMetadata implements 
Function<VirtualMachine, No
       
builder.publicAddresses(getPublicIpAddresses(virtualMachine.properties().networkProfile().networkInterfaces()));
       
builder.privateAddresses(getPrivateIpAddresses(virtualMachine.properties().networkProfile().networkInterfaces()));
 
+      String groupFromMetadata = null;
       if (virtualMachine.tags() != null) {
          addMetadataAndParseTagsFromCommaDelimitedValue(builder, 
virtualMachine.tags());
+         groupFromMetadata = virtualMachine.tags().get(GROUP_KEY);
       }
       
+      // Try to read the group from the virtual machine tags, and parse the 
name if missing
+      builder.group(groupFromMetadata != null ? groupFromMetadata : 
nodeNamingConvention.extractGroup(virtualMachine
+            .name()));
+      
       String locationName = virtualMachine.location();
       builder.location(getLocation(locationName));
 

Reply via email to