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());
+               }
             }
          }
       }

Reply via email to