in joyent-cloudapi/src/main/java/org/jclouds/joyent/cloudapi/v6_5/compute/functions/MachineInDatacenterToNodeMetadata.java [84:120]
public NodeMetadata apply(MachineInDatacenter machineInDatacenter) {
Location zone = locationIndex.get().get(machineInDatacenter.getDatacenter());
checkState(zone != null, "location %s not in locationIndex: %s", machineInDatacenter.getDatacenter(),
locationIndex.get());
Machine from = machineInDatacenter.get();
NodeMetadataBuilder builder = new NodeMetadataBuilder();
builder.id(machineInDatacenter.slashEncode());
builder.providerId(from.getId());
builder.name(from.getName());
builder.hostname(from.getId());
builder.location(zone);
Map<String, String> metadataMap = filterKeys(from.getMetadata(), new Predicate<String>() {
@Override
public boolean apply(String input) {
// TODO make this more efficient
for (Metadata key : Metadata.values())
if (key.key().equals(input))
return false;
return true;
}
});
addMetadataAndParseTagsFromCommaDelimitedValue(builder, metadataMap);
builder.group(groupFromMapOrName(metadataMap, from.getName(), nodeNamingConvention));
builder.imageId(DatacenterAndName.fromDatacenterAndName(machineInDatacenter.getDatacenter(), from.getDatasetURN())
.slashEncode());
builder.operatingSystem(findOperatingSystemForMachineOrNull(machineInDatacenter));
builder.hardware(findHardwareForMachineOrNull(machineInDatacenter));
builder.status(toPortableNodeStatus.get(from.getState()));
builder.publicAddresses(filter(from.getIps(), not(InetAddresses2.IsPrivateIPAddress.INSTANCE)));
builder.privateAddresses(filter(from.getIps(), InetAddresses2.IsPrivateIPAddress.INSTANCE));
return builder.build();
}