使用 Java 订购 Vyatta 和 Netscaler VPX

Order Vyatta and Netscaler VPX with Java

我试图在 java 中实现 Netscaler 和 Vyatta Order。 当我在 java 中调用 Verify API 时,返回了以下错误。 下面还附上了经过测试的代码。有什么配置不全请推荐我

Netscaler:"error":“订单缺少以下类别:NetScaler VPX。 Vyatta:网关设备必须作为子容器提交

public void orderNetscalerTest() {

        // Netscaler VPX 10.5
        Price net_price = new Price();
        net_price.setId(17238l);

        // Public Secondary StaticIP Address
        Price static_price = new Price();
        static_price.setId(44964l);

        ArrayList<Price> prices = new ArrayList<Price>();
        prices.add(net_price);
//      prices.add(static_price);

        Long packageID = 192l; // Netscaler package
        Long quantity = 1l;

        // Create Order to verify
        Order packageOrder = new Order();

        packageOrder.setQuantity(quantity);
        packageOrder.setPackageId(packageID);
        packageOrder.getPrices().addAll(prices);

        try {
            Order orderResult = com.softlayer.api.service.product.Order.service(client).verifyOrder(packageOrder);
            System.out.println("order: netscaler successfully verified: " + orderResult);

        } catch (Exception e) {
            System.out.println(e);
        }
    }


public void orderVyattaTest() {

    ArrayList<Price> prices = new ArrayList<Price>();

    Price pr1 = new Price();
    pr1.setId(13739l);prices.add(pr1);
    Price pr2 = new Price();
    pr2.setId(21010l);prices.add(pr2);
    Price pr3 = new Price();
    pr3.setId(36044l);prices.add(pr3);
    Price pr4 = new Price();
    pr4.setId(876l);prices.add(pr4);
    Price pr5 = new Price();
    pr5.setId(1267l);prices.add(pr5);
    Price pr6 = new Price();
    pr6.setId(342l);prices.add(pr6);

    Price pr7 = new Price();
    pr7.setId(273l);prices.add(pr7);
    Price pr8 = new Price();
    pr8.setId(17129l);prices.add(pr8);
    Price pr9 = new Price();
    pr9.setId(55l);prices.add(pr9);
    Price pr10 = new Price();
    pr10.setId(58l);prices.add(pr10);
    Price pr11 = new Price();
    pr11.setId(420l);prices.add(pr11);
    Price pr12 = new Price();
    pr12.setId(418l);prices.add(pr12);
    Price pr13 = new Price();
    pr13.setId(21l);prices.add(pr13);
    Price pr14 = new Price();
    pr14.setId(57l);prices.add(pr14);
    Price pr15 = new Price();
    pr15.setId(906l);prices.add(pr15);

    Long packageID = 174l; // Vyatta pkgId
    Long quantity = 1l;

    Hardware newBareMetal = new Hardware();
    newBareMetal.setHostname("myhost");
    newBareMetal.setDomain("mydomain.com");

    // Create Order to verify
    Order packageOrder = new Order();
    packageOrder.getHardware().add(newBareMetal);
    packageOrder.getPrices().addAll(prices);
    packageOrder.setQuantity(quantity);
    packageOrder.setPackageId(packageID);
    packageOrder.setLocation("3");

    try {
        Order orderResult = com.softlayer.api.service.product.Order.service(client).verifyOrder(packageOrder);
        System.out.println("order: vyatta successfully verified: " + orderResult);

    } catch (Exception e) {
        System.out.println(e);
    }

}

您必须创建一个 orderContainer 对象并在其中添加您的 packageOrder,然后将 orderContainer 对象添加到 Order 对象中。请参阅下面的示例:

import java.util.ArrayList;

import com.softlayer.api.ApiClient;
import com.softlayer.api.RestApiClient;
import com.softlayer.api.service.Hardware;
import com.softlayer.api.service.container.product.Order;
import com.softlayer.api.service.product.item.Price;

public class OrderVyatta {

