August 28, 2015


List Packages

A handy script with a few examples on how to interact with packages

import SoftLayer
from pprint import pprint as pp

class example():

    def __init__(self):

        self.client = SoftLayer.Client()
      
    def main(self):
        """
        Gets ALL packages, and prints their name and price descriptions
        """
        mask = "mask[hourlyBillingAvailableFlag]"
        result = self.client['Product_Package'].getAllObjects();
        for product in result:
            print str(product['id']) + " - " + product['name']
        # result has a LOT of stuff in it, only print it out if you are ready
        # pp.pprint(result)

    def getPackage(self, package_id=0):
        """
        Gets a specific package and prints out some useful information
        """
        mask = "mask[items[prices]]"

        # Not all packages are available in all locations, you can check that with getLocations()
        # locations = self.client['Product_Package'].getLocations(id=package_id)
        # pp(locations)

        result = self.client['Product_Package'].getObject(mask=mask,id=package_id)

        for item in result['items']:
            print str(item['id']) + " - " + item['description'] + " --- " + item['keyName']
            for prices in item['prices']:
                print "\t" + str(prices['id']) + " - locationGroupId: " + str(prices['locationGroupId']) 

        # Will only get the server items for this package
        # serverItems = self.client['Product_Package'].getActiveServerItems(id=package_id)
        # print "SERVER ITEMS"
        # pp(serverItems)

        # Will only get the RAM items for the package
        # ramItems = self.client['Product_Package'].getActiveRamItems(id=package_id)
        # print "RAM ITEMS"
        # pp(ramItems)

     
    
    def getAllLocations(self):
        mask = "mask[id,locations[id,name]]"
        result = self.client['SoftLayer_Location_Group_Pricing'].getAllObjects(mask=mask);
        pp(result)

if __name__ == "__main__":
    main = example()
    main.main()
    main.getPackage(126)
    main.getAllLocations()