Ordering

The Order Command-line Interface commands can be used to build an order for any product in the SoftLayer catalog.

The basic flow for ordering goes something like this…

  1. package-list

  2. category-list <package key name>

  3. item-list <package key name>

  4. place <package key name> <item key names> <location>

order package-list

List packages that can be ordered via the placeOrder API.

# List out all packages for ordering
slcli order package-list

# List out all packages with "server" in the name
slcli order package-list --keyword server

# Select only specifict package types
slcli order package-list --package_type BARE_METAL_CPU
order package-list [OPTIONS]

Options

--keyword <keyword>

A word (or string) used to filter package names.

--package_type <package_type>

The keyname for the type of package. BARE_METAL_CPU for example

Note

  • CLOUD_SERVER: These are Virtual Servers

  • BARE_METAL_INSTANCE: Hourly Bare Metal

  • BARE_METAL_SERVER: Other monthly server types

  • #_PROC_#_DRIVES: Packages in this format will contain only this CPU model and Drive bays

  • ADDITIONAL_PRODUCTS: Additional IPs, Vlans, SSL certs and other things are in here

  • NETWORK_GATEWAY_APPLIANCE: Vyattas

Bluemix services listed here may still need to be ordered through the Bluemix CLI/Portal

order package-locations

List Datacenters a package can be ordered in.

Use the location Key Name to place orders

order package-locations [OPTIONS] PACKAGE_KEYNAME

Arguments

PACKAGE_KEYNAME

Required argument

order category-list

List the categories of a package.

# List the categories of Bare Metal servers
slcli order category-list BARE_METAL_SERVER

# List the required categories for Bare Metal servers
slcli order category-list BARE_METAL_SERVER --required
order category-list [OPTIONS] PACKAGE_KEYNAME

Options

--required

List only the required categories for the package

Arguments

PACKAGE_KEYNAME

Required argument

Shows all the available categories for a certain package, useful in finding the required categories. Categories that are required will need to have a corresponding item included with any orders

These are all the required categories for BARE_METAL_SERVER

$ slcli order category-list BARE_METAL_SERVER
:........................................:.......................:............:
:                  name                  :      categoryCode     : isRequired :
:........................................:.......................:............:
:                 Server                 :         server        :     Y      :
:            Operating System            :           os          :     Y      :
:                  RAM                   :          ram          :     Y      :
:            Disk Controller             :    disk_controller    :     Y      :
:            First Hard Drive            :         disk0         :     Y      :
:            Public Bandwidth            :       bandwidth       :     Y      :
:           Uplink Port Speeds           :       port_speed      :     Y      :
:           Remote Management            :   remote_management   :     Y      :
:          Primary IP Addresses          :    pri_ip_addresses   :     Y      :
:    VPN Management - Private Network    :     vpn_management    :     Y      :
:........................................:.......................:............:

order item-list

List package items used for ordering.

The item keyNames listed can be used with slcli order place to specify the items that are being ordered in the package.

Note

Items with a numbered category, like disk0 or gpu0, can be included multiple times in an order to match how many of the item you want to order.

# List all items in the VSI package
slcli order item-list CLOUD_SERVER

# List Ubuntu OSes from the os category of the Bare Metal package
slcli order item-list BARE_METAL_SERVER --category os --keyword ubuntu
order item-list [OPTIONS] PACKAGE_KEYNAME [LOCATION]

Options

-k, --keyword <keyword>

A word (or string) used to filter item names.

-c, --category <category>

Category code to filter items by

-p, --prices

Use –prices to list the server item prices, and to list the Item Prices by location, add it to the –prices option using location KeyName, e.g. –prices AMSTERDAM02

Arguments

PACKAGE_KEYNAME

Required argument

LOCATION

Optional argument

Shows all the prices for a given package. Collect all the items you want included on your server. Don’t forget to include the required category items. If forgotten, order place will tell you about it.

order preset-list

List package presets.

Note

Presets are set CPU / RAM / Disk allotments. You still need to specify required items. Some packages do not have presets. Cost includes all items in a preset, and may include optional items.

# List the presets for Bare Metal servers
slcli order preset-list BARE_METAL_SERVER

# List the Bare Metal server presets that include a GPU
slcli order preset-list BARE_METAL_SERVER --keyword gpu

# Get a specific flavor for Virtual Server
slcli order preset-list PUBLIC_CLOUD_SERVER --prices --keyword BL2.56x242x

