예제 #1
0
 @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();
  }
예제 #3
0
 @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();
 }