/** * Builds a Json string suitable for sending to the softlayer api * * @param order * @return */ String buildJson(ProductOrder order) { Iterable<Price> prices = Iterables.transform(order.getPrices(), new Function<ProductItemPrice, Price>() { @Override public Price apply(ProductItemPrice productItemPrice) { return new Price(productItemPrice.getId()); } }); Iterable<HostnameAndDomain> hosts = Iterables.transform(order.getVirtualGuests(), new Function<VirtualGuest, HostnameAndDomain>() { @Override public HostnameAndDomain apply(VirtualGuest virtualGuest) { return new HostnameAndDomain(virtualGuest.getHostname(), virtualGuest.getDomain()); } }); OrderData data = new OrderData(order.getPackageId(), order.getLocation(), Sets.newLinkedHashSet(prices), Sets .newLinkedHashSet(hosts), order.getQuantity(), order.getUseHourlyPricing()); return json.toJson(ImmutableMap.of("parameters", ImmutableList.<OrderData> of(data))); }
/** * Builds a Json string suitable for sending to the softlayer api * * @param order * @return */ String buildJson(ProductOrder order) { Iterable<Price> prices = Iterables.transform(order.getPrices(), new Function<ProductItemPrice, Price>() { @Override public Price apply(ProductItemPrice productItemPrice) { return new Price(productItemPrice.getId()); } }); Iterable<HostnameAndDomain> hosts = Iterables.transform(order.getVirtualGuests(), new Function<VirtualGuest, HostnameAndDomain>() { @Override public HostnameAndDomain apply(VirtualGuest virtualGuest) { return new HostnameAndDomain(virtualGuest.getHostname(), virtualGuest.getDomain()); } }); OrderData data = new OrderData(order.getPackageId(), order.getLocation(), Sets.newLinkedHashSet(prices), Sets .newLinkedHashSet(hosts), order.getQuantity(), order.getUseHourlyPricing()); return json.toJson(ImmutableMap.of("parameters", ImmutableList.<OrderData> of(data))); }
@Override public NodeAndInitialCredentials<VirtualGuest> createNodeWithGroupEncodedIntoName(String group, String name, Template template) { checkNotNull(template, "template was null"); checkNotNull(template.getOptions(), "template options was null"); checkArgument(template.getOptions().getClass().isAssignableFrom(SoftLayerTemplateOptions.class), "options class %s should have been assignable from SoftLayerTemplateOptions", template.getOptions() .getClass()); String domainName = template.getOptions().as(SoftLayerTemplateOptions.class).getDomainName(); VirtualGuest newGuest = VirtualGuest.builder().domain(domainName).hostname(name).build(); ProductOrder order = ProductOrder.builder().packageId(productPackageSupplier.get().getId()) .location(template.getLocation().getId()).quantity(1).useHourlyPricing(true).prices(getPrices(template)) .virtualGuests(newGuest).build(); logger.debug(">> ordering new virtualGuest domain(%s) hostname(%s)", domainName, name); ProductOrderReceipt productOrderReceipt = client.getVirtualGuestClient().orderVirtualGuest(order); VirtualGuest result = get(productOrderReceipt.getOrderDetails().getVirtualGuests(), 0); logger.trace("<< virtualGuest(%s)", result.getId()); logger.debug(">> awaiting login details for virtualGuest(%s)", result.getId()); boolean orderInSystem = loginDetailsTester.apply(result); logger.trace("<< virtualGuest(%s) complete(%s)", result.getId(), orderInSystem); checkState(orderInSystem, "order for guest %s doesn't have login details within %sms", result, Long.toString(guestLoginDelay)); result = client.getVirtualGuestClient().getVirtualGuest(result.getId()); Password pw = get(result.getOperatingSystem().getPasswords(), 0); return new NodeAndInitialCredentials<VirtualGuest>(result, result.getId() + "", LoginCredentials.builder().user(pw.getUsername()).password( pw.getPassword()).build()); }
public T fromProductOrder(ProductOrder in) { return this .packageId(in.getPackageId()) .location(in.getLocation()) .prices(in.getPrices()) .virtualGuests(in.getVirtualGuests()) .quantity(in.getQuantity()) .useHourlyPricing(in.getUseHourlyPricing()); } }
@Override public NodeAndInitialCredentials<VirtualGuest> createNodeWithGroupEncodedIntoName(String group, String name, Template template) { checkNotNull(template, "template was null"); checkNotNull(template.getOptions(), "template options was null"); checkArgument(template.getOptions().getClass().isAssignableFrom(SoftLayerTemplateOptions.class), "options class %s should have been assignable from SoftLayerTemplateOptions", template.getOptions() .getClass()); String domainName = template.getOptions().as(SoftLayerTemplateOptions.class).getDomainName(); VirtualGuest newGuest = VirtualGuest.builder().domain(domainName).hostname(name).build(); ProductOrder order = ProductOrder.builder().packageId(productPackageSupplier.get().getId()) .location(template.getLocation().getId()).quantity(1).useHourlyPricing(true).prices(getPrices(template)) .virtualGuests(newGuest).build(); logger.debug(">> ordering new virtualGuest domain(%s) hostname(%s)", domainName, name); ProductOrderReceipt productOrderReceipt = client.getVirtualGuestClient().orderVirtualGuest(order); VirtualGuest result = get(productOrderReceipt.getOrderDetails().getVirtualGuests(), 0); logger.trace("<< virtualGuest(%s)", result.getId()); logger.debug(">> awaiting login details for virtualGuest(%s)", result.getId()); boolean orderInSystem = loginDetailsTester.apply(result); logger.trace("<< virtualGuest(%s) complete(%s)", result.getId(), orderInSystem); checkState(orderInSystem, "order for guest %s doesn't have login details within %sms", result, Long.toString(guestLoginDelay)); result = client.getVirtualGuestClient().getVirtualGuest(result.getId()); Password pw = get(result.getOperatingSystem().getPasswords(), 0); return new NodeAndInitialCredentials<VirtualGuest>(result, result.getId() + "", LoginCredentials.builder().user(pw.getUsername()).password( pw.getPassword()).build()); }
public T fromProductOrder(ProductOrder in) { return this .packageId(in.getPackageId()) .location(in.getLocation()) .prices(in.getPrices()) .virtualGuests(in.getVirtualGuests()) .quantity(in.getQuantity()) .useHourlyPricing(in.getUseHourlyPricing()); } }
VirtualGuest result = Iterables.get(order2.getVirtualGuests(), 0);