From e3dc3fb9766449ce058313884afb75ae8c00e5c5 Mon Sep 17 00:00:00 2001 From: Ignasi Barrera Date: Tue, 18 Oct 2016 12:31:46 +0200 Subject: [PATCH] Null guards --- .../VirtualMachineToNodeMetadata.java | 45 ++++++++++++------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java index 6527d25d00..5e98fbf242 100644 --- a/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java +++ b/providers/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/functions/VirtualMachineToNodeMetadata.java @@ -156,14 +156,19 @@ public class VirtualMachineToNodeMetadata implements Function() { - @Override - public String apply(VirtualMachineStatus input) { - return input.code(); - } - }))); + if (instanceDetails != null && instanceDetails.powerState() != null) { + builder.status(POWERSTATE_TO_NODESTATUS.apply(instanceDetails.powerState())); + builder.backendStatus(Joiner.on(',').join( + transform(instanceDetails.statuses(), new Function() { + @Override + public String apply(VirtualMachineStatus input) { + return input.code(); + } + }))); + } else { + builder.status(NodeMetadata.Status.PENDING); + builder.backendStatus(provisioningState.name()); + } } else { builder.status(PROVISIONINGSTATE_TO_NODESTATUS.apply(provisioningState)); builder.backendStatus(provisioningState.name()); @@ -207,8 +212,13 @@ public class VirtualMachineToNodeMetadata implements Function privateIpAddresses = Lists.newArrayList(); for (IdReference networkInterfaceCardIdReference : idReferences) { NetworkInterfaceCard networkInterfaceCard = getNetworkInterfaceCard(networkInterfaceCardIdReference); - for (IpConfiguration ipConfiguration : networkInterfaceCard.properties().ipConfigurations()) { - privateIpAddresses.add(ipConfiguration.properties().privateIPAddress()); + if (networkInterfaceCard != null && networkInterfaceCard.properties() != null + && networkInterfaceCard.properties().ipConfigurations() != null) { + for (IpConfiguration ipConfiguration : networkInterfaceCard.properties().ipConfigurations()) { + if (ipConfiguration.properties().privateIPAddress() != null) { + privateIpAddresses.add(ipConfiguration.properties().privateIPAddress()); + } + } } } return privateIpAddresses; @@ -226,12 +236,15 @@ public class VirtualMachineToNodeMetadata implements Function publicIpAddresses = Lists.newArrayList(); for (IdReference networkInterfaceCardIdReference : idReferences) { NetworkInterfaceCard networkInterfaceCard = getNetworkInterfaceCard(networkInterfaceCardIdReference); - String resourceGroup = Iterables.get(Splitter.on("/").split(networkInterfaceCardIdReference.id()), 4); - for (IpConfiguration ipConfiguration : networkInterfaceCard.properties().ipConfigurations()) { - if (ipConfiguration.properties().publicIPAddress() != null) { - String publicIpId = ipConfiguration.properties().publicIPAddress().id(); - publicIpAddresses.add(api.getPublicIPAddressApi(resourceGroup) - .get(Iterables.getLast(Splitter.on("/").split(publicIpId))).properties().ipAddress()); + if (networkInterfaceCard != null && networkInterfaceCard.properties() != null + && networkInterfaceCard.properties().ipConfigurations() != null) { + String resourceGroup = Iterables.get(Splitter.on("/").split(networkInterfaceCardIdReference.id()), 4); + for (IpConfiguration ipConfiguration : networkInterfaceCard.properties().ipConfigurations()) { + if (ipConfiguration.properties().publicIPAddress() != null) { + String publicIpId = ipConfiguration.properties().publicIPAddress().id(); + publicIpAddresses.add(api.getPublicIPAddressApi(resourceGroup) + .get(Iterables.getLast(Splitter.on("/").split(publicIpId))).properties().ipAddress()); + } } } }