@Override public EC2HardwareBuilder userMetadata(Map<String, String> userMetadata) { return EC2HardwareBuilder.class.cast(super.userMetadata(userMetadata)); }
@Override public EC2HardwareBuilder userMetadata(Map<String, String> userMetadata) { return EC2HardwareBuilder.class.cast(super.userMetadata(userMetadata)); }
@Override public EC2HardwareBuilder userMetadata(Map<String, String> userMetadata) { return EC2HardwareBuilder.class.cast(super.userMetadata(userMetadata)); }
@Override public EC2HardwareBuilder userMetadata(Map<String, String> userMetadata) { return EC2HardwareBuilder.class.cast(super.userMetadata(userMetadata)); }
@Override public EC2HardwareBuilder userMetadata(Map<String, String> userMetadata) { return EC2HardwareBuilder.class.cast(super.userMetadata(userMetadata)); }
@Override public EC2HardwareBuilder userMetadata(Map<String, String> userMetadata) { return EC2HardwareBuilder.class.cast(super.userMetadata(userMetadata)); }
@Override public Hardware apply(Size input) { HardwareBuilder builder = new HardwareBuilder(); builder.id(input.slug()); builder.providerId(input.slug()); builder.name(input.slug()); builder.ram(input.memory()); // No cpu speed from DigitalOcean API, so assume more cores == faster builder.processor(new Processor(input.vcpus(), input.vcpus())); builder.volume(new VolumeBuilder() .size(Float.valueOf(input.disk())) .type(Type.LOCAL) .build()); ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder(); metadata.put("costPerHour", String.valueOf(input.priceHourly())); metadata.put("costPerMonth", String.valueOf(input.priceMonthly())); builder.userMetadata(metadata.build()); return builder.build(); } }
@Override public Hardware apply(Size input) { HardwareBuilder builder = new HardwareBuilder(); builder.id(input.slug()); builder.providerId(input.slug()); builder.name(input.slug()); builder.ram(input.memory()); // No cpu speed from DigitalOcean API, so assume more cores == faster builder.processor(new Processor(input.vcpus(), input.vcpus())); builder.volume(new VolumeBuilder() .size(Float.valueOf(input.disk())) .type(Type.LOCAL) .build()); ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder(); metadata.put("costPerHour", String.valueOf(input.priceHourly())); metadata.put("costPerMonth", String.valueOf(input.priceMonthly())); builder.userMetadata(metadata.build()); return builder.build(); } }
@Override public Hardware apply(Size input) { HardwareBuilder builder = new HardwareBuilder(); builder.id(input.slug()); builder.providerId(input.slug()); builder.name(input.slug()); builder.ram(input.memory()); // No cpu speed from DigitalOcean API, so assume more cores == faster builder.processor(new Processor(input.vcpus(), input.vcpus())); builder.volume(new VolumeBuilder() .size(Float.valueOf(input.disk())) .type(Type.LOCAL) .build()); ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder(); metadata.put("costPerHour", String.valueOf(input.priceHourly())); metadata.put("costPerMonth", String.valueOf(input.priceMonthly())); builder.userMetadata(metadata.build()); return builder.build(); } }
@Override public Hardware apply(VMHardware from) { final HardwareBuilder builder = new HardwareBuilder() .name(from.name()) .providerId(from.name()) .id(fromLocationAndName(from.location(), from.name()).slashEncode()) .processors(ImmutableList.of(new Processor(from.numberOfCores(), 2))) .ram(from.memoryInMB()) .location(FluentIterable.from(locations.get()) .firstMatch(LocationPredicates.idEquals(from.location())) .get()); // No id or providerId from Azure if (from.resourceDiskSizeInMB() != null) { builder.volume(new VolumeBuilder() .size(Float.valueOf(from.resourceDiskSizeInMB())) .type(Volume.Type.LOCAL) .build()); } if (from.osDiskSizeInMB() != null) { builder.volume(new VolumeBuilder() .size(Float.valueOf(from.osDiskSizeInMB())) .type(Volume.Type.LOCAL) .build()); } ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder(); metadata.put("maxDataDiskCount", String.valueOf(from.maxDataDiskCount())); builder.userMetadata(metadata.build()); return builder.build(); }
@Override public Hardware apply(VMHardware from) { final HardwareBuilder builder = new HardwareBuilder() .name(from.name()) .providerId(from.name()) .id(fromLocationAndName(from.location(), from.name()).slashEncode()) .processors(ImmutableList.of(new Processor(from.numberOfCores(), 2))) .ram(from.memoryInMB()) .location(FluentIterable.from(locations.get()) .firstMatch(LocationPredicates.idEquals(from.location())) .get()); // No id or providerId from Azure if (from.resourceDiskSizeInMB() != null) { builder.volume(new VolumeBuilder() .size(Float.valueOf(from.resourceDiskSizeInMB())) .type(Volume.Type.LOCAL) .build()); } if (from.osDiskSizeInMB() != null) { builder.volume(new VolumeBuilder() .size(Float.valueOf(from.osDiskSizeInMB())) .type(Volume.Type.LOCAL) .build()); } ImmutableMap.Builder<String, String> metadata = ImmutableMap.builder(); metadata.put("maxDataDiskCount", String.valueOf(from.maxDataDiskCount())); builder.userMetadata(metadata.build()); return builder.build(); }
@Override public Hardware apply(final MachineTypeInZone input) { Iterable<? extends Location> zonesForMachineType = filter(locations.get().values(), new Predicate<Location>() { @Override public boolean apply(Location l) { return l.getId().equals(input.getMachineType().getZone()); } }); Location location = checkNotNull(getOnlyElement(zonesForMachineType), "location for %s", input.getMachineType().getZone()); // TODO Figure out a robust way to deal with machineTypes with imageSizeGb==0 rather than just blocking them. return new HardwareBuilder() .id(SlashEncodedIds.fromTwoIds(input.getMachineType().getZone(), input.getMachineType().getName()).slashEncode()) .location(location) .name(input.getMachineType().getName()) .hypervisor("kvm") .processor(new Processor(input.getMachineType().getGuestCpus(), 1.0)) .providerId(input.getMachineType().getId()) .ram(input.getMachineType().getMemoryMb()) .uri(input.getMachineType().getSelfLink()) .userMetadata(ImmutableMap.of("imageSpaceGb", Integer.toString(input.getMachineType().getImageSpaceGb()))) .volumes(collectVolumes(input.getMachineType())) .supportsImage(input.getMachineType().getImageSpaceGb() > 0 ? Predicates.<Image>alwaysTrue() : Predicates.<Image>alwaysFalse()) .build(); }
@SuppressWarnings("unchecked") public static HardwareBuilder fromHardware(Hardware in) { return new HardwareBuilder().id(in.getId()).providerId(in.getProviderId()).location(in.getLocation()).name( in.getName()).uri(in.getUri()).userMetadata(in.getUserMetadata()).tags(in.getTags()).processors( List.class.cast(in.getProcessors())).ram(in.getRam()).volumes(List.class.cast(in.getVolumes())) .supportsImage(in.supportsImage()).hypervisor(in.getHypervisor()); } }
@SuppressWarnings("unchecked") public static HardwareBuilder fromHardware(Hardware in) { return new HardwareBuilder().id(in.getId()).providerId(in.getProviderId()).location(in.getLocation()).name( in.getName()).uri(in.getUri()).userMetadata(in.getUserMetadata()).tags(in.getTags()).processors( List.class.cast(in.getProcessors())).ram(in.getRam()).volumes(List.class.cast(in.getVolumes())) .supportsImage(in.supportsImage()).hypervisor(in.getHypervisor()); } }
@SuppressWarnings("unchecked") public static HardwareBuilder fromHardware(Hardware in) { return new HardwareBuilder().id(in.getId()).providerId(in.getProviderId()).location(in.getLocation()).name( in.getName()).uri(in.getUri()).userMetadata(in.getUserMetadata()).tags(in.getTags()).processors( List.class.cast(in.getProcessors())).ram(in.getRam()).volumes(List.class.cast(in.getVolumes())) .supportsImage(in.supportsImage()).hypervisor(in.getHypervisor()); } }
@SuppressWarnings("unchecked") public static HardwareBuilder fromHardware(Hardware in) { return new HardwareBuilder().id(in.getId()).providerId(in.getProviderId()).location(in.getLocation()).name( in.getName()).uri(in.getUri()).userMetadata(in.getUserMetadata()).tags(in.getTags()).processors( List.class.cast(in.getProcessors())).ram(in.getRam()).volumes(List.class.cast(in.getVolumes())) .supportsImage(in.supportsImage()).hypervisor(in.getHypervisor()); } }
@Test public void testConvertSize() { Size size = Size.create("2gb", true, 1.0f, 10f, 0.05f, 2048, 1, 20, ImmutableList.<String> of()); Hardware expected = new HardwareBuilder().id("2gb").providerId("2gb").name("2gb") .processor(new Processor(1.0, 1.0)).ram(2048) .volume(new VolumeBuilder().size(20f).type(Type.LOCAL).build()) .userMetadata(ImmutableMap.of("costPerHour", "0.05", "costPerMonth", "10")).build(); SizeToHardware function = new SizeToHardware(); assertEquals(function.apply(size), expected); } }