You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2015/05/03 02:38:35 UTC

[1/5] libcloud git commit: Add tests for Softlayer loadbalancer driver

Repository: libcloud
Updated Branches:
  refs/heads/trunk 717f7bba7 -> c94ded833


http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/test_softlayer.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_softlayer.py b/libcloud/test/loadbalancer/test_softlayer.py
new file mode 100644
index 0000000..90499be
--- /dev/null
+++ b/libcloud/test/loadbalancer/test_softlayer.py
@@ -0,0 +1,190 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+import unittest
+
+from libcloud.utils.py3 import httplib
+from libcloud.utils.py3 import xmlrpclib
+
+from libcloud.compute.base import NodeLocation
+from libcloud.loadbalancer.base import Member, Algorithm
+from libcloud.loadbalancer.drivers.softlayer import SoftlayerLBDriver
+from libcloud.loadbalancer.types import State
+
+from libcloud.test import MockHttpTestCase
+from libcloud.test.secrets import SOFTLAYER_PARAMS
+from libcloud.test.file_fixtures import LoadBalancerFileFixtures
+
+
+class SoftlayerLBTests(unittest.TestCase):
+    def setUp(self):
+
+        SoftlayerLBDriver.connectionCls.conn_classes = (SoftLayerMockHttp,
+                                                        SoftLayerMockHttp)
+        SoftLayerMockHttp.type = None
+
+        self.driver = SoftlayerLBDriver(*SOFTLAYER_PARAMS)
+
+    def test_list_protocols(self):
+        protocols = self.driver.list_protocols()
+
+        self.assertEqual(len(protocols), 6)
+        self.assertTrue('tcp' in protocols)
+        self.assertTrue('http' in protocols)
+
+    def test_list_balancers(self):
+        balancers = self.driver.list_balancers()
+
+        self.assertEqual(len(balancers), 2)
+        self.assertEqual(balancers[0].id, '76185')
+        self.assertEqual(balancers[0].extra['datacenter'], 'dal05')
+        self.assertEqual(balancers[0].extra['connection_limit'], 50)
+        self.assertEqual(balancers[1].id, '76265')
+        self.assertEqual(balancers[1].extra['datacenter'], 'par01')
+        self.assertEqual(balancers[1].extra['connection_limit'], 50)
+
+    def test_get_balancer(self):
+        balancer = self.driver.get_balancer(balancer_id='76185')
+
+        self.assertEqual(balancer.id, '76185')
+        self.assertEqual(balancer.state, State.UNKNOWN)
+        self.assertEqual(balancer.extra['datacenter'], 'dal05')
+        self.assertEqual(balancer.extra['protocol'], 'http')
+        self.assertEqual(balancer.extra['algorithm'], Algorithm.ROUND_ROBIN)
+
+    def test_balancer_list_members(self):
+        balancer = self.driver.get_balancer(balancer_id='76185')
+        members = balancer.list_members()
+
+        self.assertEqual(len(members), 3)
+        self.assertEqual(members[0].balancer, balancer)
+        self.assertEqual(members[0].id, '226227')
+        self.assertEqual(members[0].ip, '10.126.5.34')
+        self.assertEqual(members[1].balancer, balancer)
+        self.assertEqual(members[1].id, '226229')
+        self.assertEqual(members[1].ip, '10.126.5.35')
+
+    def test_balancer_attach_member(self):
+        balancer = self.driver.get_balancer(balancer_id='76185')
+        member = balancer.attach_member(Member(None, ip='10.126.5.34',
+                                               port=8000))
+
+        self.assertEqual(member.id, '226227')
+        self.assertEqual(member.ip, '10.126.5.34')
+        self.assertEqual(member.port, 8000)
+
+    def test_balancer_detach_member(self):
+        balancer = self.driver.get_balancer(balancer_id='76265')
+        member = Member('226227', None, None)
+
+        self.assertTrue(balancer.detach_member(member))
+
+    def test_destroy_balancer(self):
+        balancer = self.driver.get_balancer(balancer_id='76185')
+
+        self.assertTrue(self.driver.destroy_balancer(balancer))
+
+    def test_ex_list_balancer_packages(self):
+        packages = self.driver.ex_list_balancer_packages()
+        self.assertEqual(len(packages), 9)
+
+    def test_ex_place_balancer_order(self):
+        packages = self.driver.ex_list_balancer_packages()
+        lb_package = [p for p in packages if p.capacity == 50][0]
+
+        self.assertTrue(self.driver.ex_place_balancer_order(
+            lb_package, NodeLocation('dal05', None, None, None)))
+
+
+class SoftLayerMockHttp(MockHttpTestCase):
+    fixtures = LoadBalancerFileFixtures('softlayer')
+
+    def _get_method_name(self, type, use_param, qs, path):
+        return "_xmlrpc"
+
+    def _xmlrpc(self, method, url, body, headers):
+        params, meth_name = xmlrpclib.loads(body)
+        url = url.replace("/", "_")
+        meth_name = "%s_%s" % (url, meth_name)
+        return getattr(self, meth_name)(method, url, body, headers)
+
+    def _xmlrpc_v3_SoftLayer_Account_getAdcLoadBalancers(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Account_getAdcLoadBalancers.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Billing_Item_cancelService(self, method, url,
+                                                        body, headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Billing_Item_cancelService.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Location_Datacenter_getDatacenters(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Location_Datacenter_getDatacenters.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Network_Application_Delivery_Controller_'
+            'LoadBalancer_Service_deleteObject.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Network_Application_Delivery_Controller_'
+            'LoadBalancer_VirtualIpAddress_editObject.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Network_Application_Delivery_Controller_'
+            'LoadBalancer_VirtualIpAddress_getBillingItem.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Network_Application_Delivery_Controller_'
+            'LoadBalancer_VirtualIpAddress_getObject.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Network_Subnet_IpAddress_getByIpAddress(
+            self, method, url, body, headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Product_Order_placeOrder(self, method, url, body,
+                                                      headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Product_Order_placeOrder.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _xmlrpc_v3_SoftLayer_Product_Package_getItems(self, method, url, body,
+                                                      headers):
+        body = self.fixtures.load(
+            'v3__SoftLayer_Product_Package_getItems.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+
+if __name__ == "__main__":
+    sys.exit(unittest.main())


[5/5] libcloud git commit: Update test requirements file.`

Posted by to...@apache.org.
Update test requirements file.`


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/c94ded83
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/c94ded83
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/c94ded83

Branch: refs/heads/trunk
Commit: c94ded83390411f67edc771a7091f78af83081dc
Parents: 5d7b1d8
Author: Tomaz Muraus <to...@tomaz.me>
Authored: Sat May 2 17:34:54 2015 -0700
Committer: Tomaz Muraus <to...@tomaz.me>
Committed: Sat May 2 17:34:54 2015 -0700

----------------------------------------------------------------------
 requirements-tests.txt | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/c94ded83/requirements-tests.txt
----------------------------------------------------------------------
diff --git a/requirements-tests.txt b/requirements-tests.txt
index 2e3a610..ed675cc 100644
--- a/requirements-tests.txt
+++ b/requirements-tests.txt
@@ -1,2 +1,3 @@
 pep8>=1.6.2,<1.7
 flake8>=2.3.0,<2.4
+mock>=1.0.1,<1.1


[2/5] libcloud git commit: Add tests for Softlayer loadbalancer driver

Posted by to...@apache.org.
http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Package_getItems.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Package_getItems.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Package_getItems.xml
new file mode 100644
index 0000000..235761a
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Package_getItems.xml
@@ -0,0 +1,5448 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <array>
+   <data>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Citrix VDC</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>1148</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>CITRIX_VDC</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>24912</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>1148</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>65000</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Load Balancer (Dedicated, with SSL offload) - 15,000 Connections</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4136</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>LOAD_BALANCER_DEDICATED_WITH_SSL_OFFLOAD_15000_CONNECTIONS</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>25314</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4136</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>849</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>200</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Citrix NetScaler VPX 10.5 200Mbps Platinum</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>5916</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>CITRIX_NETSCALER_VPX_10_5_200MBPS_PLATINUM</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <int>1378</int>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>Mbps</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>44970</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>5916</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>899</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>64</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>/64 Block Static Public IPv6 Addresses</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>784</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>64_BLOCK_STATIC_PUBLIC_IPV6_ADDRESSES</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>hourlyRecurringFee</name>
+             <value>
+              <string>.007</string>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>26340</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>784</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>10</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>4</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>.info - 4 year</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4007</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>DOMAIN_INFO_4_YEAR</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>26584</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4007</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>38.48</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>3</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>50</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Load Balancer 50 connections</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>565</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>LOAD_BALANCER_50_CONNECTIONS</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>Connections/Second</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <int>567</int>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>33021</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>565</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>29</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Reseller Domain Credit</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4065</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>162</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>RESELLER_DOMAIN_CREDIT</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>27728</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4065</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>10</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>250</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>CDN 250 GB Bandwidth</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>892</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>CDN_250_GB_BANDWIDTH</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>GB</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>27770</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>892</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>20</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>10</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>3</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>.biz - 3 year</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>3995</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>DOMAIN_BIZ_3_YEAR</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>29940</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>3995</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>33</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>2</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Dedicated Rack (Half)</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>1302</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>DEDICATED_RACK_HALF</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>31299</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>1302</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>1100</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>1000</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Load Balancer 1,000 connections</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>566</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>LOAD_BALANCER_1000_CONNECTIONS</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>Connections/Second</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <int>571</int>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>31322</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>566</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>499</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>5</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>.info - 5 year</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4023</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>DOMAIN_INFO_5_YEAR</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>31340</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4023</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>48.1</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>4</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>7</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>.us - 7 year</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>3999</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>DOMAIN_US_7_YEAR</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>32381</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>3999</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>57.33</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>6</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Windows 2008 Datacenter w/ Unlimited Virtuals (2 Proc License)</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>791</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>VIRTUAL_OS_WINDOWS_2008_DATACENTER_W_UNLIMITED_VIRTUALS_2_PROC_LICENSE</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <int>723</int>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>32695</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>791</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>127.5</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>250</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Load Balancer 250 VIP Connections</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>1106</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>LOAD_BALANCER_250_VIP_CONNECTIONS</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>Connections/Second</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <int>1105</int>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>33908</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>1106</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>29</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>1500</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>1500GB EVault Disk to Disk Enterprise Backup</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4185</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>EVAULT_1500_GB</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <int>159</int>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>GIGABYTE</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <int>955</int>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>34594</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4185</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>543.75</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>65000</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Dedicated Load Balancer with High Availability and SSL - 15,000 Connections</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4512</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>DEDICATED_LOAD_BALANCER_WITH_HIGH_AVAILABILITY_AND_SSL_15000_CONNECTIONS</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>36019</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4512</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>1698</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>10</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Citrix NetScaler VPX 10.5 10Mbps Platinum</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>5912</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>CITRIX_NETSCALER_VPX_10_5_10MBPS_PLATINUM</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <int>1374</int>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>Mbps</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>44950</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>5912</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>459</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>EVault Plugin - VMWare ESX</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>1087</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>EVAULT_PLUGIN_VMWARE_ESX</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <int>635</int>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>23040</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>1087</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>8.5</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>8</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>8 Static Public IP Addresses</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>583</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>8_STATIC_PUBLIC_IP_ADDRESSES</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>hourlyRecurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>36692</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>583</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>29583</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>583</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>8</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>31207</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>583</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>8</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>hourlyRecurringFee</name>
+             <value>
+              <string>.007</string>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>23392</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>583</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>2000</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Load Balancer 2,000 connections</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>617</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>LOAD_BALANCER_2000_CONNECTIONS</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>Connections/Second</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <int>618</int>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>23794</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>617</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>999</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>3</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>.us - 3 year</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4011</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>DOMAIN_US_3_YEAR</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>24083</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4011</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>24.57</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>2</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>2</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>FortiGate Security Appliance (High Availability)</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4338</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>FORTIGATE_SECURITY_APPLIANCE_HIGH_AVAILABILITY</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>24741</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4338</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>1699</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>1</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>100000</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Advanced Package</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>3859</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>NETWORK_MESSAGE_DELIVERY_ADVANCED_PACKAGE</string>
+       </value>
+      </member>
+      <member>
+       <name>longDescription</name>
+       <value>
+        <string>&#60;ul&#62;&#13;&#10;&#60;li&#62;Overage - $0.00085&#60;/li&#62;&#13;&#10;&#60;li&#62;Bounce Tracking&#60;/li&#62;&#13;&#10;&#60;li&#62;Unsub Tracking&#60;/li&#62;&#13;&#10;&#60;li&#62;Click Tracking&#60;/li&#62;&#13;&#10;&#60;li&#62;Open Tracking&#60;/li&#62;&#13;&#10;&#60;li&#62;Dedicated IP&#60;/li&#62;&#13;&#10;&#60;/ul&#62;</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>24995</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>3859</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>36</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Global IPv6</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4187</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>GLOBAL_IPV6</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>25282</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4187</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>20</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>10</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>CDN Pay as You Go Bandwidth</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>891</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>CDN_PAY_AS_YOU_GO_BANDWIDTH</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>GB</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>25482</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>891</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>5</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>2</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>.net - 2 year</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4001</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>DOMAIN_NET_2_YEAR</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>N/A</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>25495</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>4001</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>22</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>1</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>1</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>QuickSSL Premium - 1 year</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>1293</int>
+       </value>
+      </member>
+      <member>
+       <name>itemTaxCategoryId</name>
+       <value>
+        <int>166</int>
+       </value>
+      </member>
+      <member>
+       <name>keyName</name>
+       <value>
+        <string>SSL_CERTIFICATE_QUICKSSL_PREMIUM_1_YEAR</string>
+       </value>
+      </member>
+      <member>
+       <name>longDescription</name>
+       <value>
+        <string>&#60;h3&#62;GeoTrust QuickSSL&#38;reg; Premium SSL&#60;/h3&#62;&#13;&#10;&#60;p&#62;&#13;&#10;    GeoTrust QuickSSL Premium Certificates are convenient and economical entry-level SSL Certificates. These certificates enable up to 256-bit encryption (depending on your client's browser capability and the cipher suite installed on your Web server) and are issued through an automated process that usually results in certificates being issued within minutes of being ordered. This process verifies that a certificate purchaser has appropriate administrative rights to a Web server's domain.&#13;&#10;&#60;/p&#62; &#13;&#10;&#13;&#10;&#60;h3&#62;Features and Benefits&#60;/h3&#62;&#13;&#10;&#60;ul&#62; &#13;&#10;    &#60;li&#62;Domain-level authentication&#60;/li&#62;&#13;&#10;    &#60;li&#62;Up to 256-bit encryption&#60;/li&#62;&#13;&#10;    &#60;li&#62;True Site Seal embedded with a date/time stamp&#60;/li&#62;&#13;&#10;    &#60;li&#62;Issuance, often within minutes&#60;/li&#62
 ;&#13;&#10;    &#60;li&#62;Unlimited, free self-service reissues&#60;/li&#62;&#13;&#10;&#60;/ul&#62;</string>
+       </value>
+      </member>
+      <member>
+       <name>softwareDescriptionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>units</name>
+       <value>
+        <string>DV</string>
+       </value>
+      </member>
+      <member>
+       <name>upgradeItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>currentPriceFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>25847</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>1293</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>onSaleFlag</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>quantity</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>79</string>
+             </value>
+            </member>
+            <member>
+             <name>sort</name>
+             <value>
+              <int>3</int>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>capacity</name>
+       <value>
+        <string>2</string>
+       </value>
+      </member>
+      <member>
+       <name>description</name>
+       <value>
+        <string>Hardw

<TRUNCATED>

[3/5] libcloud git commit: Add tests for Softlayer loadbalancer driver

Posted by to...@apache.org.
http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Order_placeOrder.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Order_placeOrder.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Order_placeOrder.xml
new file mode 100644
index 0000000..3cc4b9c
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Product_Order_placeOrder.xml
@@ -0,0 +1,709 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <struct>
+   <member>
+    <name>orderDate</name>
+    <value>
+     <string>2015-04-24T15:19:20+02:00</string>
+    </value>
+   </member>
+   <member>
+    <name>orderId</name>
+    <value>
+     <int>4320271</int>
+    </value>
+   </member>
+   <member>
+    <name>orderDetails</name>
+    <value>
+     <struct>
+      <member>
+       <name>bigDataOrderFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>billingOrderItemId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>containerSplHash</name>
+       <value>
+        <string>00000000</string>
+       </value>
+      </member>
+      <member>
+       <name>currencyShortName</name>
+       <value>
+        <string>USD</string>
+       </value>
+      </member>
+      <member>
+       <name>extendedHardwareTesting</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>imageTemplateId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>isManagedOrder</name>
+       <value>
+        <int>0</int>
+       </value>
+      </member>
+      <member>
+       <name>location</name>
+       <value>
+        <string>265592</string>
+       </value>
+      </member>
+      <member>
+       <name>message</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>packageId</name>
+       <value>
+        <int>0</int>
+       </value>
+      </member>
+      <member>
+       <name>paymentType</name>
+       <value>
+        <string>ADD_TO_BALANCE</string>
+       </value>
+      </member>
+      <member>
+       <name>postTaxRecurring</name>
+       <value>
+        <string>29</string>
+       </value>
+      </member>
+      <member>
+       <name>postTaxRecurringHourly</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>postTaxRecurringMonthly</name>
+       <value>
+        <string>29</string>
+       </value>
+      </member>
+      <member>
+       <name>postTaxSetup</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>preTaxRecurring</name>
+       <value>
+        <string>29</string>
+       </value>
+      </member>
+      <member>
+       <name>preTaxRecurringHourly</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>preTaxRecurringMonthly</name>
+       <value>
+        <string>29</string>
+       </value>
+      </member>
+      <member>
+       <name>preTaxSetup</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>presetId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>primaryDiskPartitionId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>privateCloudOrderFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>proratedInitialCharge</name>
+       <value>
+        <string>6.77</string>
+       </value>
+      </member>
+      <member>
+       <name>proratedOrderTotal</name>
+       <value>
+        <string>6.77</string>
+       </value>
+      </member>
+      <member>
+       <name>quantity</name>
+       <value>
+        <int>1</int>
+       </value>
+      </member>
+      <member>
+       <name>resourceGroupId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>resourceGroupTemplateId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>sendQuoteEmailFlag</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>serverCoreCount</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>sourceVirtualGuestId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>stepId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>taxCacheHash</name>
+       <value>
+        <string>b94c43e22aeaedb3dc4</string>
+       </value>
+      </member>
+      <member>
+       <name>taxCompletedFlag</name>
+       <value>
+        <boolean>1</boolean>
+       </value>
+      </member>
+      <member>
+       <name>totalRecurringTax</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>totalSetupTax</name>
+       <value>
+        <string>0</string>
+       </value>
+      </member>
+      <member>
+       <name>useHourlyPricing</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>billingInformation</name>
+       <value>
+        <struct>
+         <member>
+          <name>billingAddressLine1</name>
+          <value>
+           <string>University</string>
+          </value>
+         </member>
+         <member>
+          <name>billingCity</name>
+          <value>
+           <string>Haifa</string>
+          </value>
+         </member>
+         <member>
+          <name>billingCountryCode</name>
+          <value>
+           <string>IL</string>
+          </value>
+         </member>
+         <member>
+          <name>billingEmail</name>
+          <value>
+           <string>someone@com</string>
+          </value>
+         </member>
+         <member>
+          <name>billingNameCompany</name>
+          <value>
+           <string>IBM</string>
+          </value>
+         </member>
+         <member>
+          <name>billingNameFirst</name>
+          <value>
+           <string>Foo </string>
+          </value>
+         </member>
+         <member>
+          <name>billingNameLast</name>
+          <value>
+           <string>Bar</string>
+          </value>
+         </member>
+         <member>
+          <name>billingPhoneVoice</name>
+          <value>
+           <string>972-4-44444</string>
+          </value>
+         </member>
+         <member>
+          <name>billingPostalCode</name>
+          <value>
+           <string>0000</string>
+          </value>
+         </member>
+         <member>
+          <name>billingState</name>
+          <value>
+           <string>OT</string>
+          </value>
+         </member>
+         <member>
+          <name>cardExpirationMonth</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>cardExpirationYear</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>taxExempt</name>
+          <value>
+           <int>0</int>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>itemCategoryQuestionAnswers</name>
+       <value>
+        <array>
+         <data/>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>locationObject</name>
+       <value>
+        <struct>
+         <member>
+          <name>id</name>
+          <value>
+           <int>265592</int>
+          </value>
+         </member>
+         <member>
+          <name>longName</name>
+          <value>
+           <string>Amsterdam 1</string>
+          </value>
+         </member>
+         <member>
+          <name>name</name>
+          <value>
+           <string>ams01</string>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>prices</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>id</name>
+             <value>
+              <int>33021</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>565</int>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>29</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>categories</name>
+             <value>
+              <array>
+               <data>
+                <value>
+                 <struct>
+                  <member>
+                   <name>categoryCode</name>
+                   <value>
+                    <string>proxy_load_balancer</string>
+                   </value>
+                  </member>
+                  <member>
+                   <name>id</name>
+                   <value>
+                    <int>55</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>name</name>
+                   <value>
+                    <string>Proxy Load Balancer</string>
+                   </value>
+                  </member>
+                 </struct>
+                </value>
+               </data>
+              </array>
+             </value>
+            </member>
+            <member>
+             <name>item</name>
+             <value>
+              <struct>
+               <member>
+                <name>capacity</name>
+                <value>
+                 <string>50</string>
+                </value>
+               </member>
+               <member>
+                <name>description</name>
+                <value>
+                 <string>Load Balancer 50 connections</string>
+                </value>
+               </member>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>565</int>
+                </value>
+               </member>
+               <member>
+                <name>keyName</name>
+                <value>
+                 <string>LOAD_BALANCER_50_CONNECTIONS</string>
+                </value>
+               </member>
+               <member>
+                <name>units</name>
+                <value>
+                 <string>Connections/Second</string>
+                </value>
+               </member>
+               <member>
+                <name>bundle</name>
+                <value>
+                 <array>
+                  <data/>
+                 </array>
+                </value>
+               </member>
+              </struct>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>properties</name>
+       <value>
+        <array>
+         <data/>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>sshKeys</name>
+       <value>
+        <array>
+         <data/>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>storageGroups</name>
+       <value>
+        <array>
+         <data/>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+   </member>
+   <member>
+    <name>placedOrder</name>
+    <value>
+     <struct>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>411826</int>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>4320271</int>
+       </value>
+      </member>
+      <member>
+       <name>orderQuoteId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>orderTypeId</name>
+       <value>
+        <int>4</int>
+       </value>
+      </member>
+      <member>
+       <name>presaleEventId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>status</name>
+       <value>
+        <string>PENDING_AUTO_APPROVAL</string>
+       </value>
+      </member>
+      <member>
+       <name>userRecordId</name>
+       <value>
+        <int>315282</int>
+       </value>
+      </member>
+      <member>
+       <name>account</name>
+       <value>
+        <struct>
+         <member>
+          <name>brandId</name>
+          <value>
+           <int>30130</int>
+          </value>
+         </member>
+         <member>
+          <name>companyName</name>
+          <value>
+           <string>IBM</string>
+          </value>
+         </member>
+         <member>
+          <name>id</name>
+          <value>
+           <int>411826</int>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>items</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>categoryCode</name>
+             <value>
+              <string>proxy_load_balancer</string>
+             </value>
+            </member>
+            <member>
+             <name>description</name>
+             <value>
+              <string>Load Balancer 50 connections</string>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>65021573</int>
+             </value>
+            </member>
+            <member>
+             <name>itemId</name>
+             <value>
+              <int>565</int>
+             </value>
+            </member>
+            <member>
+             <name>itemPriceId</name>
+             <value>
+              <string>33021</string>
+             </value>
+            </member>
+            <member>
+             <name>laborFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>oneTimeFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>parentId</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>promoCodeId</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>recurringFee</name>
+             <value>
+              <string>29</string>
+             </value>
+            </member>
+            <member>
+             <name>setupFee</name>
+             <value>
+              <string>0</string>
+             </value>
+            </member>
+            <member>
+             <name>children</name>
+             <value>
+              <array>
+               <data/>
+              </array>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>userRecord</name>
+       <value>
+        <struct>
+         <member>
+          <name>accountId</name>
+          <value>
+           <int>00000</int>
+          </value>
+         </member>
+         <member>
+          <name>firstName</name>
+          <value>
+           <string>Foo</string>
+          </value>
+         </member>
+         <member>
+          <name>id</name>
+          <value>
+           <int>00000</int>
+          </value>
+         </member>
+         <member>
+          <name>lastName</name>
+          <value>
+           <string>Foo</string>
+          </value>
+         </member>
+         <member>
+          <name>username</name>
+          <value>
+           <string>foo</string>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+     </struct>
+    </value>
+   </member>
+  </struct>
+ </value>
+</param>
+</params>


[4/5] libcloud git commit: Add tests for Softlayer loadbalancer driver

Posted by to...@apache.org.
Add tests for Softlayer loadbalancer driver

Signed-off-by: Tomaz Muraus <to...@tomaz.me>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/5d7b1d84
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/5d7b1d84
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/5d7b1d84

Branch: refs/heads/trunk
Commit: 5d7b1d84fa421b942cadd82f7177ed01109eff6e
Parents: 717f7bb
Author: Avi Weit <we...@il.ibm.com>
Authored: Fri Apr 24 14:35:22 2015 +0000
Committer: Tomaz Muraus <to...@tomaz.me>
Committed: Sat May 2 17:31:06 2015 -0700

----------------------------------------------------------------------
 .../softlayer/ex_place_balancer_order.py        |    2 +-
 ...3__SoftLayer_Account_getAdcLoadBalancers.xml |  802 +++
 ...v3__SoftLayer_Billing_Item_cancelService.xml |    8 +
 ...Layer_Location_Datacenter_getDatacenters.xml |  683 +++
 ...roller_LoadBalancer_Service_deleteObject.xml |    8 +
 ...LoadBalancer_VirtualIpAddress_editObject.xml |    8 +
 ...Balancer_VirtualIpAddress_getBillingItem.xml |  147 +
 ..._LoadBalancer_VirtualIpAddress_getObject.xml |  803 +++
 ..._Network_Subnet_IpAddress_getByIpAddress.xml |  148 +
 .../v3__SoftLayer_Product_Order_placeOrder.xml  |  709 +++
 .../v3__SoftLayer_Product_Package_getItems.xml  | 5448 ++++++++++++++++++
 libcloud/test/loadbalancer/test_softlayer.py    |  190 +
 12 files changed, 8955 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/docs/examples/loadbalancer/softlayer/ex_place_balancer_order.py
----------------------------------------------------------------------
diff --git a/docs/examples/loadbalancer/softlayer/ex_place_balancer_order.py b/docs/examples/loadbalancer/softlayer/ex_place_balancer_order.py
index 60cd42d..ad92199 100644
--- a/docs/examples/loadbalancer/softlayer/ex_place_balancer_order.py
+++ b/docs/examples/loadbalancer/softlayer/ex_place_balancer_order.py
@@ -21,4 +21,4 @@ lb_package = [p for p in packages if p.capacity == CAPACITY][0]
 driver.ex_place_balancer_order(lb_package,
                                NodeLocation(DATACENTER, None, None, None))
 
-print('Successfully submitted oder request, from package' % (lb_package))
+print('Successfully submitted oder request, from package %s' % (lb_package))

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Account_getAdcLoadBalancers.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Account_getAdcLoadBalancers.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Account_getAdcLoadBalancers.xml
new file mode 100644
index 0000000..3b29fc1
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Account_getAdcLoadBalancers.xml
@@ -0,0 +1,802 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <array>
+   <data>
+    <value>
+     <struct>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>411826</int>
+       </value>
+      </member>
+      <member>
+       <name>connectionLimit</name>
+       <value>
+        <int>50</int>
+       </value>
+      </member>
+      <member>
+       <name>connectionLimitUnits</name>
+       <value>
+        <string>connections/second</string>
+       </value>
+      </member>
+      <member>
+       <name>dedicatedFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>76185</int>
+       </value>
+      </member>
+      <member>
+       <name>ipAddressId</name>
+       <value>
+        <int>7303289</int>
+       </value>
+      </member>
+      <member>
+       <name>securityCertificateId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>sslActiveFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>sslEnabledFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>highAvailabilityFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>ipAddress</name>
+       <value>
+        <struct>
+         <member>
+          <name>id</name>
+          <value>
+           <int>7303289</int>
+          </value>
+         </member>
+         <member>
+          <name>ipAddress</name>
+          <value>
+           <string>108.168.157.130</string>
+          </value>
+         </member>
+         <member>
+          <name>isBroadcast</name>
+          <value>
+           <boolean>0</boolean>
+          </value>
+         </member>
+         <member>
+          <name>isGateway</name>
+          <value>
+           <boolean>0</boolean>
+          </value>
+         </member>
+         <member>
+          <name>isNetwork</name>
+          <value>
+           <boolean>0</boolean>
+          </value>
+         </member>
+         <member>
+          <name>isReserved</name>
+          <value>
+           <boolean>1</boolean>
+          </value>
+         </member>
+         <member>
+          <name>note</name>
+          <value>
+           <string>Load balancer VIP</string>
+          </value>
+         </member>
+         <member>
+          <name>subnetId</name>
+          <value>
+           <int>406030</int>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>loadBalancerHardware</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>accountId</name>
+             <value>
+              <int>1</int>
+             </value>
+            </member>
+            <member>
+             <name>bareMetalInstanceFlag</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+            <member>
+             <name>domain</name>
+             <value>
+              <string>softlayer.com</string>
+             </value>
+            </member>
+            <member>
+             <name>fullyQualifiedDomainName</name>
+             <value>
+              <string>lb04.dal05.softlayer.com</string>
+             </value>
+            </member>
+            <member>
+             <name>hardwareStatusId</name>
+             <value>
+              <int>5</int>
+             </value>
+            </member>
+            <member>
+             <name>hostname</name>
+             <value>
+              <string>lb04.dal05</string>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>178860</int>
+             </value>
+            </member>
+            <member>
+             <name>notes</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>provisionDate</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>serviceProviderId</name>
+             <value>
+              <int>1</int>
+             </value>
+            </member>
+            <member>
+             <name>serviceProviderResourceId</name>
+             <value>
+              <int>178860</int>
+             </value>
+            </member>
+            <member>
+             <name>datacenter</name>
+             <value>
+              <struct>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>138124</int>
+                </value>
+               </member>
+               <member>
+                <name>longName</name>
+                <value>
+                 <string>Dallas 5</string>
+                </value>
+               </member>
+               <member>
+                <name>name</name>
+                <value>
+                 <string>dal05</string>
+                </value>
+               </member>
+               <member>
+                <name>statusId</name>
+                <value>
+                 <int>2</int>
+                </value>
+               </member>
+              </struct>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>virtualServers</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>allocation</name>
+             <value>
+              <int>100</int>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>132193</int>
+             </value>
+            </member>
+            <member>
+             <name>port</name>
+             <value>
+              <int>80</int>
+             </value>
+            </member>
+            <member>
+             <name>routingMethodId</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>virtualIpAddressId</name>
+             <value>
+              <int>76185</int>
+             </value>
+            </member>
+            <member>
+             <name>serviceGroups</name>
+             <value>
+              <array>
+               <data>
+                <value>
+                 <struct>
+                  <member>
+                   <name>id</name>
+                   <value>
+                    <int>131113</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>routingMethodId</name>
+                   <value>
+                    <int>10</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>routingTypeId</name>
+                   <value>
+                    <int>2</int>
+                   </value>
+                  </member>
+                  <member>
+                   <name>timeout</name>
+                   <value>
+                    <string/>
+                   </value>
+                  </member>
+                  <member>
+                   <name>routingMethod</name>
+                   <value>
+                    <struct>
+                     <member>
+                      <name>id</name>
+                      <value>
+                       <int>10</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>keyname</name>
+                      <value>
+                       <string>ROUND_ROBIN</string>
+                      </value>
+                     </member>
+                     <member>
+                      <name>name</name>
+                      <value>
+                       <string>Round Robin</string>
+                      </value>
+                     </member>
+                    </struct>
+                   </value>
+                  </member>
+                  <member>
+                   <name>routingType</name>
+                   <value>
+                    <struct>
+                     <member>
+                      <name>id</name>
+                      <value>
+                       <int>2</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>keyname</name>
+                      <value>
+                       <string>HTTP</string>
+                      </value>
+                     </member>
+                     <member>
+                      <name>name</name>
+                      <value>
+                       <string>HTTP</string>
+                      </value>
+                     </member>
+                    </struct>
+                   </value>
+                  </member>
+                  <member>
+                   <name>services</name>
+                   <value>
+                    <array>
+                     <data>
+                      <value>
+                       <struct>
+                        <member>
+                         <name>enabled</name>
+                         <value>
+                          <int>1</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>id</name>
+                         <value>
+                          <int>221145</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>ipAddressId</name>
+                         <value>
+                          <int>33499201</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>notes</name>
+                         <value>
+                          <string>inst-test-276a.example.com</string>
+                         </value>
+                        </member>
+                        <member>
+                         <name>port</name>
+                         <value>
+                          <int>8080</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>status</name>
+                         <value>
+                          <string>DOWN</string>
+                         </value>
+                        </member>
+                        <member>
+                         <name>ipAddress</name>
+                         <value>
+                          <struct>
+                           <member>
+                            <name>id</name>
+                            <value>
+                             <int>33499201</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>ipAddress</name>
+                            <value>
+                             <string>75.126.161.106</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isBroadcast</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isGateway</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isNetwork</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isReserved</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>subnetId</name>
+                            <value>
+                             <int>22958</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>subnet</name>
+                            <value>
+                             <struct>
+                              <member>
+                               <name>broadcastAddress</name>
+                               <value>
+                                <string>75.126.161.111</string>
+                               </value>
+                              </member>
+                              <member>
+                               <name>cidr</name>
+                               <value>
+                                <int>29</int>
+                               </value>
+                              </member>
+                              <member>
+                               <name>gateway</name>
+                               <value>
+                                <string>75.126.161.105</string>
+                               </value>
+                              </member>
+                              <member>
+                               <name>id</name>
+                               <value>
+                                <int>22958</int>
+                               </value>
+                              </member>
+                              <member>
+                               <name>isCustomerOwned</name>
+                               <value>
+                                <boolean>0</boolean>
+                               </value>
+                              </member>
+                              <member>
+                               <name>isCustomerRoutable</name>
+                               <value>
+                                <boolean>0</boolean>
+                               </value>
+                              </member>
+                              <member>
+                               <name>modifyDate</name>
+                               <value>
+                                <string>2015-04-19T03:04:09+02:00</string>
+                               </value>
+                              </member>
+                              <member>
+                               <name>netmask</name>
+                               <value>
+                                <string>255.255.255.248</string>
+                               </value>
+                              </member>
+                              <member>
+                               <name>networkIdentifier</name>
+                               <value>
+                                <string>75.126.161.104</string>
+                               </value>
+                              </member>
+                              <member>
+                               <name>networkVlanId</name>
+                               <value>
+                                <int>815621</int>
+                               </value>
+                              </member>
+                              <member>
+                               <name>sortOrder</name>
+                               <value>
+                                <string>4</string>
+                               </value>
+                              </member>
+                              <member>
+                               <name>subnetType</name>
+                               <value>
+                                <string>PRIMARY</string>
+                               </value>
+                              </member>
+                              <member>
+                               <name>totalIpAddresses</name>
+                               <value>
+                                <int>8</int>
+                               </value>
+                              </member>
+                              <member>
+                               <name>usableIpAddressCount</name>
+                               <value>
+                                <int>5</int>
+                               </value>
+                              </member>
+                              <member>
+                               <name>version</name>
+                               <value>
+                                <int>4</int>
+                               </value>
+                              </member>
+                             </struct>
+                            </value>
+                           </member>
+                          </struct>
+                         </value>
+                        </member>
+                       </struct>
+                      </value>
+                     </data>
+                    </array>
+                   </value>
+                  </member>
+                 </struct>
+                </value>
+               </data>
+              </array>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>accountId</name>
+       <value>
+        <int>411826</int>
+       </value>
+      </member>
+      <member>
+       <name>connectionLimit</name>
+       <value>
+        <int>50</int>
+       </value>
+      </member>
+      <member>
+       <name>connectionLimitUnits</name>
+       <value>
+        <string>connections/second</string>
+       </value>
+      </member>
+      <member>
+       <name>dedicatedFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>76265</int>
+       </value>
+      </member>
+      <member>
+       <name>ipAddressId</name>
+       <value>
+        <int>25808370</int>
+       </value>
+      </member>
+      <member>
+       <name>securityCertificateId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>sslActiveFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>sslEnabledFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>highAvailabilityFlag</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>ipAddress</name>
+       <value>
+        <struct>
+         <member>
+          <name>id</name>
+          <value>
+           <int>25808370</int>
+          </value>
+         </member>
+         <member>
+          <name>ipAddress</name>
+          <value>
+           <string>159.8.117.72</string>
+          </value>
+         </member>
+         <member>
+          <name>isBroadcast</name>
+          <value>
+           <boolean>0</boolean>
+          </value>
+         </member>
+         <member>
+          <name>isGateway</name>
+          <value>
+           <boolean>0</boolean>
+          </value>
+         </member>
+         <member>
+          <name>isNetwork</name>
+          <value>
+           <boolean>0</boolean>
+          </value>
+         </member>
+         <member>
+          <name>isReserved</name>
+          <value>
+           <boolean>1</boolean>
+          </value>
+         </member>
+         <member>
+          <name>note</name>
+          <value>
+           <string>Load balancer VIP</string>
+          </value>
+         </member>
+         <member>
+          <name>subnetId</name>
+          <value>
+           <int>717366</int>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>loadBalancerHardware</name>
+       <value>
+        <array>
+         <data>
+          <value>
+           <struct>
+            <member>
+             <name>accountId</name>
+             <value>
+              <int>1</int>
+             </value>
+            </member>
+            <member>
+             <name>bareMetalInstanceFlag</name>
+             <value>
+              <int>0</int>
+             </value>
+            </member>
+            <member>
+             <name>domain</name>
+             <value>
+              <string>softlayer.com</string>
+             </value>
+            </member>
+            <member>
+             <name>fullyQualifiedDomainName</name>
+             <value>
+              <string>lb01.par01.softlayer.com</string>
+             </value>
+            </member>
+            <member>
+             <name>hardwareStatusId</name>
+             <value>
+              <int>5</int>
+             </value>
+            </member>
+            <member>
+             <name>hostname</name>
+             <value>
+              <string>lb01.par01</string>
+             </value>
+            </member>
+            <member>
+             <name>id</name>
+             <value>
+              <int>390016</int>
+             </value>
+            </member>
+            <member>
+             <name>notes</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>provisionDate</name>
+             <value>
+              <string/>
+             </value>
+            </member>
+            <member>
+             <name>serviceProviderId</name>
+             <value>
+              <int>1</int>
+             </value>
+            </member>
+            <member>
+             <name>serviceProviderResourceId</name>
+             <value>
+              <int>390016</int>
+             </value>
+            </member>
+            <member>
+             <name>datacenter</name>
+             <value>
+              <struct>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>449500</int>
+                </value>
+               </member>
+               <member>
+                <name>longName</name>
+                <value>
+                 <string>Paris 1</string>
+                </value>
+               </member>
+               <member>
+                <name>name</name>
+                <value>
+                 <string>par01</string>
+                </value>
+               </member>
+               <member>
+                <name>statusId</name>
+                <value>
+                 <int>2</int>
+                </value>
+               </member>
+              </struct>
+             </value>
+            </member>
+           </struct>
+          </value>
+         </data>
+        </array>
+       </value>
+      </member>
+      <member>
+       <name>virtualServers</name>
+       <value>
+        <array>
+         <data/>
+        </array>
+       </value>
+      </member>
+     </struct>
+    </value>
+   </data>
+  </array>
+ </value>
+</param>
+</params>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Billing_Item_cancelService.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Billing_Item_cancelService.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Billing_Item_cancelService.xml
new file mode 100644
index 0000000..082b69e
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Billing_Item_cancelService.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <boolean>1</boolean>
+ </value>
+</param>
+</params>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Location_Datacenter_getDatacenters.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Location_Datacenter_getDatacenters.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Location_Datacenter_getDatacenters.xml
new file mode 100644
index 0000000..dfbb9a8
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Location_Datacenter_getDatacenters.xml
@@ -0,0 +1,683 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <array>
+   <data>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>265592</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Amsterdam 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>ams01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>814994</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Amsterdam 3</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>ams03</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>3</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Dallas 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>154770</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Dallas 2</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal02</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>167092</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Dallas 4</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal04</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>138124</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Dallas 5</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal05</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>154820</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Dallas 6</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal06</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>142776</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Dallas 7</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal07</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>449494</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Dallas 9</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>dal09</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>449506</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Frankfurt 2</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>fra02</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>352494</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Hong Kong 2</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>hkg02</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>142775</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Houston 2</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>hou02</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>358694</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>London 2</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>lon02</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>449596</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Melbourne 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>mel01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>449600</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Mexico 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>mex01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>449610</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Montreal 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>mon01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>449500</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Paris 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>par01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>168642</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>San Jose 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>sjc01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>18171</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Seattle</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>sea01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>224092</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Singapore 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>sng01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>449612</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Sydney 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>syd01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>449604</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Tokyo 2</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>tok02</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>448994</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Toronto 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>tor01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+    <value>
+     <struct>
+      <member>
+       <name>id</name>
+       <value>
+        <int>37473</int>
+       </value>
+      </member>
+      <member>
+       <name>longName</name>
+       <value>
+        <string>Washington 1</string>
+       </value>
+      </member>
+      <member>
+       <name>name</name>
+       <value>
+        <string>wdc01</string>
+       </value>
+      </member>
+      <member>
+       <name>statusId</name>
+       <value>
+        <int>2</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+   </data>
+  </array>
+ </value>
+</param>
+</params>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject.xml
new file mode 100644
index 0000000..5dca377
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_deleteObject.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <boolean>1</boolean>
+ </value>
+</param>
+</params>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject.xml
new file mode 100644
index 0000000..5dca377
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_editObject.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <boolean>1</boolean>
+ </value>
+</param>
+</params>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem.xml
new file mode 100644
index 0000000..08356d3
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getBillingItem.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <struct>
+   <member>
+    <name>allowCancellationFlag</name>
+    <value>
+     <int>1</int>
+    </value>
+   </member>
+   <member>
+    <name>cancellationDate</name>
+    <value>
+     <string/>
+    </value>
+   </member>
+   <member>
+    <name>categoryCode</name>
+    <value>
+     <string>proxy_load_balancer</string>
+    </value>
+   </member>
+   <member>
+    <name>createDate</name>
+    <value>
+     <string>2015-04-24T15:19:21+02:00</string>
+    </value>
+   </member>
+   <member>
+    <name>cycleStartDate</name>
+    <value>
+     <string>2015-04-24T15:19:21+02:00</string>
+    </value>
+   </member>
+   <member>
+    <name>description</name>
+    <value>
+     <string>Load Balancer 50 connections</string>
+    </value>
+   </member>
+   <member>
+    <name>id</name>
+    <value>
+     <int>50844215</int>
+    </value>
+   </member>
+   <member>
+    <name>laborFee</name>
+    <value>
+     <string>0</string>
+    </value>
+   </member>
+   <member>
+    <name>laborFeeTaxRate</name>
+    <value>
+     <string>0</string>
+    </value>
+   </member>
+   <member>
+    <name>lastBillDate</name>
+    <value>
+     <string>2015-04-24T15:19:21+02:00</string>
+    </value>
+   </member>
+   <member>
+    <name>modifyDate</name>
+    <value>
+     <string>2015-04-24T15:19:23+02:00</string>
+    </value>
+   </member>
+   <member>
+    <name>nextBillDate</name>
+    <value>
+     <string>2015-05-01T07:00:00+02:00</string>
+    </value>
+   </member>
+   <member>
+    <name>notes</name>
+    <value>
+     <string>1.2.3.4</string>
+    </value>
+   </member>
+   <member>
+    <name>oneTimeFee</name>
+    <value>
+     <string>0</string>
+    </value>
+   </member>
+   <member>
+    <name>oneTimeFeeTaxRate</name>
+    <value>
+     <string>0</string>
+    </value>
+   </member>
+   <member>
+    <name>orderItemId</name>
+    <value>
+     <int>65021573</int>
+    </value>
+   </member>
+   <member>
+    <name>parentId</name>
+    <value>
+     <string/>
+    </value>
+   </member>
+   <member>
+    <name>recurringFee</name>
+    <value>
+     <string>29</string>
+    </value>
+   </member>
+   <member>
+    <name>recurringFeeTaxRate</name>
+    <value>
+     <string>0</string>
+    </value>
+   </member>
+   <member>
+    <name>recurringMonths</name>
+    <value>
+     <int>1</int>
+    </value>
+   </member>
+   <member>
+    <name>serviceProviderId</name>
+    <value>
+     <int>1</int>
+    </value>
+   </member>
+   <member>
+    <name>setupFee</name>
+    <value>
+     <string>0</string>
+    </value>
+   </member>
+   <member>
+    <name>setupFeeTaxRate</name>
+    <value>
+     <string>0</string>
+    </value>
+   </member>
+  </struct>
+ </value>
+</param>
+</params>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject.xml
new file mode 100644
index 0000000..b39fafc
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_getObject.xml
@@ -0,0 +1,803 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <struct>
+   <member>
+    <name>accountId</name>
+    <value>
+     <int>411826</int>
+    </value>
+   </member>
+   <member>
+    <name>connectionLimit</name>
+    <value>
+     <int>50</int>
+    </value>
+   </member>
+   <member>
+    <name>connectionLimitUnits</name>
+    <value>
+     <string>connections/second</string>
+    </value>
+   </member>
+   <member>
+    <name>dedicatedFlag</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>id</name>
+    <value>
+     <int>76185</int>
+    </value>
+   </member>
+   <member>
+    <name>ipAddressId</name>
+    <value>
+     <int>7303289</int>
+    </value>
+   </member>
+   <member>
+    <name>securityCertificateId</name>
+    <value>
+     <string/>
+    </value>
+   </member>
+   <member>
+    <name>sslActiveFlag</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>sslEnabledFlag</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>highAvailabilityFlag</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>managedResourceFlag</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>virtualServers</name>
+    <value>
+     <array>
+      <data>
+       <value>
+        <struct>
+         <member>
+          <name>allocation</name>
+          <value>
+           <int>100</int>
+          </value>
+         </member>
+         <member>
+          <name>id</name>
+          <value>
+           <int>132193</int>
+          </value>
+         </member>
+         <member>
+          <name>port</name>
+          <value>
+           <int>80</int>
+          </value>
+         </member>
+         <member>
+          <name>routingMethodId</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>virtualIpAddressId</name>
+          <value>
+           <int>76185</int>
+          </value>
+         </member>
+         <member>
+          <name>serviceGroups</name>
+          <value>
+           <array>
+            <data>
+             <value>
+              <struct>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>131113</int>
+                </value>
+               </member>
+               <member>
+                <name>routingMethodId</name>
+                <value>
+                 <int>10</int>
+                </value>
+               </member>
+               <member>
+                <name>routingTypeId</name>
+                <value>
+                 <int>2</int>
+                </value>
+               </member>
+               <member>
+                <name>timeout</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>services</name>
+                <value>
+                 <array>
+                  <data>
+                   <value>
+                    <struct>
+                     <member>
+                      <name>enabled</name>
+                      <value>
+                       <int>1</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>id</name>
+                      <value>
+                       <int>226227</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>ipAddressId</name>
+                      <value>
+                       <int>29341260</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>port</name>
+                      <value>
+                       <int>8000</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>status</name>
+                      <value>
+                       <string>UP</string>
+                      </value>
+                     </member>
+                     <member>
+                      <name>groupReferences</name>
+                      <value>
+                       <array>
+                        <data>
+                         <value>
+                          <struct>
+                           <member>
+                            <name>serviceGroupId</name>
+                            <value>
+                             <int>131113</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>serviceId</name>
+                            <value>
+                             <int>226227</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>weight</name>
+                            <value>
+                             <int>1</int>
+                            </value>
+                           </member>
+                          </struct>
+                         </value>
+                        </data>
+                       </array>
+                      </value>
+                     </member>
+                     <member>
+                      <name>ipAddress</name>
+                      <value>
+                       <struct>
+                        <member>
+                         <name>id</name>
+                         <value>
+                          <int>29341260</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>ipAddress</name>
+                         <value>
+                          <string>10.126.5.34</string>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isBroadcast</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isGateway</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isNetwork</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isReserved</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>subnetId</name>
+                         <value>
+                          <int>730826</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>subnet</name>
+                         <value>
+                          <struct>
+                           <member>
+                            <name>broadcastAddress</name>
+                            <value>
+                             <string>10.126.5.63</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>cidr</name>
+                            <value>
+                             <int>26</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>gateway</name>
+                            <value>
+                             <string>10.126.5.1</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>id</name>
+                            <value>
+                             <int>730826</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isCustomerOwned</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isCustomerRoutable</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>modifyDate</name>
+                            <value>
+                             <string>2015-04-19T03:14:26+02:00</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>netmask</name>
+                            <value>
+                             <string>255.255.255.192</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>networkIdentifier</name>
+                            <value>
+                             <string>10.126.5.0</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>networkVlanId</name>
+                            <value>
+                             <int>728518</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>sortOrder</name>
+                            <value>
+                             <string>4</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>subnetType</name>
+                            <value>
+                             <string>PRIMARY</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>totalIpAddresses</name>
+                            <value>
+                             <int>64</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>usableIpAddressCount</name>
+                            <value>
+                             <int>61</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>version</name>
+                            <value>
+                             <int>4</int>
+                            </value>
+                           </member>
+                          </struct>
+                         </value>
+                        </member>
+                       </struct>
+                      </value>
+                     </member>
+                    </struct>
+                   </value>
+                   <value>
+                    <struct>
+                     <member>
+                      <name>enabled</name>
+                      <value>
+                       <int>1</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>id</name>
+                      <value>
+                       <int>226229</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>ipAddressId</name>
+                      <value>
+                       <int>29341262</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>port</name>
+                      <value>
+                       <int>8080</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>status</name>
+                      <value>
+                       <string>UP</string>
+                      </value>
+                     </member>
+                     <member>
+                      <name>groupReferences</name>
+                      <value>
+                       <array>
+                        <data>
+                         <value>
+                          <struct>
+                           <member>
+                            <name>serviceGroupId</name>
+                            <value>
+                             <int>131113</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>serviceId</name>
+                            <value>
+                             <int>226229</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>weight</name>
+                            <value>
+                             <int>1</int>
+                            </value>
+                           </member>
+                          </struct>
+                         </value>
+                        </data>
+                       </array>
+                      </value>
+                     </member>
+                     <member>
+                      <name>ipAddress</name>
+                      <value>
+                       <struct>
+                        <member>
+                         <name>id</name>
+                         <value>
+                          <int>29341262</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>ipAddress</name>
+                         <value>
+                          <string>10.126.5.35</string>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isBroadcast</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isGateway</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isNetwork</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isReserved</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>subnetId</name>
+                         <value>
+                          <int>730826</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>subnet</name>
+                         <value>
+                          <struct>
+                           <member>
+                            <name>broadcastAddress</name>
+                            <value>
+                             <string>10.126.5.63</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>cidr</name>
+                            <value>
+                             <int>26</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>gateway</name>
+                            <value>
+                             <string>10.126.5.1</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>id</name>
+                            <value>
+                             <int>730826</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isCustomerOwned</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isCustomerRoutable</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>modifyDate</name>
+                            <value>
+                             <string>2015-04-19T03:14:26+02:00</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>netmask</name>
+                            <value>
+                             <string>255.255.255.192</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>networkIdentifier</name>
+                            <value>
+                             <string>10.126.5.0</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>networkVlanId</name>
+                            <value>
+                             <int>728518</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>sortOrder</name>
+                            <value>
+                             <string>4</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>subnetType</name>
+                            <value>
+                             <string>PRIMARY</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>totalIpAddresses</name>
+                            <value>
+                             <int>64</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>usableIpAddressCount</name>
+                            <value>
+                             <int>61</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>version</name>
+                            <value>
+                             <int>4</int>
+                            </value>
+                           </member>
+                          </struct>
+                         </value>
+                        </member>
+                       </struct>
+                      </value>
+                     </member>
+                    </struct>
+                   </value>
+                   <value>
+                    <struct>
+                     <member>
+                      <name>enabled</name>
+                      <value>
+                       <int>1</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>id</name>
+                      <value>
+                       <int>221145</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>ipAddressId</name>
+                      <value>
+                       <int>33499201</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>notes</name>
+                      <value>
+                       <string>inst-test-276a.example.com</string>
+                      </value>
+                     </member>
+                     <member>
+                      <name>port</name>
+                      <value>
+                       <int>8080</int>
+                      </value>
+                     </member>
+                     <member>
+                      <name>status</name>
+                      <value>
+                       <string>UP</string>
+                      </value>
+                     </member>
+                     <member>
+                      <name>groupReferences</name>
+                      <value>
+                       <array>
+                        <data>
+                         <value>
+                          <struct>
+                           <member>
+                            <name>serviceGroupId</name>
+                            <value>
+                             <int>131113</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>serviceId</name>
+                            <value>
+                             <int>221145</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>weight</name>
+                            <value>
+                             <int>1</int>
+                            </value>
+                           </member>
+                          </struct>
+                         </value>
+                        </data>
+                       </array>
+                      </value>
+                     </member>
+                     <member>
+                      <name>ipAddress</name>
+                      <value>
+                       <struct>
+                        <member>
+                         <name>id</name>
+                         <value>
+                          <int>33499201</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>ipAddress</name>
+                         <value>
+                          <string>75.75.75.75</string>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isBroadcast</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isGateway</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isNetwork</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>isReserved</name>
+                         <value>
+                          <boolean>0</boolean>
+                         </value>
+                        </member>
+                        <member>
+                         <name>subnetId</name>
+                         <value>
+                          <int>22958</int>
+                         </value>
+                        </member>
+                        <member>
+                         <name>subnet</name>
+                         <value>
+                          <struct>
+                           <member>
+                            <name>broadcastAddress</name>
+                            <value>
+                             <string>75.75.75.75</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>cidr</name>
+                            <value>
+                             <int>29</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>gateway</name>
+                            <value>
+                             <string>75.75.75.75</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>id</name>
+                            <value>
+                             <int>22958</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isCustomerOwned</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>isCustomerRoutable</name>
+                            <value>
+                             <boolean>0</boolean>
+                            </value>
+                           </member>
+                           <member>
+                            <name>modifyDate</name>
+                            <value>
+                             <string>2015-04-19T03:04:09+02:00</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>netmask</name>
+                            <value>
+                             <string>255.255.255.248</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>networkIdentifier</name>
+                            <value>
+                             <string>75.75.75.75</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>networkVlanId</name>
+                            <value>
+                             <int>815621</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>sortOrder</name>
+                            <value>
+                             <string>4</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>subnetType</name>
+                            <value>
+                             <string>PRIMARY</string>
+                            </value>
+                           </member>
+                           <member>
+                            <name>totalIpAddresses</name>
+                            <value>
+                             <int>8</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>usableIpAddressCount</name>
+                            <value>
+                             <int>5</int>
+                            </value>
+                           </member>
+                           <member>
+                            <name>version</name>
+                            <value>
+                             <int>4</int>
+                            </value>
+                           </member>
+                          </struct>
+                         </value>
+                        </member>
+                       </struct>
+                      </value>
+                     </member>
+                    </struct>
+                   </value>
+                  </data>
+                 </array>
+                </value>
+               </member>
+              </struct>
+             </value>
+            </data>
+           </array>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </data>
+     </array>
+    </value>
+   </member>
+  </struct>
+ </value>
+</param>
+</params>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5d7b1d84/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml
new file mode 100644
index 0000000..3ae4871
--- /dev/null
+++ b/libcloud/test/loadbalancer/fixtures/softlayer/v3__SoftLayer_Network_Subnet_IpAddress_getByIpAddress.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<params>
+<param>
+ <value>
+  <struct>
+   <member>
+    <name>id</name>
+    <value>
+     <int>29341260</int>
+    </value>
+   </member>
+   <member>
+    <name>ipAddress</name>
+    <value>
+     <string>10.126.5.34</string>
+    </value>
+   </member>
+   <member>
+    <name>isBroadcast</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>isGateway</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>isNetwork</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>isReserved</name>
+    <value>
+     <boolean>0</boolean>
+    </value>
+   </member>
+   <member>
+    <name>subnetId</name>
+    <value>
+     <int>730826</int>
+    </value>
+   </member>
+   <member>
+    <name>subnet</name>
+    <value>
+     <struct>
+      <member>
+       <name>broadcastAddress</name>
+       <value>
+        <string>10.126.5.63</string>
+       </value>
+      </member>
+      <member>
+       <name>cidr</name>
+       <value>
+        <int>26</int>
+       </value>
+      </member>
+      <member>
+       <name>gateway</name>
+       <value>
+        <string>10.126.5.1</string>
+       </value>
+      </member>
+      <member>
+       <name>id</name>
+       <value>
+        <int>730826</int>
+       </value>
+      </member>
+      <member>
+       <name>isCustomerOwned</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>isCustomerRoutable</name>
+       <value>
+        <boolean>0</boolean>
+       </value>
+      </member>
+      <member>
+       <name>modifyDate</name>
+       <value>
+        <string>2015-04-19T03:14:26+02:00</string>
+       </value>
+      </member>
+      <member>
+       <name>netmask</name>
+       <value>
+        <string>255.255.255.192</string>
+       </value>
+      </member>
+      <member>
+       <name>networkIdentifier</name>
+       <value>
+        <string>10.126.5.0</string>
+       </value>
+      </member>
+      <member>
+       <name>networkVlanId</name>
+       <value>
+        <int>728518</int>
+       </value>
+      </member>
+      <member>
+       <name>sortOrder</name>
+       <value>
+        <string>4</string>
+       </value>
+      </member>
+      <member>
+       <name>subnetType</name>
+       <value>
+        <string>PRIMARY</string>
+       </value>
+      </member>
+      <member>
+       <name>totalIpAddresses</name>
+       <value>
+        <int>64</int>
+       </value>
+      </member>
+      <member>
+       <name>usableIpAddressCount</name>
+       <value>
+        <int>61</int>
+       </value>
+      </member>
+      <member>
+       <name>version</name>
+       <value>
+        <int>4</int>
+       </value>
+      </member>
+     </struct>
+    </value>
+   </member>
+  </struct>
+ </value>
+</param>
+</params>