@Override public Iterable<ProductItem> listImages() { return filter(productPackageSupplier.get().getItems(), categoryCode("os")); }
@Override public Iterable<ProductItem> listImages() { return filter(productPackageSupplier.get().getItems(), categoryCode("os")); }
@Override public Iterable<Iterable<ProductItem>> listHardwareProfiles() { ProductPackage productPackage = productPackageSupplier.get(); Set<ProductItem> items = productPackage.getItems(); Builder<Iterable<ProductItem>> result = ImmutableSet.builder(); for (ProductItem cpuItem : filter(items, matches(cpuPattern))) { for (ProductItem ramItem : filter(items, categoryCode("ram"))) { for (ProductItem sanItem : filter(items, and(matches(disk0Type), categoryCode("guest_disk0")))) { result.add(ImmutableSet.of(cpuItem, ramItem, sanItem)); } } } return result.build(); }
@Override public Iterable<Iterable<ProductItem>> listHardwareProfiles() { ProductPackage productPackage = productPackageSupplier.get(); Set<ProductItem> items = productPackage.getItems(); Builder<Iterable<ProductItem>> result = ImmutableSet.builder(); for (ProductItem cpuItem : filter(items, matches(cpuPattern))) { for (ProductItem ramItem : filter(items, categoryCode("ram"))) { for (ProductItem sanItem : filter(items, and(matches(disk0Type), categoryCode("guest_disk0")))) { result.add(ImmutableSet.of(cpuItem, ramItem, sanItem)); } } } return result.build(); }
private Iterable<ProductItemPrice> getPrices(Template template) { Builder<ProductItemPrice> result = ImmutableSet.builder(); int imageId = Integer.parseInt(template.getImage().getId()); result.add(ProductItemPrice.builder().id(imageId).build()); Iterable<String> hardwareIds = Splitter.on(",").split(template.getHardware().getId()); for (String hardwareId : hardwareIds) { int id = Integer.parseInt(hardwareId); result.add(ProductItemPrice.builder().id(id).build()); } ProductItem uplinkItem = find(productPackageSupplier.get().getItems(), and(capacity(portSpeed), categoryCode("port_speed"))); result.add(get(uplinkItem.getPrices(), 0)); result.addAll(prices); return result.build(); }
private Iterable<ProductItemPrice> getPrices(Template template) { Builder<ProductItemPrice> result = ImmutableSet.builder(); int imageId = Integer.parseInt(template.getImage().getId()); result.add(ProductItemPrice.builder().id(imageId).build()); Iterable<String> hardwareIds = Splitter.on(",").split(template.getHardware().getId()); for (String hardwareId : hardwareIds) { int id = Integer.parseInt(hardwareId); result.add(ProductItemPrice.builder().id(id).build()); } ProductItem uplinkItem = find(productPackageSupplier.get().getItems(), and(capacity(portSpeed), categoryCode("port_speed"))); result.add(get(uplinkItem.getPrices(), 0)); result.addAll(prices); return result.build(); }
@Test public void testGetUbuntuPrice() { Iterable<ProductItem> operatingSystems = Iterables.filter(cloudServerProductPackage.getItems(), categoryCode("os")); Map<String, ProductItem> osToProductItem = Maps.uniqueIndex(operatingSystems, ProductItems.description()); ProductItemPrice price = ProductItems.price().apply( osToProductItem.get("Ubuntu Linux 8 LTS Hardy Heron - Minimal Install (64 bit)")); assert Integer.valueOf(1693).equals(price.getId()); }
@Test public void testGetTwoCPUCoresPrice() { // If use ProductItemPredicates.categoryCode("guest_core") get duplicate // capacities (units = // PRIVATE_CORE and N/A) Iterable<ProductItem> cpuItems = Iterables.filter(cloudServerProductPackage.getItems(), Predicates.and(units("PRIVATE_CORE"), capacity(2.0f))); // number of cores is the key Map<Float, ProductItem> coresToProductItem = Maps.uniqueIndex(cpuItems, ProductItems.capacity()); ProductItemPrice price = ProductItems.price().apply(coresToProductItem.get(2.0f)); assert Integer.valueOf(1963).equals(price.getId()); }
@Test public void testGetOneGBRamPrice() { // Predicate p = // Predicates.and(ProductItemPredicates.categoryCode("ram"),ProductItemPredicates.capacity(1.0f)); Iterable<ProductItem> ramItems = Iterables.filter(cloudServerProductPackage.getItems(), Predicates.and(categoryCode("ram"), capacity(1.0f))); // capacity is key in GB (1Gb = 1.0f) Map<Float, ProductItem> ramToProductItem = Maps.uniqueIndex(ramItems, ProductItems.capacity()); ProductItemPrice price = ProductItems.price().apply(ramToProductItem.get(1.0f)); assert Integer.valueOf(1644).equals(price.getId()); }
@Test public void testGetActivePackages() { Set<ProductPackage> response = api.getAccountClient().getActivePackages(); assert null != response; assertTrue(response.size() >= 0); for (ProductPackage productPackage: response) { assert productPackage.getId() > 0 : response; assert productPackage.getName() != null : response; assert productPackage.getDescription() != null : response; assertTrue(productPackage.getItems().isEmpty()); } } }
@Test public void testGetProductPackage() { for (ProductPackage productPackage : accountClient.getActivePackages()) { ProductPackage response = client.getProductPackage(productPackage.getId()); assert null != response; assert response.getId() > 0 : response; assert response.getName() != null : response; assert response.getDescription() != null : response; assertTrue(response.getItems().size() >= 0); for (ProductItem item : response.getItems()) { // ProductItem newDetails = client.getProductItem(item.getId()); // assertEquals(item.getId(), newDetails.getId()); checkProductItem(item); } assertTrue(response.getDatacenters().size() > 0); for (Datacenter datacenter : response.getDatacenters()) { checkDatacenter(datacenter); } } }
public T fromProductPackage(ProductPackage in) { return this .id(in.getId()) .name(in.getName()) .description(in.getDescription()) .items(in.getItems()) .datacenters(in.getDatacenters()); } }
public T fromProductPackage(ProductPackage in) { return this .id(in.getId()) .name(in.getName()) .description(in.getDescription()) .items(in.getItems()) .datacenters(in.getDatacenters()); } }
ProductPackage productPackage = api.getProductPackageClient().getProductPackage(pkgId); Iterable<ProductItem> ramItems = Iterables.filter(productPackage.getItems(), Predicates.and(categoryCode("ram"), capacity(2.0f))); Iterable<ProductItem> cpuItems = Iterables.filter(productPackage.getItems(), Predicates.and( units("PRIVATE_CORE"), capacity(2.0f))); Map<Float, ProductItem> coresToProductItem = Maps.uniqueIndex(cpuItems, ProductItems.capacity()); Iterable<ProductItem> operatingSystems = Iterables.filter(productPackage.getItems(), categoryCode("os")); Map<String, ProductItem> osToProductItem = Maps.uniqueIndex(operatingSystems, ProductItems.description()); ProductItemPrice osPrice = ProductItems.price().apply(