Search code examples
ibm-cloud-infrastructure

Select Available Vlans in purchasing on Softlayer


I am implementing Vlan Selection on purchasing a virtual machine using Softlayer java API. The code below is what I have tested to list available vlans in a specific data center. It returns more available vlan list than "control.softlayer.com" does. Please find my test code below and let me know if you find any doubt.

Thanks

com.softlayer.api.service.Account.Service svc =
        com.softlayer.api.service.Account.service(client);


com.softlayer.api.service.network.Vlan.Mask networkVlansMask = new com.softlayer.api.service.network.Vlan.Mask();

// Router

networkVlansMask.attachedNetworkGatewayVlan().bypassFlag();
networkVlansMask.attachedNetworkGatewayFlag();

networkVlansMask.networkSpace();
networkVlansMask.primaryRouter().datacenter().id();
networkVlansMask.primaryRouter().datacenter().name();
networkVlansMask.subnets().id();
networkVlansMask.subnets().subnetType();
networkVlansMask.subnets().networkIdentifier();
networkVlansMask.subnets().cidr();
networkVlansMask.subnets().totalIpAddresses();
networkVlansMask.subnets().usableIpAddressCount();
networkVlansMask.subnets().ipAddresses().ipAddress();
networkVlansMask.subnets().ipAddresses().isReserved();
networkVlansMask.subnets().ipAddresses().virtualGuest();
networkVlansMask.subnets().ipAddresses().hardware();
svc.setMask(networkVlansMask);


Filter filter = new Filter();
filter.addFilter("networkVlans").
    addFilter("primaryRouter").
    addFilter("datacenter").
    addProperty("id", Long.toString(3l)); 

svc.addFilter(filter);

List<Vlan> vlans = svc.getNetworkVlans(); // All

Solution

  • The following example can help you to get available VLANS during ordering: SoftLayer_Product_Order::getVlans

    This is a Rest example:

    https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Product_Order/getVlans
    
    Method: POST
    
    Json Payload:
    
    {
      "parameters": [
        265592,
        46,
        "port_speed=100"
      ]
    }
    
    Where: 
    “265592” is the” loactionId”
    “46” is the“PackageId”