public NodeMetadata apply()

in dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/compute/functions/ServerWithNatRuleToNodeMetadata.java [73:107]


   public NodeMetadata apply(final ServerWithExternalIp serverWithExternalIp) {
      NodeMetadataBuilder builder = new NodeMetadataBuilder();
      Server server = serverWithExternalIp.server();
      builder.ids(server.id());
      builder.name(server.name());
      builder.location(find(locations.get(), idEquals(nullToEmpty(server.datacenterId()))));
      builder.group(nodeNamingConvention.groupInUniqueNameOrNull(server.name()));
      builder.hardware(serverToHardware.apply(serverWithExternalIp.server()));
      builder.imageId(server.sourceImageId());
      builder.operatingSystem(operatingSystemToOperatingSystem.apply(server.guest().operatingSystem()));
      builder.status(server.started() ?
            serverStateToNodeStatus.get(server.state()) :
            NodeMetadata.Status.SUSPENDED);

      Set<String> privateAddresses = new HashSet<String>();
      if (server.networkInfo() != null) {
         if (server.networkInfo().primaryNic() != null && server.networkInfo().primaryNic().privateIpv4() != null) {
            privateAddresses.add(server.networkInfo().primaryNic().privateIpv4());
         }
         if (!server.networkInfo().additionalNic().isEmpty()) {
            privateAddresses.addAll(Sets.newHashSet(
                  Iterables.transform(server.networkInfo().additionalNic(), new Function<NIC, String>() {
                     @Override
                     public String apply(NIC nic) {
                        return nic.privateIpv4();
                     }
                  })));
         }
      }
      builder.privateAddresses(privateAddresses);
      if (serverWithExternalIp.externalIp() != null) {
         builder.publicAddresses(ImmutableSet.of(serverWithExternalIp.externalIp()));
      }
      return builder.build();
   }