    public static void main(String[] args) {

        String user = "set me";
        String apikey = "set me";

        ApiClient client = new RestApiClient().withCredentials(user, apikey);

        ArrayList<Price> prices = new ArrayList<Price>();

        Price pr1 = new Price();
        pr1.setId(13739l);prices.add(pr1);
        Price pr2 = new Price();
        pr2.setId(21010l);prices.add(pr2);
        Price pr3 = new Price();
        pr3.setId(36044l);prices.add(pr3);
        Price pr4 = new Price();
        pr4.setId(876l);prices.add(pr4);
        Price pr5 = new Price();
        pr5.setId(1267l);prices.add(pr5);
        Price pr6 = new Price();
        pr6.setId(342l);prices.add(pr6);

        Price pr7 = new Price();
        pr7.setId(273l);prices.add(pr7);
        Price pr8 = new Price();
        pr8.setId(17129l);prices.add(pr8);
        Price pr9 = new Price();
        pr9.setId(55l);prices.add(pr9);
        Price pr10 = new Price();
        pr10.setId(58l);prices.add(pr10);
        Price pr11 = new Price();
        pr11.setId(420l);prices.add(pr11);
        Price pr12 = new Price();
        pr12.setId(418l);prices.add(pr12);
        Price pr13 = new Price();
        pr13.setId(21l);prices.add(pr13);
        Price pr14 = new Price();
        pr14.setId(57l);prices.add(pr14);
        Price pr15 = new Price();
        pr15.setId(906l);prices.add(pr15);

        Long packageID = 174l; // Vyatta pkgId
        Long quantity = 1l;

        Hardware newBareMetal = new Hardware();
        newBareMetal.setHostname("myhost");
        newBareMetal.setDomain("mydomain.com");

        // Create Order to verify
        Order packageOrder = new Order();
        packageOrder.getHardware().add(newBareMetal);
        packageOrder.getPrices().addAll(prices);
        packageOrder.setQuantity(quantity);
        packageOrder.setPackageId(packageID);
        packageOrder.setLocation("3");


        ArrayList<Order> orderContainners = new ArrayList<Order>();
        orderContainners.add(packageOrder);
        Order order = new Order();
        order.getOrderContainers().addAll(orderContainners);



        try {
            Order orderResult = com.softlayer.api.service.product.Order.service(client).verifyOrder(order);
            System.out.println("order: vyatta successfully verified: " + orderResult);

        } catch (Exception e) {
            System.out.println(e);
        }

    }

}

对于 Netscaler,问题在于订单中使用的对象。

import java.util.ArrayList;

import com.softlayer.api.ApiClient;
import com.softlayer.api.RestApiClient;
import com.softlayer.api.service.container.product.Order;
import com.softlayer.api.service.container.product.order.network.application.delivery.Controller;
import com.softlayer.api.service.product.item.Price;

public class OrderNetxcaler {

    public static void main(String[] args) {
        // 44964 : netscaler price id
        // 17238 : static IP price id

        String user = "set me";
        String apikey = "set me";

        ApiClient client = new RestApiClient().withCredentials(user, apikey);

        // Netscaler VPX 10.5 standard
        Price net_price = new Price();
        net_price.setId(44964l);
        // static_price
        Price static_price = new Price();
        static_price.setId(17238l);

        ArrayList<Price> prices = new ArrayList<Price>();
        prices.add(net_price);
        prices.add(static_price);

        Long packageID = 192l; // Netscaler package
        Long quantity = 1l;

        // Create Order to verify
        Controller packageOrder = new Controller();
        packageOrder.setQuantity(quantity);
        packageOrder.setPackageId(packageID);
        packageOrder.getPrices().addAll(prices);

        try {
            Order orderResult = com.softlayer.api.service.product.Order.service(client).verifyOrder(packageOrder);
            System.out.println("order: netscaler successfully verified: " + orderResult);

        } catch (Exception e) {
            System.out.println(e);
        }

    }

}

此致