Creating a Bandwidth Pool in Python
Question: I am trying to create a new bandwidth pool using Python. When I run the
following code I get what I believe is the proper response:

    
    
    import SoftLayer
    from pprint import pprint as pp
    import logging
    logger = logging.getLogger()
    logger.addHandler(logging.StreamHandler())
    logger.setLevel(3)
    client = SoftLayer.Client()
    templateObject = client['SoftLayer_Network_Bandwidth_Version1_Allotment'].createObject({
        "accountId": 11111,
        "bandwidthAllotmentTypeId": 2,
         "createDate": "04/28/2016 16:18:03",
         "endDate": "04/28/2017 16:18:03",
         "locationGroupId": 1,
         "name": "RtiffanyTest1",
         "serviceProviderId": 1
    })
    
    
    pp(templateObject)
    

The issue is when I log in to the customer portal the new pool is marked as
pending deletion.

![](https://dl.dropboxusercontent.com/u/131462/Images/bwpool.png)

Can you point me in the right direction to have a new bandwidth pool created?

I am using
[createObject](http://sldn.softlayer.com/reference/services/SoftLayer_Network_Bandwidth_Version1_Allotment/createObject)
on the [Network bandwidth
allotment](http://sldn.softlayer.com/reference/services/SoftLayer_Network_Bandwidth_Version1_Allotment)
Service.


Answer: Please try the following example:

    
    
    """
    Create Bandwidth Pool
    
    Important manual pages:
    http://sldn.softlayer.com/reference/services/SoftLayer_Network_Bandwidth_Version1_Allotment/createObject/
    
    License: http://sldn.softlayer.com/article/License
    Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
    """
    import SoftLayer
    # For nice debug output:
    from pprint import pprint as pp
    
    API_USERNAME = 'set me'
    API_KEY = 'set me'
    
    # Set the needed values to create a new item
    accountId = 307600
    
    # The values for bandwidthAllotmentTypeId are: (1) and (2)
    # where: (1) means this allotment is marked as a virtual private rack or
    #        (2) bandwidth pooling
    bandwidthAllotmentTypeId = 2
    
    # To get locationGroupId, execute: SoftLayer_Location_Group::getAllObjects
    locationGroupId = 1
    newBandwithPoolName = 'testPool02'
    
    # Create an object template to create the item.
    objectTemplate = {
        'accountId': accountId,
        'bandwidthAllotmentTypeId': bandwidthAllotmentTypeId,
        'locationGroupId': locationGroupId,
        'name': newBandwithPoolName
    }
    
    # Creates a new connection to the API service.
    client = SoftLayer.Client(
        username=API_USERNAME,
        api_key=API_KEY
    )
    
    try:
        result = client['SoftLayer_Network_Bandwidth_Version1_Allotment'].createObject(objectTemplate)
        pp(result)
    
    except SoftLayer.SoftLayerAPIError as e:
        pp('Failed ... Unable to create a new Bandwidth Pool  faultCode=%s, faultString=%s'
            % (e.faultCode, e.faultString))
    

