Null guards
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/2e387430 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/2e387430 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/2e387430 Branch: refs/heads/master Commit: 2e3874301895557c366bc0c613605d68704f9305 Parents: 3e5c92d Author: Ignasi Barrera <n...@apache.org> Authored: Tue Oct 18 12:31:46 2016 +0200 Committer: Ignasi Barrera <n...@apache.org> Committed: Tue Oct 18 12:32:08 2016 +0200 ---------------------------------------------------------------------- .../functions/VirtualMachineToNodeMetadata.java | 45 +++++++++++++------- 1 file changed, 29 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/2e387430/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 6527d25..5e98fbf 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 @@ -156,14 +156,19 @@ public class VirtualMachineToNodeMetadata implements Function<VirtualMachine, No // the VM VirtualMachineInstance instanceDetails = api.getVirtualMachineApi(azureGroup).getInstanceDetails( virtualMachine.name()); - builder.status(POWERSTATE_TO_NODESTATUS.apply(instanceDetails.powerState())); - builder.backendStatus(Joiner.on(',').join( - transform(instanceDetails.statuses(), new Function<VirtualMachineStatus, String>() { - @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<VirtualMachineStatus, String>() { + @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<VirtualMachine, No List<String> 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<VirtualMachine, No List<String> 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()); + } } } }