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