当前位置: 动力学知识库 > 问答 > 编程问答 >

softlayer - Order Vyatta and Netscaler VPX with Java

问题描述:

I trying to implement Netscaler and Vyatta Order in java.

When I call Verify API in java, the following errors have been returned.

The tested code also attached below. please recommend me if there is any missing configuration.

Netscaler : "error":"Order is missing the following category: NetScaler VPX.

Vyatta : Gateway Appliances must be submitted as child containers

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);

}

}

网友答案:

you have to create an orderContainer object and add there your packageOrder, then add the orderContainer object in a Order object. see the example bellow:

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);
        }

    }

}

For Netscaler the issue is the object used in the order.

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);
        }

    }

}

Regards

分享给朋友:
您可能感兴趣的文章:
随机阅读: