public MachineTypeInZone(MachineType machineType, String zoneId) { super(zoneId, checkNotNull(machineType, "machineType").getName()); this.machineType = machineType; }
public MachineTypeInZone(MachineType machineType, String zoneId) { super(zoneId, checkNotNull(machineType, "machineType").getName()); this.machineType = machineType; }
@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(); }
@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()); 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()) .volumes(collectVolumes(input.getMachineType())) .supportsImage(Predicates.<Image>alwaysTrue()) .build(); }