@Override public NodeMetadata apply(VirtualGuest from) { NodeMetadataBuilder builder = new NodeMetadataBuilder(); builder.ids(from.getId() + ""); builder.name(from.getHostname()); builder.hostname(from.getFullyQualifiedDomainName()); if (from.getDatacenter() != null) { builder.location( from(locations.get()) .firstMatch(LocationPredicates.idEquals(from.getDatacenter().getName())) .orNull()); } builder.group(nodeNamingConvention.groupInUniqueNameOrNull(from.getHostname())); builder.hardware(virtualGuestToHardware.apply(from)); Image image = virtualGuestToImage.apply(from); if (image != null) { builder.imageId(image.getId()); builder.operatingSystem(image.getOperatingSystem()); } if (from.getPowerState() != null) { builder.status(serverStateToNodeStatus.get(from.getPowerState().getKeyName())); } if (from.getPrimaryIpAddress() != null) builder.publicAddresses(ImmutableSet.of(from.getPrimaryIpAddress())); if (from.getPrimaryBackendIpAddress() != null) builder.privateAddresses(ImmutableSet.of(from.getPrimaryBackendIpAddress())); // TODO simplify once we move domain classes to AutoValue if (from.getOperatingSystem() != null && from.getOperatingSystem().getPasswords() != null && !from.getOperatingSystem().getPasswords().isEmpty()) { Password password = getBestPassword(from.getOperatingSystem().getPasswords(), from); builder.credentials( LoginCredentials.builder() .identity(password.getUsername()) .credential(password.getPassword()) .build()); } if (from.getTagReferences() != null && !from.getTagReferences().isEmpty()) { List<String> tags = Lists.newArrayList(); for (TagReference tagReference : from.getTagReferences()) { if (tagReference != null) { tags.add(tagReference.getTag().getName()); } } builder.tags(tags); } return builder.build(); }
@Override public NodeMetadata apply(ServerInZone serverInZone) { Location zone = locationIndex.get().get(serverInZone.getZone()); checkState( zone != null, "location %s not in locationIndex: %s", serverInZone.getZone(), locationIndex.get()); Server from = serverInZone.getServer(); NodeMetadataBuilder builder = new NodeMetadataBuilder(); builder.id(serverInZone.slashEncode()); builder.providerId(from.getId()); builder.name(from.getName()); builder.hostname(from.getName()); builder.location( from.getHostId() != null ? new LocationBuilder() .scope(LocationScope.HOST) .id(from.getHostId()) .description(from.getHostId()) .parent(zone) .build() : zone); addMetadataAndParseTagsFromCommaDelimitedValue(builder, from.getMetadata()); builder.group(nodeNamingConvention.groupInUniqueNameOrNull(from.getName())); builder.imageId( ZoneAndId.fromZoneAndId(serverInZone.getZone(), from.getImage().getId()).slashEncode()); builder.operatingSystem(findOperatingSystemForServerOrNull(serverInZone)); builder.hardware(findHardwareForServerOrNull(serverInZone)); builder.status(from.getStatus().getNodeStatus()); builder.publicAddresses( filter( transform( filter(from.getAddresses().values(), Predicates.not(isPrivateAddress)), AddressToStringTransformationFunction.INSTANCE), isInet4Address)); builder.privateAddresses( filter( transform( filter(from.getAddresses().values(), isPrivateAddress), AddressToStringTransformationFunction.INSTANCE), isInet4Address)); return builder.build(); }
@Override public NodeMetadata apply(Server from) { // convert the result object to a jclouds NodeMetadata NodeMetadataBuilder builder = new NodeMetadataBuilder(); builder.ids(from.id + ""); builder.name(from.name); builder.location(findLocationForServer.apply(from)); builder.group(nodeNamingConvention.groupInUniqueNameOrNull(from.name)); builder.imageId(from.imageId + ""); Image image = findImageForServer.apply(from); if (image != null) builder.operatingSystem(image.getOperatingSystem()); builder.hardware(findHardwareForServer.apply(from)); builder.state(serverStatusToNodeState.get(from.status)); builder.publicAddresses(ImmutableSet.<String>of(from.publicAddress)); builder.privateAddresses(ImmutableSet.<String>of(from.privateAddress)); builder.credentials(LoginCredentials.fromCredentials(credentialStore.get(from.id + ""))); return builder.build(); }