# All packages with active presets
slcli call-api SoftLayer_Product_Package getAllObjects --mask="mask[id,keyName,activePresetCount]" --json-filter='{"activePresets":{"operation":"not null"}}'
┌───────────────────┬──────┬──────────────────────────────────────────────────────────────────┐
│ activePresetCount │  id  │                             keyName                              │
├───────────────────┼──────┼──────────────────────────────────────────────────────────────────┤
│         1         │ 144  │                              3U_GPU                              │
│         6         │ 200  │                        BARE_METAL_SERVER                         │
│         1         │ 571  │                           NETWORK_VLAN                           │
│        100        │ 835  │                       PUBLIC_CLOUD_SERVER                        │
│         6         │ 865  │                     NETWORK_VLAN_FOR_SERVICE                     │
│         5         │ 885  │                           8U_BI_S2_H4                            │
│        56         │ 991  │                      TRANSIENT_CLOUD_SERVER                      │
│        56         │ 1035 │                       SUSPEND_CLOUD_SERVER                       │
│         9         │ 1045 │                          2U_BI_S3_H2000                          │
│         7         │ 1075 │                   2U_IC4V_FIXED_CONFIGURATIONS                   │
│        32         │ 1109 │                           BI_S4_H2000                            │
│         8         │ 1117 │                           BI_S4_H4000                            │
│         7         │ 1119 │                           BI_S4_H8000                            │
│         5         │ 2636 │                    2U_BI_S4_H2000_AEP_ENABLED                    │
│         5         │ 2676 │                    4U_BI_S4_H4000_AEP_ENABLED                    │
│         5         │ 2700 │                    4U_BI_S4_H8000_AEP_ENABLED                    │
│         6         │ 2866 │ ORACLE_APPLICATION_CLUSTER_CASCADE_LAKE_SCALABLE_FAMILY_4_DRIVES │
│         1         │ 2874 │          ORACLE_APPLICATION_CLUSTER_COFFEE_LAKE_E2174G           │
└───────────────────┴──────┴──────────────────────────────────────────────────────────────────┘
order preset-list [OPTIONS] PACKAGE_KEYNAME

Options

--keyword <keyword>

A word (or string) used to filter preset names.

-p, --prices

Use –prices to list the server item prices.

Arguments

PACKAGE_KEYNAME

Required argument

order place

Place or verify an order.

1. Find the package keyName from slcli order package-list
2. Find the location from slcli order package-locations PUBLIC_CLOUD_SERVER
If the package does not require a location, use ‘NONE’ instead.
3. Find the needed items slcli order item-list PUBLIC_CLOUD_SERVER
Some packages, like PUBLIC_CLOUD_SERVER need presets, slcli order preset-list PUBLIC_CLOUD_SERVER
4. Find the complex type from https://sldn.softlayer.com/reference
5. Use that complex type to fill out any –extras

Example:

slcli order place --verify --preset B1_2X8X100 --billing hourly
--complex-type SoftLayer_Container_Product_Order_Virtual_Guest
--extras '{"virtualGuests": [{"hostname": "test", "domain": "ibm.com"}]}'
PUBLIC_CLOUD_SERVER DALLAS13
BANDWIDTH_0_GB_2 MONITORING_HOST_PING NOTIFICATION_EMAIL_AND_TICKET
OS_DEBIAN_9_X_STRETCH_LAMP_64_BIT 1_IP_ADDRESS 1_IPV6_ADDRESS
1_GBPS_PUBLIC_PRIVATE_NETWORK_UPLINKS REBOOT_REMOTE_CONSOLE
AUTOMATED_NOTIFICATION UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT
order place [OPTIONS] PACKAGE_KEYNAME LOCATION [ORDER_ITEMS]...

Options

--preset <preset>

The order preset (if required by the package)

--verify

Flag denoting whether or not to only verify the order, not place it

--quantity <quantity>

The quantity of the item being ordered

--billing <billing>

Billing rate

Default:

'hourly'

Options:

hourly | monthly

--complex-type <complex_type>

The complex type of the order. Starts with ‘SoftLayer_Container_Product_Order’.

--extras <extras>

JSON string denoting extra data that needs to be sent with the order

Arguments

PACKAGE_KEYNAME

Required argument

LOCATION

Required argument

ORDER_ITEMS

Optional argument(s)

Now that you have the package you want, the prices needed, and found a location, it is time to place an order.

order place <preset>

$ slcli --really order place --preset D2620V4_64GB_2X1TB_SATA_RAID_1 BARE_METAL_SERVER  TORONTO  \
    OS_UBUNTU_16_04_LTS_XENIAL_XERUS_64_BIT \
    BANDWIDTH_0_GB_2  \
    1_GBPS_PRIVATE_NETWORK_UPLINK  \
    REBOOT_KVM_OVER_IP 1_IP_ADDRESS  \
    UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT \
    --extras '{"hardware": [{"hostname" : "testOrder", "domain": "cgallo.com"}]}' \
    --complex-type SoftLayer_Container_Product_Order_Hardware_Server

order place <Virtual Server>

