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…
package-list
category-list <package key name>
item-list <package key name>
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.
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