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:38 UTC

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

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>