diff --git a/article/understanding-ordering/index.html b/article/understanding-ordering/index.html
index fe4b5400296..aa61f9ba9dc 100644
--- a/article/understanding-ordering/index.html
+++ b/article/understanding-ordering/index.html
@@ -205,7 +205,7 @@
Understanding and building an order using the Softlayer order CLI
Place an order programmatically using Python.
-Build an order
+
Step 1: Understand the order structure
In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.
A package is the first component to look for when placing an order. Packages are divided among the different top-level products available for ordering in SoftLayer. Some example packages are CLOUD_SERVER for VSIs, BARE_METAL_SERVER for bare metal servers, and STORAGE_AS_A_SERVICE_STAAS for Storage-as-a-Service. Within a package, there are items that are subdivided into categories. Some packages have presets for your convenience and others require that you specify items individually. If a package’s category is required, an item from that category must be chosen to order the package. Depending on the category, items within the category are mutually exclusive (for example, you can’t order both 8 GB and 16 GB of RAM for a VSI). Finally, each order must have an associated location (datacenter).
@@ -455,7 +455,7 @@ Step 5: Place the order
: status : PENDING_APPROVAL :
:.........:...........................:
We now have ordered a bare metal server!
-Place an order programmatically with Python
+
Now that we have used the CLI to build an order with the package and items that we want, we can convert this order to Python code and programmatically place the order.
Safety of item keynames
Using item keynames is a more hardened way of placing orders. Item IDs may change, and orders placed with hard-coded IDs may not continually work. Keynames will allow orders to consistently work, because price IDs for the order are dynamically retrieved for you.
@@ -657,7 +657,7 @@ Various Ordering Examples
--billing monthly --verify
Turns into:
curl -u $SL_USER:$SL_APIKEY -X POST -H "Accept: */*" -H "Accept-Encoding: gzip, deflate, compress" -d '{"parameters": [{"orderContainers": [{"hardware": [{"domain": "test-cgallo.com", "hostname": "testOrderCANCEL"}, {"primaryBackendNetworkComponent": {"networkVlan": {"id": 2257307}}}], "packageId": 257, "quantity": 1, "location": 1854895, "useHourlyPricing": false, "complexType": "SoftLayer_Container_Product_Order_Hardware_Server", "prices": [{"id": 49515}, {"id": 49415}, {"id": 48999}, {"id": 876}, {"id": 49759}, {"id": 50357}, {"id": 274}, {"id": 21}, {"id": 906}, {"id": 418}, {"id": 57}, {"id": 56}, {"id": 420}, {"id": 58}]}]}]}' 'https://api.softlayer.com/rest/v3.1/SoftLayer_Product_Order/verifyOrder.json'
-
Step by Step Example with ibmcloud CLI
+
These commands will use the ibmcloud sl
command, but it works the same way as slcli
. The only big difference is ibmcloud
requires Items be a comma seperated list, where slcli
requires them be space seperated.
Here we want to order a Cascade Lake Dual Xeon server.
Get the package.
@@ -704,6 +704,114 @@
Everything Together
ibmcloud sl order place DUAL_INTEL_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_FAMILY_4_DRIVES DALLAS13 INTEL_XEON_4210_2_20,RAM_32_GB_DDR4_2133_ECC_NON_REG,OS_DEBIAN_10_X_BUSTER_MINIMAL_64_BIT,1_GBPS_REDUNDANT_PUBLIC_PRIVATE_NETWORK_UPLINKS,DISK_CONTROLLER_RAID,HARD_DRIVE_2_00_TB_SATA_2,HARD_DRIVE_2_00_TB_SATA_2,BANDWIDTH_1000_GB,REBOOT_KVM_OVER_IP,1_IP_ADDRESS,UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT,NOTIFICATION_EMAIL_AND_TICKET,MONITORING_HOST_PING,AUTOMATED_NOTIFICATION --complex-type SoftLayer_Container_Product_Order_Hardware_Server --extras '{"hardware":[{"hostname":"cgallo-test","domain":"cgallo.com","primaryBackendNetworkComponent": {"networkVlan": {"primarySubnet":{"id": 1942931}}},"primaryNetworkComponent": {"networkVlan": {"id": 2848660}}}],"storageGroups":[{"arrayTypeId": 2,"arraySize": 2000,"hardDrives": [0,1],"partitionTemplateId": 1}],"sshKeys": [{"sshKeyIds":[87634,92868]}],"provisionScripts": ["https://pastebin.com/raw/SCp607Tm"]}' --billing monthly --verify
slcli order place DUAL_INTEL_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_FAMILY_4_DRIVES DALLAS13 INTEL_XEON_4210_2_20 RAM_32_GB_DDR4_2133_ECC_NON_REG OS_DEBIAN_10_X_BUSTER_MINIMAL_64_BIT 1_GBPS_REDUNDANT_PUBLIC_PRIVATE_NETWORK_UPLINKS DISK_CONTROLLER_RAID HARD_DRIVE_2_00_TB_SATA_2 HARD_DRIVE_2_00_TB_SATA_2 BANDWIDTH_1000_GB REBOOT_KVM_OVER_IP 1_IP_ADDRESS UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT NOTIFICATION_EMAIL_AND_TICKET MONITORING_HOST_PING AUTOMATED_NOTIFICATION --complex-type SoftLayer_Container_Product_Order_Hardware_Server --extras '{"hardware":[{"hostname":"cgallo-test","domain":"cgallo.com","primaryBackendNetworkComponent": {"networkVlan": {"primarySubnet":{"id": 1942931}}},"primaryNetworkComponent": {"networkVlan": {"id": 2848660}}}],"storageGroups":[{"arrayTypeId": 2,"arraySize": 2000,"hardDrives": [0,1],"partitionTemplateId": 1}],"sshKeys": [{"sshKeyIds":[87634,92868]}],"provisionScripts": ["https://pastebin.com/raw/SCp607Tm"]}' --billing monthly --verify
+
+Lets say you are ordering a server, and want to automate it. For this example, we will build a server that looks like this:
+
+Most of the information you need to build an API order is on the order form already. The only thing you need to know is that the Intel Xeon 8260 is a Cascade Lake class of processor, so when you look for packages, that is the keyword you will search for.
+
+Find the package:
+
+$> slcli order package-list | grep -i cascade
+ 1105 Dual Intel Xeon Processor Cascade Lake Scalable Family ( 4 Drives) DUAL_INTEL_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_FAMILY_4_DRIVES BARE_METAL_CPU
+ 1107 Dual Intel Xeon Processor Cascade Lake Scalable Family ( 12 Drives) DUAL_INTEL_XEON_PROC_CASCADE_LAKE_SCALABLE_FAMILY_12_DRIVES BARE_METAL_CPU
+ 1111 Cascade Lake for VMware vSAN QualifiedNode ( 12 Drives) 2U_CASCADE_LAKE_FOR_VMWARE_VSAN_QUALIFIEDNODE BARE_METAL_CPU
+ 1113 Quad Xeon Processor Cascade Lake Scalable Family ( 24 Drives) 2U_QUAD_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_FAMILY_24_DRIVES BARE_METAL_CPU
+ 2670 Cascade Lake for VMware vSAN QualifiedNode ( 24 Drives) 2U_VMWARE_VSAN_QUALIFIEDNODE BARE_METAL_CPU
+ 2692 Dual Xeon Proc Cascade Lake Multi-GPU Family ( 24 Drives) 4U_DUAL_XEON_PROC_CASCADE_LAKE_MULTIGPU_FAMILY_24_DRIVES BARE_METAL_CPU
+ 2708 CVAD Dual Intel Xeon Processor Cascade Lake Scalable Family ( 12 Drives) CVAD_DUAL_INTEL_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_12_DRIVES BARE_METAL_CPU
+ 2710 CVAD Dual Intel Xeon Processor Cascade Lake Scalable Family ( 4 Drives) CVAD_DUAL_INTEL_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_4_DRIVES BARE_METAL_CPU
+ 2796 Cascade Lake for VMware vSAN QualifiedNode ( 4 Drives) 1U_CASCADE_LAKE_FOR_VMWARE_VSAN_QUALIFIEDNODE BARE_METAL_CPU
+ 2866 Oracle Application Cluster Cascade Lake Scalable Family ( 4 Drives) ORACLE_APPLICATION_CLUSTER_CASCADE_LAKE_SCALABLE_FAMILY_4_DRIVES BARE_METAL_CPU
+ 3110 Cascade Lake VMW PMEM Enabled 1.5TB-3TB ( 12 Drives) 2U_CASCADE_LAKE_VMW_PMEM_ENABLED_1_5TB_3TB_12_DRIVES BARE_METAL_CPU
+ 3116 Cascade Lake VMW PMEM Enabled 3TB-6TB ( 24 Drives) CASCADE_LAKE_VMW_PMEM_ENABLED_3TB6TB_24_DRIVES BARE_METAL_CPU
+
We want the 2U_QUAD_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_FAMILY_24_DRIVES
package here since it has the Quad Processor
and Up to 24 Drives
mentioned on the order form.
+
+Find all the items you need.
+
+$> slcli order item-list 2U_QUAD_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_FAMILY_24_DRIVES
+
We will need the following to match the order:
+
+
+
+ Category
+ KeyName
+
+
+
+
+ bandwidth
+ BANDWIDTH_20000_GB
+
+
+ disk0
+ HARD_DRIVE_960GB_SSD_SED_5DWPD
+
+
+ disk_controller
+ DISK_CONTROLLER_NONRAID
+
+
+ monitoring
+ MONITORING_HOST_PING
+
+
+ notification
+ NOTIFICATION_EMAIL_AND_TICKET
+
+
+ os
+ OS_CENTOS_STREAM_9_X_64_BIT
+
+
+ port_speed
+ 100_MBPS_REDUNDANT_PUBLIC_PRIVATE_NETWORK_UPLINKS
+
+
+ power_supply
+ REDUNDANT_POWER_SUPPLY
+
+
+ pri_ip_addresses
+ 1_IP_ADDRESS
+
+
+ ram
+ RAM_384_GB_DDR4_2133_ECC_REG
+
+
+ remote_management
+ REBOOT_KVM_OVER_IP
+
+
+ response
+ AUTOMATED_NOTIFICATION
+
+
+ server
+ INTEL_XEON_8260_2_4_96
+
+
+ vpn_management
+ UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT
+
+
+
+
+Add it all and verify the order
+
+(use slcli -vvv order place
to see actual API calls this makes)
+$> slcli order place 2U_QUAD_XEON_PROCESSOR_CASCADE_LAKE_SCALABLE_FAMILY_24_DRIVES DALLAS10 BANDWIDTH_20000_GB \
+ HARD_DRIVE_960GB_SSD_SED_5DWPD DISK_CONTROLLER_NONRAID MONITORING_HOST_PING NOTIFICATION_EMAIL_AND_TICKET \
+ OS_CENTOS_STREAM_9_X_64_BIT 100_MBPS_REDUNDANT_PUBLIC_PRIVATE_NETWORK_UPLINKS REDUNDANT_POWER_SUPPLY 1_IP_ADDRESS \
+ RAM_384_GB_DDR4_2133_ECC_REG REBOOT_KVM_OVER_IP AUTOMATED_NOTIFICATION INTEL_XEON_8260_2_4_96 \
+ UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT \
+ --verify --quantity 1 --billing monthly --complex-type SoftLayer_Container_Product_Order_Hardware_Server \
+ --extras '{"hardware": [{"hostname": "baremetal01", "domain": "ibmcloud.private"}]}'
+
To make this into a pure API call, use the output of slcli -vvv order place
and the slcli will convert the item keynames into the required priceIds needed for SoftLayer_Product_Order::placeOrder()
+$> curl -u $SL_USER :$SL_APIKEY -X POST -H "Accept: */*" -H "Accept-Encoding: gzip, deflate, compress" -d '{"parameters": [{"orderContainers": [{"hardware": [{"hostname": "baremetal01", "domain":
+ "ibmcloud.private"}], "packageId": 1113, "quantity": 1, "location": 1441195, "useHourlyPricing": false, "complexType": "SoftLayer_Container_Product_Order_Hardware_Server", "prices": [{"id": 342}, {"id":
+ 230475}, {"id": 876}, {"id": 55}, {"id": 57}, {"id": 307539}, {"id": 21513}, {"id": 50221}, {"id": 21}, {"id": 165785}, {"id": 906}, {"id": 58}, {"id": 254988}, {"id": 420}]}]}]}'
+'https://api.softlayer.com/rest/v3.1/SoftLayer_Product_Order/placeOrder.json'
diff --git a/go/goroutines/index.html b/go/goroutines/index.html
index ed9c40f91f4..a2706a3cabd 100644
--- a/go/goroutines/index.html
+++ b/go/goroutines/index.html
@@ -165,7 +165,7 @@
-
January 1, 0001
+ February 16, 2024
diff --git a/go/index.html b/go/index.html
index e6848ba961b..b52849e4ea6 100644
--- a/go/index.html
+++ b/go/index.html
@@ -168,6 +168,16 @@
+
+
-
-
diff --git a/img/articles/orderExampleCascadeLake.png b/img/articles/orderExampleCascadeLake.png
new file mode 100644
index 00000000000..8665948a698
Binary files /dev/null and b/img/articles/orderExampleCascadeLake.png differ
diff --git a/index.xml b/index.xml
index 77941e50815..d282d334a13 100644
--- a/index.xml
+++ b/index.xml
@@ -17,20 +17,20 @@
-
-
Python
- https://sldn.softlayer.com/python/
- Mon, 16 Oct 2023 00:00:00 UTC
+ Go
+ https://sldn.softlayer.com/go/
+ Fri, 16 Feb 2024 00:00:00 UTC
Enthusiastic Hugo User
- https://sldn.softlayer.com/python/
+ https://sldn.softlayer.com/go/
-
-
Go
- https://sldn.softlayer.com/go/
- Fri, 10 Mar 2023 00:00:00 UTC
+ Python
+ https://sldn.softlayer.com/python/
+ Mon, 16 Oct 2023 00:00:00 UTC
Enthusiastic Hugo User
- https://sldn.softlayer.com/go/
+ https://sldn.softlayer.com/python/
diff --git a/sitemap.xml b/sitemap.xml
index 8caf8078d81..2c96d5be40a 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -105,11 +105,41 @@
2024-03-01T00:00:00+00:00
+
+ https://sldn.softlayer.com/tags/cli/
+ 2024-02-16T00:00:00+00:00
+
+
+
+ https://sldn.softlayer.com/go/
+ 2024-02-16T00:00:00+00:00
+
+
+
+ https://sldn.softlayer.com/go/goroutines/
+ 2024-02-16T00:00:00+00:00
+
+
+
+ https://sldn.softlayer.com/tags/pagination/
+ 2024-02-16T00:00:00+00:00
+
+
https://sldn.softlayer.com/release_notes/2024/20240216/
2024-02-16T00:00:00+00:00
+
+ https://sldn.softlayer.com/tags/resultlimit/
+ 2024-02-16T00:00:00+00:00
+
+
+
+ https://sldn.softlayer.com/tags/sdk/
+ 2024-02-16T00:00:00+00:00
+
+
https://sldn.softlayer.com/release_notes/2024/20240119/
2024-01-19T00:00:00+00:00
@@ -235,11 +265,6 @@
2023-03-10T00:00:00+00:00
-
- https://sldn.softlayer.com/go/
- 2023-03-10T00:00:00+00:00
-
-
https://sldn.softlayer.com/go/order_endurance_storage.go/
2023-03-10T00:00:00+00:00
@@ -390,11 +415,6 @@
2022-05-27T00:00:00+00:00
-
- https://sldn.softlayer.com/tags/cli/
- 2022-05-23T00:00:00+00:00
-
-
https://sldn.softlayer.com/tags/go/
2022-05-23T00:00:00+00:00
@@ -655,11 +675,6 @@
2021-12-01T00:00:00+00:00
-
- https://sldn.softlayer.com/tags/pagination/
- 2021-11-12T00:00:00+00:00
-
-
https://sldn.softlayer.com/python/pagination.py/
2021-11-12T00:00:00+00:00
@@ -845,11 +860,6 @@
2021-05-04T00:00:00+00:00
-
- https://sldn.softlayer.com/tags/resultlimit/
- 2021-05-04T00:00:00+00:00
-
-
https://sldn.softlayer.com/classes/SoftLayer_Event_Log/
2021-05-04T00:00:00+00:00
@@ -50690,14 +50700,4 @@
0001-01-01T00:00:00+00:00
-
- https://sldn.softlayer.com/go/goroutines/
- 0001-01-01T00:00:00+00:00
-
-
-
- https://sldn.softlayer.com/tags/sdk/
- 0001-01-01T00:00:00+00:00
-
-
diff --git a/tags/article/index.xml b/tags/article/index.xml
index 2a36aa45627..7ed26f75154 100644
--- a/tags/article/index.xml
+++ b/tags/article/index.xml
@@ -167,7 +167,7 @@
https://sldn.softlayer.com/article/understanding-ordering/
Mon, 12 Mar 2018 00:00:00 +0000
https://sldn.softlayer.com/article/understanding-ordering/
- <p>In version 5.4.0 of <a href="https://github.com/softlayer/softlayer-python">softlayer-python</a>, there is a new slcli command for placing IaaS cloud server orders using the API. This command can also be used to place orders for products that are normally ordered through the IBM Cloud infrastructure customer portal. There are multiple helpers to assist you in creating a specific order. In these examples, you will learn how to:</p>
<ul>
<li>Build an order
<ol>
<li>Understand the order structure</li>
<li>Search for server packages</li>
<li>Identify categories of items</li>
<li>Verify the order</li>
<li>Place the order</li>
</ol>
</li>
<li>Place an order programmatically using Python.</li>
</ul>
<h2 id="build-an-order">Build an order</h2>
<h3 id="step-1-understand-the-order-structure">Step 1: Understand the order structure</h3>
<p>In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.</p>
+ <p>In version 5.4.0 of <a href="https://github.com/softlayer/softlayer-python">softlayer-python</a>, there is a new slcli command for placing IaaS cloud server orders using the API. This command can also be used to place orders for products that are normally ordered through the IBM Cloud infrastructure customer portal. There are multiple helpers to assist you in creating a specific order. In these examples, you will learn how to:</p>
<ul>
<li>Build an order
<ol>
<li>Understand the order structure</li>
<li>Search for server packages</li>
<li>Identify categories of items</li>
<li>Verify the order</li>
<li>Place the order</li>
</ol>
</li>
<li>Place an order programmatically using Python.</li>
</ul>
<h2 id="build_order" class="anchor-link"><a href="#build_order">Build an order</a></h2>
<h3 id="step-1-understand-the-order-structure">Step 1: Understand the order structure</h3>
<p>In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.</p>
-
VSI Flavors
diff --git a/tags/cli/index.html b/tags/cli/index.html
index 56482bcb04e..8b1dc6f928e 100644
--- a/tags/cli/index.html
+++ b/tags/cli/index.html
@@ -181,6 +181,11 @@ ansible
go
+
+ Goroutines, Pagination and the SoftLayer API
+ Describes some ways to implement concurrency in your golang applications when interacting with the SoftLayer API. A few examples and explanation of softlayer-go's features.
+
+
Understanding the softlayer-go library
An in depth explanation of the softlayer-go library and how to make use of it in your applications.
@@ -191,11 +196,6 @@ go
Explains how to setup a simple CLI framework to copy/paste examples into and easily get going.
-
- Goroutines, Pagination and the SoftLayer API
- Describes some ways to implement concurrency in your golang applications when interacting with the SoftLayer API. A few examples and explanation of softlayer-go's features.
-
-
terraform
diff --git a/tags/cli/index.xml b/tags/cli/index.xml
index f3633958f19..fd78e2aa4a5 100644
--- a/tags/cli/index.xml
+++ b/tags/cli/index.xml
@@ -6,8 +6,15 @@
Recent content in Cli on SoftLayer API
Hugo
en-us
- Mon, 23 May 2022 00:00:00 +0000
+ Fri, 16 Feb 2024 00:00:00 +0000
+ -
+
Goroutines, Pagination and the SoftLayer API
+ https://sldn.softlayer.com/go/goroutines/
+ Fri, 16 Feb 2024 00:00:00 +0000
+ https://sldn.softlayer.com/go/goroutines/
+ <h1 id="basics-of-goroutines">Basics of Goroutines</h1>
<p>If you are unfamiliar with Goroutines, they are a way to easily add paralleism to your application. For a brief explanation on how they work in go, check out the following:</p>
<ul>
<li><a href="https://dev.to/gophers/what-are-goroutines-and-how-are-they-scheduled-2nj3">What are goroutines and how are they scheduled?</a></li>
<li><a href="https://medium.com/technofunnel/understanding-golang-and-goroutines-72ac3c9a014d">Understanding Golang and Goroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=5Z8skvm4g64">Goroutines Crash Course (Mutex, Channels, Wait Group, & More!)</a></li>
<li><a href="https://www.youtube.com/watch?v=Bk1c30avsuU">https://www.youtube.com/watch?v=Bk1c30avsuU</a></li>
</ul>
<p>The basic pattern here will be to make a single api call to get the first set of results, but also the expected total number of results. From there we will use goroutines to create a thread for each needed API call, wait for them all to finish and collect the results.</p>
+
-
Understanding the softlayer-go library
https://sldn.softlayer.com/go/the_go_library/
@@ -43,12 +50,5 @@
https://sldn.softlayer.com/ansible/install_sl_cli/
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl">- <span class="nt">hosts</span><span class="p">:</span><span class="w"> </span><span class="l">all</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">sudo</span><span class="p">:</span><span class="w"> </span><span class="kc">yes</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">tasks</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Update apt cache</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">apt</span><span class="p">:</span><span class="w"> </span><span class="l">update_cache=yes</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Install pip for the install of the CLI</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">apt</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">pkg</span><span class="p">:</span><span class="w"> </span><span class="s2">"{{ item }}"</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="l">present</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">when</span><span class="p">:</span><span class="w"> </span><span class="l">ansible_os_family == 'Debian'</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">with_items</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">python-virtualenv</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">python-setuptools</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">python-pip</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">Install the SoftLayer CLI</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">pip</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">softlayer</span><span class="w">
</span></span></span></code></pr
- -
-
Goroutines, Pagination and the SoftLayer API
- https://sldn.softlayer.com/go/goroutines/
- Mon, 01 Jan 0001 00:00:00 +0000
- https://sldn.softlayer.com/go/goroutines/
- <h1 id="basics-of-goroutines">Basics of Goroutines</h1>
<p>If you are unfamiliar with Goroutines, they are a way to easily add paralleism to your application. For a brief explanation on how they work in go, check out the following:</p>
<ul>
<li><a href="https://dev.to/gophers/what-are-goroutines-and-how-are-they-scheduled-2nj3">What are goroutines and how are they scheduled?</a></li>
<li><a href="https://medium.com/technofunnel/understanding-golang-and-goroutines-72ac3c9a014d">Understanding Golang and Goroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=5Z8skvm4g64">Goroutines Crash Course (Mutex, Channels, Wait Group, & More!)</a></li>
<li><a href="https://www.youtube.com/watch?v=Bk1c30avsuU">https://www.youtube.com/watch?v=Bk1c30avsuU</a></li>
</ul>
<p>The basic pattern here will be to make a single api call to get the first set of results, but also the expected total number of results. From there we will use goroutines to create a thread for each needed API call, wait for them all to finish and collect the results.</p>
-
diff --git a/tags/index.html b/tags/index.html
index 01f15424c62..06ead1060e3 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -175,6 +175,26 @@ tags
+
+ Cli
+
+
+
+
+ Pagination
+
+
+
+
+ Resultlimit
+
+
+
+
+ Sdk
+
+
+
Article
@@ -235,11 +255,6 @@ tags
-
- Cli
-
-
-
Go
@@ -330,11 +345,6 @@ tags
-
- Pagination
-
-
-
Tools
@@ -390,11 +400,6 @@ tags
-
- Resultlimit
-
-
-
Virtual_host
@@ -1455,11 +1460,6 @@ tags
-
- Sdk
-
-
-
diff --git a/tags/order/index.xml b/tags/order/index.xml
index 1e89ae4ac3d..8d94b5b5e94 100644
--- a/tags/order/index.xml
+++ b/tags/order/index.xml
@@ -188,7 +188,7 @@
https://sldn.softlayer.com/article/understanding-ordering/
Mon, 12 Mar 2018 00:00:00 +0000
https://sldn.softlayer.com/article/understanding-ordering/
- <p>In version 5.4.0 of <a href="https://github.com/softlayer/softlayer-python">softlayer-python</a>, there is a new slcli command for placing IaaS cloud server orders using the API. This command can also be used to place orders for products that are normally ordered through the IBM Cloud infrastructure customer portal. There are multiple helpers to assist you in creating a specific order. In these examples, you will learn how to:</p>
<ul>
<li>Build an order
<ol>
<li>Understand the order structure</li>
<li>Search for server packages</li>
<li>Identify categories of items</li>
<li>Verify the order</li>
<li>Place the order</li>
</ol>
</li>
<li>Place an order programmatically using Python.</li>
</ul>
<h2 id="build-an-order">Build an order</h2>
<h3 id="step-1-understand-the-order-structure">Step 1: Understand the order structure</h3>
<p>In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.</p>
+ <p>In version 5.4.0 of <a href="https://github.com/softlayer/softlayer-python">softlayer-python</a>, there is a new slcli command for placing IaaS cloud server orders using the API. This command can also be used to place orders for products that are normally ordered through the IBM Cloud infrastructure customer portal. There are multiple helpers to assist you in creating a specific order. In these examples, you will learn how to:</p>
<ul>
<li>Build an order
<ol>
<li>Understand the order structure</li>
<li>Search for server packages</li>
<li>Identify categories of items</li>
<li>Verify the order</li>
<li>Place the order</li>
</ol>
</li>
<li>Place an order programmatically using Python.</li>
</ul>
<h2 id="build_order" class="anchor-link"><a href="#build_order">Build an order</a></h2>
<h3 id="step-1-understand-the-order-structure">Step 1: Understand the order structure</h3>
<p>In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.</p>
-
VSI Flavors
diff --git a/tags/ordering/index.xml b/tags/ordering/index.xml
index f016d999905..5c2f9d21664 100644
--- a/tags/ordering/index.xml
+++ b/tags/ordering/index.xml
@@ -48,7 +48,7 @@
https://sldn.softlayer.com/article/understanding-ordering/
Mon, 12 Mar 2018 00:00:00 +0000
https://sldn.softlayer.com/article/understanding-ordering/
- <p>In version 5.4.0 of <a href="https://github.com/softlayer/softlayer-python">softlayer-python</a>, there is a new slcli command for placing IaaS cloud server orders using the API. This command can also be used to place orders for products that are normally ordered through the IBM Cloud infrastructure customer portal. There are multiple helpers to assist you in creating a specific order. In these examples, you will learn how to:</p>
<ul>
<li>Build an order
<ol>
<li>Understand the order structure</li>
<li>Search for server packages</li>
<li>Identify categories of items</li>
<li>Verify the order</li>
<li>Place the order</li>
</ol>
</li>
<li>Place an order programmatically using Python.</li>
</ul>
<h2 id="build-an-order">Build an order</h2>
<h3 id="step-1-understand-the-order-structure">Step 1: Understand the order structure</h3>
<p>In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.</p>
+ <p>In version 5.4.0 of <a href="https://github.com/softlayer/softlayer-python">softlayer-python</a>, there is a new slcli command for placing IaaS cloud server orders using the API. This command can also be used to place orders for products that are normally ordered through the IBM Cloud infrastructure customer portal. There are multiple helpers to assist you in creating a specific order. In these examples, you will learn how to:</p>
<ul>
<li>Build an order
<ol>
<li>Understand the order structure</li>
<li>Search for server packages</li>
<li>Identify categories of items</li>
<li>Verify the order</li>
<li>Place the order</li>
</ol>
</li>
<li>Place an order programmatically using Python.</li>
</ul>
<h2 id="build_order" class="anchor-link"><a href="#build_order">Build an order</a></h2>
<h3 id="step-1-understand-the-order-structure">Step 1: Understand the order structure</h3>
<p>In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.</p>
-
VSI Flavors
diff --git a/tags/pagination/index.xml b/tags/pagination/index.xml
index 6bd8f06e6e1..940b296ac21 100644
--- a/tags/pagination/index.xml
+++ b/tags/pagination/index.xml
@@ -6,8 +6,15 @@
Recent content in Pagination on SoftLayer API
Hugo
en-us
- Fri, 12 Nov 2021 00:00:00 +0000
+ Fri, 16 Feb 2024 00:00:00 +0000
+ -
+
Goroutines, Pagination and the SoftLayer API
+ https://sldn.softlayer.com/go/goroutines/
+ Fri, 16 Feb 2024 00:00:00 +0000
+ https://sldn.softlayer.com/go/goroutines/
+ <h1 id="basics-of-goroutines">Basics of Goroutines</h1>
<p>If you are unfamiliar with Goroutines, they are a way to easily add paralleism to your application. For a brief explanation on how they work in go, check out the following:</p>
<ul>
<li><a href="https://dev.to/gophers/what-are-goroutines-and-how-are-they-scheduled-2nj3">What are goroutines and how are they scheduled?</a></li>
<li><a href="https://medium.com/technofunnel/understanding-golang-and-goroutines-72ac3c9a014d">Understanding Golang and Goroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=5Z8skvm4g64">Goroutines Crash Course (Mutex, Channels, Wait Group, & More!)</a></li>
<li><a href="https://www.youtube.com/watch?v=Bk1c30avsuU">https://www.youtube.com/watch?v=Bk1c30avsuU</a></li>
</ul>
<p>The basic pattern here will be to make a single api call to get the first set of results, but also the expected total number of results. From there we will use goroutines to create a thread for each needed API call, wait for them all to finish and collect the results.</p>
+
-
Pagination Examples
https://sldn.softlayer.com/python/pagination.py/
@@ -15,12 +22,5 @@
https://sldn.softlayer.com/python/pagination.py/
<p>When querying the SoftLayer API and using a resultLimit to paginate your results, you should almost always use an <code>OrderBy</code> <a href="https://sldn.softlayer.com/article/object-filters/">objectFilter</a> to sort your results, as by default most results will not have an order imposed on them by the database. It is fairly common for the database to have differeing orders between queries UNLESS an <code>OrderBy</code> filter is used.</p>
<p>The python client itself has a built in function called <a href="https://softlayer-python.readthedocs.io/en/latest/api/client/#SoftLayer.API.BaseClient.iter_call"><code>iter_call</code></a> which will return a python <a href="https://wiki.python.org/moin/Generators">generator</a>. This generator will only get the next set of results when you need them, which can make doing operations on large datasets feel faster in that you don’t have to wait for the entire dataset to be retrieved before obtaining some results.</p>
- -
-
Goroutines, Pagination and the SoftLayer API
- https://sldn.softlayer.com/go/goroutines/
- Mon, 01 Jan 0001 00:00:00 +0000
- https://sldn.softlayer.com/go/goroutines/
- <h1 id="basics-of-goroutines">Basics of Goroutines</h1>
<p>If you are unfamiliar with Goroutines, they are a way to easily add paralleism to your application. For a brief explanation on how they work in go, check out the following:</p>
<ul>
<li><a href="https://dev.to/gophers/what-are-goroutines-and-how-are-they-scheduled-2nj3">What are goroutines and how are they scheduled?</a></li>
<li><a href="https://medium.com/technofunnel/understanding-golang-and-goroutines-72ac3c9a014d">Understanding Golang and Goroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=5Z8skvm4g64">Goroutines Crash Course (Mutex, Channels, Wait Group, & More!)</a></li>
<li><a href="https://www.youtube.com/watch?v=Bk1c30avsuU">https://www.youtube.com/watch?v=Bk1c30avsuU</a></li>
</ul>
<p>The basic pattern here will be to make a single api call to get the first set of results, but also the expected total number of results. From there we will use goroutines to create a thread for each needed API call, wait for them all to finish and collect the results.</p>
-
diff --git a/tags/resultlimit/index.html b/tags/resultlimit/index.html
index da65bc46a29..adc1dc7a95d 100644
--- a/tags/resultlimit/index.html
+++ b/tags/resultlimit/index.html
@@ -192,13 +192,13 @@ go
- Event Logs
- Working with Event Log, with pagination support
+ Goroutines, Pagination and the SoftLayer API
+ Describes some ways to implement concurrency in your golang applications when interacting with the SoftLayer API. A few examples and explanation of softlayer-go's features.
- Goroutines, Pagination and the SoftLayer API
- Describes some ways to implement concurrency in your golang applications when interacting with the SoftLayer API. A few examples and explanation of softlayer-go's features.
+ Event Logs
+ Working with Event Log, with pagination support
diff --git a/tags/resultlimit/index.xml b/tags/resultlimit/index.xml
index a9770d8eb23..7ee78a740d7 100644
--- a/tags/resultlimit/index.xml
+++ b/tags/resultlimit/index.xml
@@ -6,8 +6,15 @@
Recent content in Resultlimit on SoftLayer API
Hugo
en-us
- Tue, 04 May 2021 00:00:00 +0000
+ Fri, 16 Feb 2024 00:00:00 +0000
+ -
+
Goroutines, Pagination and the SoftLayer API
+ https://sldn.softlayer.com/go/goroutines/
+ Fri, 16 Feb 2024 00:00:00 +0000
+ https://sldn.softlayer.com/go/goroutines/
+ <h1 id="basics-of-goroutines">Basics of Goroutines</h1>
<p>If you are unfamiliar with Goroutines, they are a way to easily add paralleism to your application. For a brief explanation on how they work in go, check out the following:</p>
<ul>
<li><a href="https://dev.to/gophers/what-are-goroutines-and-how-are-they-scheduled-2nj3">What are goroutines and how are they scheduled?</a></li>
<li><a href="https://medium.com/technofunnel/understanding-golang-and-goroutines-72ac3c9a014d">Understanding Golang and Goroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=5Z8skvm4g64">Goroutines Crash Course (Mutex, Channels, Wait Group, & More!)</a></li>
<li><a href="https://www.youtube.com/watch?v=Bk1c30avsuU">https://www.youtube.com/watch?v=Bk1c30avsuU</a></li>
</ul>
<p>The basic pattern here will be to make a single api call to get the first set of results, but also the expected total number of results. From there we will use goroutines to create a thread for each needed API call, wait for them all to finish and collect the results.</p>
+
-
Event Logs
https://sldn.softlayer.com/go/event_log.go/
@@ -78,12 +85,5 @@
https://sldn.softlayer.com/article/xml-rpc/
<p>SoftLayer provides an XML-RPC interface in addition to <a href="https://sldn.softlayer.com/article/soap">SOAP</a> and <a href="https://sldn.softlayer.com/article/rest">REST</a>. The XML-RPC API is built to mimic the SOAP interface. We recommend using the XML-RPC API when your chosen language doesn’t have proper SOAP support.</p>
<h2 id="endpoint-urls">Endpoint URLs</h2>
<p>The SoftLayer XML-RPC API has one endpoint per available API service. Each endpoint has a unique URL containing the service name of the API services that it calls. For example:
<code>https://api.softlayer.com/xmlrpc/v3/<serviceName></code>
or
<code>http://api.service.softlayer.com/xmlrpc/v3/<serviceName></code></p>
- -
-
Goroutines, Pagination and the SoftLayer API
- https://sldn.softlayer.com/go/goroutines/
- Mon, 01 Jan 0001 00:00:00 +0000
- https://sldn.softlayer.com/go/goroutines/
- <h1 id="basics-of-goroutines">Basics of Goroutines</h1>
<p>If you are unfamiliar with Goroutines, they are a way to easily add paralleism to your application. For a brief explanation on how they work in go, check out the following:</p>
<ul>
<li><a href="https://dev.to/gophers/what-are-goroutines-and-how-are-they-scheduled-2nj3">What are goroutines and how are they scheduled?</a></li>
<li><a href="https://medium.com/technofunnel/understanding-golang-and-goroutines-72ac3c9a014d">Understanding Golang and Goroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=5Z8skvm4g64">Goroutines Crash Course (Mutex, Channels, Wait Group, & More!)</a></li>
<li><a href="https://www.youtube.com/watch?v=Bk1c30avsuU">https://www.youtube.com/watch?v=Bk1c30avsuU</a></li>
</ul>
<p>The basic pattern here will be to make a single api call to get the first set of results, but also the expected total number of results. From there we will use goroutines to create a thread for each needed API call, wait for them all to finish and collect the results.</p>
-
diff --git a/tags/sdk/index.xml b/tags/sdk/index.xml
index 09f3cb43bd2..6b17b522aa7 100644
--- a/tags/sdk/index.xml
+++ b/tags/sdk/index.xml
@@ -6,11 +6,12 @@
Recent content in Sdk on SoftLayer API
Hugo
en-us
+ Fri, 16 Feb 2024 00:00:00 +0000
-
Goroutines, Pagination and the SoftLayer API
https://sldn.softlayer.com/go/goroutines/
- Mon, 01 Jan 0001 00:00:00 +0000
+ Fri, 16 Feb 2024 00:00:00 +0000
https://sldn.softlayer.com/go/goroutines/
<h1 id="basics-of-goroutines">Basics of Goroutines</h1>
<p>If you are unfamiliar with Goroutines, they are a way to easily add paralleism to your application. For a brief explanation on how they work in go, check out the following:</p>
<ul>
<li><a href="https://dev.to/gophers/what-are-goroutines-and-how-are-they-scheduled-2nj3">What are goroutines and how are they scheduled?</a></li>
<li><a href="https://medium.com/technofunnel/understanding-golang-and-goroutines-72ac3c9a014d">Understanding Golang and Goroutines</a></li>
<li><a href="https://www.youtube.com/watch?v=5Z8skvm4g64">Goroutines Crash Course (Mutex, Channels, Wait Group, & More!)</a></li>
<li><a href="https://www.youtube.com/watch?v=Bk1c30avsuU">https://www.youtube.com/watch?v=Bk1c30avsuU</a></li>
</ul>
<p>The basic pattern here will be to make a single api call to get the first set of results, but also the expected total number of results. From there we will use goroutines to create a thread for each needed API call, wait for them all to finish and collect the results.</p>
diff --git a/tags/slcli/index.xml b/tags/slcli/index.xml
index 66694278677..b7051aa770f 100644
--- a/tags/slcli/index.xml
+++ b/tags/slcli/index.xml
@@ -34,7 +34,7 @@
https://sldn.softlayer.com/article/understanding-ordering/
Mon, 12 Mar 2018 00:00:00 +0000
https://sldn.softlayer.com/article/understanding-ordering/
- <p>In version 5.4.0 of <a href="https://github.com/softlayer/softlayer-python">softlayer-python</a>, there is a new slcli command for placing IaaS cloud server orders using the API. This command can also be used to place orders for products that are normally ordered through the IBM Cloud infrastructure customer portal. There are multiple helpers to assist you in creating a specific order. In these examples, you will learn how to:</p>
<ul>
<li>Build an order
<ol>
<li>Understand the order structure</li>
<li>Search for server packages</li>
<li>Identify categories of items</li>
<li>Verify the order</li>
<li>Place the order</li>
</ol>
</li>
<li>Place an order programmatically using Python.</li>
</ul>
<h2 id="build-an-order">Build an order</h2>
<h3 id="step-1-understand-the-order-structure">Step 1: Understand the order structure</h3>
<p>In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.</p>
+ <p>In version 5.4.0 of <a href="https://github.com/softlayer/softlayer-python">softlayer-python</a>, there is a new slcli command for placing IaaS cloud server orders using the API. This command can also be used to place orders for products that are normally ordered through the IBM Cloud infrastructure customer portal. There are multiple helpers to assist you in creating a specific order. In these examples, you will learn how to:</p>
<ul>
<li>Build an order
<ol>
<li>Understand the order structure</li>
<li>Search for server packages</li>
<li>Identify categories of items</li>
<li>Verify the order</li>
<li>Place the order</li>
</ol>
</li>
<li>Place an order programmatically using Python.</li>
</ul>
<h2 id="build_order" class="anchor-link"><a href="#build_order">Build an order</a></h2>
<h3 id="step-1-understand-the-order-structure">Step 1: Understand the order structure</h3>
<p>In the SoftLayer API, an order can consist of multiple order containers. For simplicity, the order CLI only works with one order container, so in these examples and explanations, the terms “order container” and “order” are synonymous.</p>
-
VSI Flavors