@SuppressWarnings({"unchecked", "rawtypes"}) @Override public NodeMetadata apply(ServerInfo from) { NodeMetadataBuilder builder = new NodeMetadataBuilder(); builder.ids(from.getUuid()); builder.name(from.getName()); builder.location(locationSupplier.get()); builder.group(parseGroupFromName(from.getName())); String imageId = getImageIdFromServer.apply(from); if (imageId != null) { Image image = findImageForId.apply(imageId); if (image != null) { builder.operatingSystem(image.getOperatingSystem()); builder.adminPassword(image.getAdminPassword()); } } builder.hardware( new HardwareBuilder() .ids(from.getUuid()) .processors(ImmutableList.of(new Processor(1, from.getCpu()))) .ram(from.getMem()) .volumes( (List) ImmutableList.of( Iterables.transform(from.getDevices().values(), deviceToVolume))) .build()); builder.state(serverStatusToNodeState.get(from.getStatus())); builder.publicAddresses(ImmutableSet.<String>of(from.getVnc().getIp())); builder.privateAddresses(ImmutableSet.<String>of()); builder.credentials(credentialStore.get("node#" + from.getUuid())); return builder.build(); }
@Override public void destroyNode(String id) { ServerInfo server = getNode(id); if (server != null) { client.stopServer(id); client.destroyServer(id); for (Device dev : server.getDevices().values()) client.destroyDrive(dev.getDriveUuid()); } }