You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2016/10/18 13:07:54 UTC

[3/3] jclouds-labs git commit: Null guards

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 <na...@apache.org>
Authored: Tue Oct 18 12:31:46 2016 +0200
Committer: Ignasi Barrera <na...@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());
+               }
             }
          }
       }