$ slcli order place --billing hourly CLOUD_SERVER DALLAS13 \
    GUEST_CORES_4 \
    RAM_16_GB \
    REBOOT_REMOTE_CONSOLE \
    1_GBPS_PUBLIC_PRIVATE_NETWORK_UPLINKS \
    BANDWIDTH_0_GB_2 \
    1_IP_ADDRESS \
    GUEST_DISK_100_GB_SAN \
    OS_UBUNTU_16_04_LTS_XENIAL_XERUS_MINIMAL_64_BIT_FOR_VSI \
    MONITORING_HOST_PING \
    NOTIFICATION_EMAIL_AND_TICKET \
    AUTOMATED_NOTIFICATION \
    UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT \
    --extras '{"virtualGuests": [{"hostname": "test", "domain": "softlayer.com"}]}' \
    --complex-type SoftLayer_Container_Product_Order_Virtual_Guest

Quotes

order quote

View and Order a quote

note:

The hostname and domain are split out from the fully qualified domain name.

If you want to order multiple servers, you need to specify each FQDN. Postinstall, userdata, and sshkeys are applied to all servers in an order.

slcli order quote 12345 --fqdn testing.tester.com \
    --complex-type SoftLayer_Container_Product_Order_Virtual_Guest -k sshKeyNameLabel\
    -i https://domain.com/runthis.sh --userdata DataGoesHere
order quote [OPTIONS] QUOTE

Options

--verify

If specified, will only show what the quote will order, will NOT place an order

Default:

False

--quantity <quantity>

The quantity of the item being ordered if different from quoted value

--complex-type <complex_type>

The complex type of the order. Starts with ‘SoftLayer_Container_Product_Order’.

Default:

'SoftLayer_Container_Product_Order_Hardware_Server'

-u, --userdata <userdata>

User defined metadata string

-F, --userfile <userfile>

Read userdata from file

-i, --postinstall <postinstall>

Post-install script to download

-k, --key <key>

SSH keys to add to the root user (multiple occurrence permitted)

--fqdn <fqdn>

Required <hostname>.<domain.name.tld> formatted name to use. Specify one fqdn per server (multiple occurrence permitted)

--image <image>

Image ID. See: ‘slcli image list’ for reference

--extras <extras>

JSON string denoting extra data that needs to be sent with the order

Arguments

QUOTE

Required argument

order quote-list

List all active quotes on an account

order quote-list [OPTIONS]

order quote-detail

View a quote

order quote-detail [OPTIONS] QUOTE

Arguments

QUOTE

Required argument

order quote-save

Save a quote

order quote-save [OPTIONS] QUOTE

Arguments

QUOTE

Required argument

order place-quote

Place a quote.

This CLI command is used for creating a quote of the specified package in the given location (denoted by a datacenter’s long name). Orders made via the CLI can then be converted to be made programmatically by calling SoftLayer.OrderingManager.place_quote() with the same keynames.

Packages for ordering can be retrieved from slcli order package-list Presets for ordering can be retrieved from slcli order preset-list (not all packages have presets)

Items can be retrieved from slcli order item-list. In order to find required items for the order, use slcli order category-list, and then provide the –category option for each category code in slcli order item-list.

Example:

# Place quote a VSI with 4 CPU, 16 GB RAM, 100 GB SAN disk,
# Ubuntu 16.04, and 1 Gbps public & private uplink in dal13
slcli order place-quote --name "foobar" --send-email CLOUD_SERVER DALLAS13 \
    GUEST_CORES_4 \
    RAM_16_GB \
    REBOOT_REMOTE_CONSOLE \
    1_GBPS_PUBLIC_PRIVATE_NETWORK_UPLINKS \
    BANDWIDTH_0_GB_2 \
    1_IP_ADDRESS \
    GUEST_DISK_100_GB_SAN \
    OS_UBUNTU_16_04_LTS_XENIAL_XERUS_MINIMAL_64_BIT_FOR_VSI \
    MONITORING_HOST_PING \
    NOTIFICATION_EMAIL_AND_TICKET \
    AUTOMATED_NOTIFICATION \
    UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT \
    --extras '{"virtualGuests": [{"hostname": "test", "domain": "softlayer.com"}]}' \
    --complex-type SoftLayer_Container_Product_Order_Virtual_Guest
order place-quote [OPTIONS] PACKAGE_KEYNAME LOCATION [ORDER_ITEMS]...

Options

--preset <preset>

The order preset (if required by the package)

--name <name>

A custom name to be assigned to the quote (optional)

--send-email

The quote will be sent to the email address associated with your user.

--complex-type <complex_type>

The complex type of the order. Starts with ‘SoftLayer_Container_Product_Order’.

--extras <extras>

JSON string denoting extra data that needs to be sent with the order

Arguments

PACKAGE_KEYNAME

Required argument

LOCATION

Required argument

ORDER_ITEMS

Optional argument(s)

order quote-delete

Delete the quote of an order

order quote-delete [OPTIONS] IDENTIFIER

Arguments

IDENTIFIER

Required argument

order cancelation

List all account cancelations

order cancelation [OPTIONS]

Lookup

order lookup

Provides some details related to order owner, date order, cost information, initial invoice.

order lookup [OPTIONS] IDENTIFIER

Options

--details

Shows a very detailed list of charges

Default:

False

Arguments

IDENTIFIER

Required argument