List Packages
A handy script with a few examples on how to interact with packages
require 'softlayer_api'
require 'pp'
def fetch_all(service, method)
records = []; offset = 0; limit = 10
loop do
results = service.result_limit(offset, limit).send(method)
records += results
break if results.size < limit
offset += limit
sleep 3
end
records
end
client = SoftLayer::Client.new
package_service = client['Product_Package']
mask = 'mask[id,name,description,itemPrices]'
all_packages = fetch_all(package_service.object_mask(mask), :getAllObjects)
all_packages.each do |package|
puts "#{package['id']} - #{package['name']}"
package['itemPrices'].each do |price|
puts "#{price['id']} - #{price['item']['description']}"
end
end
PACKAGE_ID = 126
mask = 'mask[id,name,description,items[id,description,keyName,prices[id,locationGroupId]]]'
product_package = package_service.object_mask(mask).object_with_id(PACKAGE_ID).getObject
puts 'PACKAGE LOCATIONS'
pp package_service.object_with_id(PACKAGE_ID).getLocations
product_package['items'].each do |item|
puts "#{item['id']} - #{item['description']} - #{item['keyName']}"
item['prices'].each do |price|
puts "\t#{price['id']} - locationGroupId: #{price['locationGroupId']}"
end
end
mask = 'mask[id,locations[id,name]]'
puts 'ALL LOCATIONS'
pp client['Location_Group_Pricing'].object_mask(mask).getAllObjects