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 2013/11/12 21:41:18 UTC

[3/5] git commit: Issue LIBCLOUD-416: Improvements to SoftLayer compute driver

Issue LIBCLOUD-416: Improvements to SoftLayer compute driver

Signed-off-by: Tomaz Muraus <to...@apache.org>


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

Branch: refs/heads/trunk
Commit: da011b08ad2dbbf9b515f30e80196b5cfdc0e5b3
Parents: 91987c5
Author: Markos Gogoulos <mg...@unweb.me>
Authored: Tue Nov 12 19:52:06 2013 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Tue Nov 12 21:17:19 2013 +0100

----------------------------------------------------------------------
 libcloud/compute/drivers/softlayer.py           |   141 +-
 .../v3_SoftLayer_Account_getVirtualGuests.xml   |  1823 ++-
 ...yer_Virtual_Guest_getCreateObjectOptions.xml | 12470 ++++++++++++++++-
 .../v3__SoftLayer_Virtual_Guest_getObject.xml   |   118 +-
 libcloud/test/compute/test_softlayer.py         |    30 +-
 5 files changed, 13800 insertions(+), 782 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/da011b08/libcloud/compute/drivers/softlayer.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/softlayer.py b/libcloud/compute/drivers/softlayer.py
index ab716d5..7c87a5f 100644
--- a/libcloud/compute/drivers/softlayer.py
+++ b/libcloud/compute/drivers/softlayer.py
@@ -25,25 +25,31 @@ from libcloud.compute.types import Provider, NodeState
 from libcloud.compute.base import NodeDriver, Node, NodeLocation, NodeSize, \
     NodeImage
 
+DEFAULT_DOMAIN = 'example.com'
+DEFAULT_CPU_SIZE = 1
+DEFAULT_RAM_SIZE = 2048
+DEFAULT_DISK_SIZE = 100
+
 DATACENTERS = {
     'hou02': {'country': 'US'},
-    'sea01': {'country': 'US'},
-    'wdc01': {'country': 'US'},
+    'sea01': {'country': 'US', 'name': 'Seattle - West Coast U.S.'},
+    'wdc01': {'country': 'US', 'name': 'Washington, DC - East Coast U.S.'},
     'dal01': {'country': 'US'},
     'dal02': {'country': 'US'},
     'dal04': {'country': 'US'},
-    'dal05': {'country': 'US'},
+    'dal05': {'country': 'US', 'name': 'Dallas - Central U.S.'},
     'dal06': {'country': 'US'},
     'dal07': {'country': 'US'},
-    'sjc01': {'country': 'US'},
-    'sng01': {'country': 'SG'},
-    'ams01': {'country': 'NL'},
+    'sjc01': {'country': 'US', 'name': 'San Jose - West Coast U.S.'},
+    'sng01': {'country': 'SG', 'name': 'Singapore - Southeast Asia'},
+    'ams01': {'country': 'NL', 'name': 'Amsterdam - Western Europe'},
 }
 
 NODE_STATE_MAP = {
     'RUNNING': NodeState.RUNNING,
-    'HALTED': NodeState.TERMINATED,
-    'PAUSED': NodeState.TERMINATED,
+    'HALTED': NodeState.UNKNOWN,
+    'PAUSED': NodeState.UNKNOWN,
+    'INITIATING': NodeState.PENDING
 }
 
 SL_BASE_TEMPLATES = [
@@ -58,20 +64,60 @@ SL_BASE_TEMPLATES = [
         'disk': 100,
         'cpus': 1,
     }, {
+        'name': '1 CPU, 2GB ram, 100GB',
+        'ram': 2 * 1024,
+        'disk': 100,
+        'cpus': 1,
+    }, {
+        'name': '1 CPU, 4GB ram, 100GB',
+        'ram': 4 * 1024,
+        'disk': 100,
+        'cpus': 1,
+    }, {
         'name': '2 CPU, 2GB ram, 100GB',
+        'ram': 2 * 1024,
+        'disk': 100,
+        'cpus': 2,
+    }, {
+        'name': '2 CPU, 4GB ram, 100GB',
         'ram': 4 * 1024,
         'disk': 100,
         'cpus': 2,
     }, {
+        'name': '2 CPU, 8GB ram, 100GB',
+        'ram': 8 * 1024,
+        'disk': 100,
+        'cpus': 2,
+    }, {
         'name': '4 CPU, 4GB ram, 100GB',
         'ram': 4 * 1024,
         'disk': 100,
         'cpus': 4,
     }, {
+        'name': '4 CPU, 8GB ram, 100GB',
+        'ram': 8 * 1024,
+        'disk': 100,
+        'cpus': 4,
+    }, {
+        'name': '6 CPU, 4GB ram, 100GB',
+        'ram': 4 * 1024,
+        'disk': 100,
+        'cpus': 6,
+    }, {
+        'name': '6 CPU, 8GB ram, 100GB',
+        'ram': 8 * 1024,
+        'disk': 100,
+        'cpus': 6,
+    }, {
         'name': '8 CPU, 8GB ram, 100GB',
         'ram': 8 * 1024,
         'disk': 100,
         'cpus': 8,
+    }, {
+        'name': '8 CPU, 16GB ram, 100GB',
+        'ram': 16 * 1024,
+        'disk': 100,
+        'cpus': 8,
     }]
 
 SL_TEMPLATES = {}
@@ -79,12 +125,7 @@ for i, template in enumerate(SL_BASE_TEMPLATES):
     # Add local disk templates
     local = template.copy()
     local['local_disk'] = True
-    SL_TEMPLATES['sl%s_local_disk' % (i + 1,)] = local
-
-    # Add san disk templates
-    san = template.copy()
-    san['local_disk'] = False
-    SL_TEMPLATES['sl%s_san_disk' % (i + 1,)] = san
+    SL_TEMPLATES[i] = local
 
 
 class SoftLayerException(LibcloudError):
@@ -177,18 +218,35 @@ class SoftLayerNodeDriver(NodeDriver):
         recurringFee = host.get('billingItem', {}).get('recurringFee', 0)
         recurringMonths = host.get('billingItem', {}).get('recurringMonths', 0)
         createDate = host.get('createDate', None)
+        #When machine is launching it gets state halted
+        #we change this to pending
+        state = NODE_STATE_MAP.get(
+                host['powerState']['keyName'], NodeState.UNKNOWN)
+        if not password and state == NodeState.UNKNOWN:
+            state = NODE_STATE_MAP['INITIATING']
+
+        public_ips = []
+        if 'primaryIpAddress' in host:
+            public_ips.append(host['primaryIpAddress'])
+        private_ips = []
+        if 'primaryBackendIpAddress' in host:
+            private_ips.append(host['primaryBackendIpAddress'])
 
         return Node(
             id=host['id'],
             name=host['hostname'],
-            state=NODE_STATE_MAP.get(
-                host['powerState']['keyName'], NodeState.UNKNOWN
-            ),
-            public_ips=[host['primaryIpAddress']],
-            private_ips=[host['primaryBackendIpAddress']],
+            state=state,
+            public_ips=public_ips,
+            private_ips=private_ips,
             driver=self,
             extra={
                 'password': password,
+                'maxCpu': host.get('maxCpu', None),
+                'datacenter': host.get('datacenter', {}).get('longName', None),
+                'maxMemory': host.get('maxMemory', None),
+                'image': host.get('operatingSystem', {}).get('softwareLicense',
+                         {}).get('softwareDescription',
+                         {}).get('longDescription', None),
                 'hourlyRecurringFee': hourlyRecurringFee,
                 'recurringFee': recurringFee,
                 'recurringMonths': recurringMonths,
@@ -208,6 +266,18 @@ class SoftLayerNodeDriver(NodeDriver):
         )
         return True
 
+    def ex_stop_node(self, node):
+        self.connection.request(
+            'SoftLayer_Virtual_Guest', 'powerOff', id=node.id
+        )
+        return True
+
+    def ex_start_node(self, node):
+        self.connection.request(
+            'SoftLayer_Virtual_Guest', 'powerOn', id=node.id
+        )
+        return True
+
     def _get_order_information(self, node_id, timeout=1200, check_interval=5):
         mask = {
             'billingItem': '',
@@ -260,14 +330,16 @@ class SoftLayerNodeDriver(NodeDriver):
         elif 'image' in kwargs:
             os = kwargs['image'].id
 
-        size = kwargs.get('size', NodeSize(id=None, name='Custom', ram=None,
+        size = kwargs.get('size', NodeSize(id=123, name='Custom', ram=None,
                                            disk=None, bandwidth=None,
                                            price=None,
                                            driver=self.connection.driver))
-
-        ex_size_data = SL_TEMPLATES.get(size.id) or {}
-        cpu_count = kwargs.get('ex_cpus') or ex_size_data.get('cpus') or 1
-        ram = kwargs.get('ex_ram') or size.ram or 2048
+        ex_size_data = SL_TEMPLATES.get(int(size.id)) or {}
+        #plan keys are ints
+        cpu_count = kwargs.get('ex_cpus') or ex_size_data.get('cpus') or \
+            DEFAULT_CPU_SIZE
+        ram = kwargs.get('ex_ram') or ex_size_data.get('ram') or \
+            DEFAULT_RAM_SIZE
         bandwidth = kwargs.get('ex_bandwidth') or size.bandwidth or 10
         hourly = 'true' if kwargs.get('ex_hourly', True) else 'false'
 
@@ -278,7 +350,7 @@ class SoftLayerNodeDriver(NodeDriver):
         if kwargs.get('ex_local_disk') is False:
             local_disk = 'false'
 
-        disk_size = 100
+        disk_size = DEFAULT_DISK_SIZE
         if size.disk:
             disk_size = size.disk
         if kwargs.get('ex_disk'):
@@ -297,7 +369,7 @@ class SoftLayerNodeDriver(NodeDriver):
         if domain is None:
             # TODO: domain is a required argument for the Sofylayer API, but it
             # it shouldn't be.
-            domain = 'example.com'
+            domain = DEFAULT_DOMAIN
 
         newCCI = {
             'hostname': name,
@@ -360,21 +432,28 @@ class SoftLayerNodeDriver(NodeDriver):
 
     def _to_loc(self, loc):
         country = 'UNKNOWN'
-        if loc['name'] in DATACENTERS:
-            country = DATACENTERS[loc['name']]['country']
-        return NodeLocation(id=loc['name'], name=loc['longName'],
+        loc_id = loc['template']['datacenter']['name']
+        name = loc_id
+
+        if loc_id in DATACENTERS:
+            country = DATACENTERS[loc_id]['country']
+            name = DATACENTERS[loc_id].get('name', loc_id)
+        return NodeLocation(id=loc_id, name=name,
                             country=country, driver=self)
 
     def list_locations(self):
         res = self.connection.request(
-            'SoftLayer_Location_Datacenter', 'getDatacenters'
+            'SoftLayer_Virtual_Guest', 'getCreateObjectOptions'
         ).object
-        return [self._to_loc(l) for l in res]
+        return [self._to_loc(l) for l in res['datacenters']]
 
     def list_nodes(self):
         mask = {
             'virtualGuests': {
                 'powerState': '',
+                'hostname': '',
+                'maxMemory': '',
+                'datacenter': '',
                 'operatingSystem': {'passwords': ''},
                 'billingItem': '',
             },

http://git-wip-us.apache.org/repos/asf/libcloud/blob/da011b08/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml b/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml
index ddabcc5..b37dc47 100644
--- a/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml
+++ b/libcloud/test/compute/fixtures/softlayer/v3_SoftLayer_Account_getVirtualGuests.xml
@@ -7,51 +7,63 @@
     <value>
      <struct>
       <member>
-       <name>privateNetworkOnlyFlag</name>
+       <name>accountId</name>
        <value>
-        <boolean>0</boolean>
+        <int>282402</int>
        </value>
       </member>
       <member>
-       <name>id</name>
+       <name>createDate</name>
        <value>
-        <int>1832</int>
+        <string>2013-11-06T14:38:36+01:00</string>
        </value>
       </member>
       <member>
-       <name>accountId</name>
+       <name>dedicatedAccountHostOnlyFlag</name>
        <value>
-        <int>11111</int>
+        <boolean>0</boolean>
        </value>
       </member>
       <member>
-       <name>statusId</name>
+       <name>domain</name>
        <value>
-        <int>1001</int>
+        <string>example.com</string>
        </value>
       </member>
       <member>
-       <name>uuid</name>
+       <name>fullyQualifiedDomainName</name>
        <value>
-        <string>eaa9aaa2-8e2e-d6e0-ce11-6f01e765779c</string>
+        <string>libcloud-testing1.example.com</string>
        </value>
       </member>
       <member>
        <name>hostname</name>
        <value>
-        <string>test1</string>
+        <string>libcloud-testing1</string>
        </value>
       </member>
       <member>
-       <name>domain</name>
+       <name>id</name>
+       <value>
+        <int>2875152</int>
+       </value>
+      </member>
+      <member>
+       <name>lastPowerStateId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>lastVerifiedDate</name>
        <value>
-        <string>libcloud.org</string>
+        <string/>
        </value>
       </member>
       <member>
        <name>maxCpu</name>
        <value>
-        <int>2</int>
+        <int>1</int>
        </value>
       </member>
       <member>
@@ -67,148 +79,454 @@
        </value>
       </member>
       <member>
-       <name>startCpus</name>
+       <name>metricPollDate</name>
        <value>
-        <int>2</int>
+        <string/>
        </value>
       </member>
       <member>
-       <name>createDate</name>
+       <name>modifyDate</name>
        <value>
-        <string>2009-09-04T14:49:45-05:00</string>
+        <string>2013-11-06T14:41:25+01:00</string>
        </value>
       </member>
       <member>
-       <name>modifyDate</name>
+       <name>startCpus</name>
        <value>
-        <string>2010-04-22T13:08:47-05:00</string>
+        <int>1</int>
        </value>
       </member>
       <member>
-       <name>metricPollDate</name>
+       <name>statusId</name>
        <value>
-        <string>2010-04-22T13:08:00-05:00</string>
+        <int>1001</int>
        </value>
       </member>
       <member>
-       <name>dedicatedAccountHostOnlyFlag</name>
+       <name>uuid</name>
        <value>
-        <boolean>0</boolean>
+        <string>ab98fc82-9d74-bc34-6701-f88957ebbba8</string>
        </value>
       </member>
       <member>
-       <name>powerState</name>
+       <name>billingItem</name>
        <value>
         <struct>
          <member>
-          <name>name</name>
+          <name>allowCancellationFlag</name>
           <value>
-           <string>Running</string>
+           <int>1</int>
           </value>
          </member>
          <member>
-          <name>keyName</name>
+          <name>cancellationDate</name>
           <value>
-           <string>RUNNING</string>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>categoryCode</name>
+          <value>
+           <string>guest_core</string>
+          </value>
+         </member>
+         <member>
+          <name>createDate</name>
+          <value>
+           <string>2013-11-06T14:38:38+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>currentHourlyCharge</name>
+          <value>
+           <string>.112</string>
+          </value>
+         </member>
+         <member>
+          <name>cycleStartDate</name>
+          <value>
+           <string>2013-11-06T14:43:20+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>description</name>
+          <value>
+           <string>1 x 2.0 GHz Core</string>
+          </value>
+         </member>
+         <member>
+          <name>domainName</name>
+          <value>
+           <string>example.com</string>
+          </value>
+         </member>
+         <member>
+          <name>hostName</name>
+          <value>
+           <string>libcloud-testing1</string>
+          </value>
+         </member>
+         <member>
+          <name>hourlyRecurringFee</name>
+          <value>
+           <string>.056</string>
+          </value>
+         </member>
+         <member>
+          <name>hoursUsed</name>
+          <value>
+           <string>2</string>
+          </value>
+         </member>
+         <member>
+          <name>id</name>
+          <value>
+           <int>16447700</int>
+          </value>
+         </member>
+         <member>
+          <name>laborFee</name>
+          <value>
+           <string>0</string>
+          </value>
+         </member>
+         <member>
+          <name>laborFeeTaxRate</name>
+          <value>
+           <string>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>lastBillDate</name>
+          <value>
+           <string>2013-11-06T14:43:20+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>modifyDate</name>
+          <value>
+           <string>2013-11-06T14:43:20+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>nextBillDate</name>
+          <value>
+           <string>2013-11-28T07:00:00+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>oneTimeFee</name>
+          <value>
+           <string>0</string>
+          </value>
+         </member>
+         <member>
+          <name>oneTimeFeeTaxRate</name>
+          <value>
+           <string>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>orderItemId</name>
+          <value>
+           <int>22662589</int>
+          </value>
+         </member>
+         <member>
+          <name>parentId</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>recurringFee</name>
+          <value>
+           <string>.112</string>
+          </value>
+         </member>
+         <member>
+          <name>recurringFeeTaxRate</name>
+          <value>
+           <string>.21</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>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>resourceTableId</name>
+          <value>
+           <int>2875152</int>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>datacenter</name>
+       <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>
         </struct>
        </value>
       </member>
       <member>
+       <name>globalIdentifier</name>
+       <value>
+        <string>9ee84f87-e558-4548-9b89-fe7d997706b8</string>
+       </value>
+      </member>
+      <member>
        <name>operatingSystem</name>
        <value>
-         <data>
+        <struct>
+         <member>
+          <name>hardwareId</name>
           <value>
-           <struct>
-            <member>
-             <name>id</name>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>id</name>
+          <value>
+           <int>2200995</int>
+          </value>
+         </member>
+         <member>
+          <name>manufacturerLicenseInstance</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>passwords</name>
+          <value>
+           <array>
+            <data>
              <value>
-              <int>191115</int>
+              <struct>
+               <member>
+                <name>createDate</name>
+                <value>
+                 <string>2013-11-06T14:38:56+01:00</string>
+                </value>
+               </member>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>1856975</int>
+                </value>
+               </member>
+               <member>
+                <name>modifyDate</name>
+                <value>
+                 <string>2013-11-06T14:38:56+01:00</string>
+                </value>
+               </member>
+               <member>
+                <name>password</name>
+                <value>
+                 <string>L3TJVubf</string>
+                </value>
+               </member>
+               <member>
+                <name>port</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>softwareId</name>
+                <value>
+                 <int>2200995</int>
+                </value>
+               </member>
+               <member>
+                <name>username</name>
+                <value>
+                 <string>root</string>
+                </value>
+               </member>
+              </struct>
              </value>
-            </member>
+            </data>
+           </array>
+          </value>
+         </member>
+         <member>
+          <name>softwareLicense</name>
+          <value>
+           <struct>
             <member>
-             <name>hardwareId</name>
+             <name>id</name>
              <value>
-              <string />
+              <int>1523</int>
              </value>
             </member>
             <member>
-             <name>manufacturerLicenseInstance</name>
+             <name>softwareDescriptionId</name>
              <value>
-              <string />
+              <int>1163</int>
              </value>
             </member>
             <member>
-             <name>passwords</name>
+             <name>softwareDescription</name>
              <value>
-              <array>
-               <data>
+              <struct>
+               <member>
+                <name>controlPanel</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>1163</int>
+                </value>
+               </member>
+               <member>
+                <name>longDescription</name>
+                <value>
+                 <string>Debian / Debian / 7.0.0-64 Minimal for CCI</string>
+                </value>
+               </member>
+               <member>
+                <name>manufacturer</name>
+                <value>
+                 <string>Debian</string>
+                </value>
+               </member>
+               <member>
+                <name>name</name>
+                <value>
+                 <string>Debian</string>
+                </value>
+               </member>
+               <member>
+                <name>operatingSystem</name>
+                <value>
+                 <int>1</int>
+                </value>
+               </member>
+               <member>
+                <name>referenceCode</name>
+                <value>
+                 <string>DEBIAN_7_64</string>
+                </value>
+               </member>
+               <member>
+                <name>upgradeSoftwareDescriptionId</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>upgradeSwDescId</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>version</name>
+                <value>
+                 <string>7.0.0-64 Minimal for CCI</string>
+                </value>
+               </member>
+               <member>
+                <name>virtualLicense</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>virtualizationPlatform</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>requiredUser</name>
                 <value>
-                 <struct>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>166980</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>softwareId</name>
-                   <value>
-                    <int>191115</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>username</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>password</name>
-                   <value>
-                    <string>TEST</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>createDate</name>
-                   <value>
-                    <string>2009-09-04T14:49:51-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>modifyDate</name>
-                   <value>
-                    <string>2009-09-04T14:49:51-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>port</name>
-                   <value>
-                    <string />
-                   </value>
-                  </member>
-                 </struct>
+                 <string>root</string>
                 </value>
-               </data>
-              </array>
+               </member>
+              </struct>
              </value>
             </member>
            </struct>
           </value>
-         </data>
+         </member>
+        </struct>
        </value>
       </member>
       <member>
-       <name>primaryIpAddress</name>
+       <name>powerState</name>
        <value>
-        <string>67.254.254.254</string>
+        <struct>
+         <member>
+          <name>keyName</name>
+          <value>
+           <string>RUNNING</string>
+          </value>
+         </member>
+         <member>
+          <name>name</name>
+          <value>
+           <string>Running</string>
+          </value>
+         </member>
+        </struct>
        </value>
       </member>
       <member>
        <name>primaryBackendIpAddress</name>
        <value>
-        <string>10.254.254.254</string>
+        <string>10.55.43.130</string>
+       </value>
+      </member>
+      <member>
+       <name>primaryIpAddress</name>
+       <value>
+        <string>50.23.95.202</string>
        </value>
       </member>
      </struct>
@@ -216,45 +534,57 @@
     <value>
      <struct>
       <member>
-       <name>privateNetworkOnlyFlag</name>
+       <name>accountId</name>
        <value>
-        <boolean>0</boolean>
+        <int>282402</int>
        </value>
       </member>
       <member>
-       <name>id</name>
+       <name>createDate</name>
        <value>
-        <int>13402</int>
+        <string>2013-11-06T15:14:52+01:00</string>
        </value>
       </member>
       <member>
-       <name>accountId</name>
+       <name>dedicatedAccountHostOnlyFlag</name>
        <value>
-        <int>11111</int>
+        <boolean>0</boolean>
        </value>
       </member>
       <member>
-       <name>statusId</name>
+       <name>domain</name>
        <value>
-        <int>1001</int>
+        <string>example.com</string>
        </value>
       </member>
       <member>
-       <name>uuid</name>
+       <name>fullyQualifiedDomainName</name>
        <value>
-        <string>9e9e9e99-4ed9-4645-19f3-55ee4e404d56</string>
+        <string>libcloud-testing2.example.com</string>
        </value>
       </member>
       <member>
        <name>hostname</name>
        <value>
-        <string>test2</string>
+        <string>libcloud-testing2</string>
        </value>
       </member>
       <member>
-       <name>domain</name>
+       <name>id</name>
+       <value>
+        <int>2875213</int>
+       </value>
+      </member>
+      <member>
+       <name>lastPowerStateId</name>
+       <value>
+        <string/>
+       </value>
+      </member>
+      <member>
+       <name>lastVerifiedDate</name>
        <value>
-        <string>libcloud.org</string>
+        <string/>
        </value>
       </member>
       <member>
@@ -272,154 +602,403 @@
       <member>
        <name>maxMemory</name>
        <value>
-        <int>1024</int>
+        <int>2048</int>
        </value>
       </member>
       <member>
-       <name>startCpus</name>
+       <name>metricPollDate</name>
        <value>
-        <int>1</int>
+        <string/>
        </value>
       </member>
       <member>
-       <name>createDate</name>
+       <name>modifyDate</name>
        <value>
-        <string>2010-03-23T17:06:13-05:00</string>
+        <string>2013-11-06T15:17:56+01:00</string>
        </value>
       </member>
       <member>
-       <name>modifyDate</name>
+       <name>startCpus</name>
        <value>
-        <string>2010-04-22T13:08:43-05:00</string>
+        <int>1</int>
        </value>
       </member>
       <member>
-       <name>metricPollDate</name>
+       <name>statusId</name>
        <value>
-        <string>2010-04-22T13:08:00-05:00</string>
+        <int>1001</int>
        </value>
       </member>
       <member>
-       <name>dedicatedAccountHostOnlyFlag</name>
+       <name>uuid</name>
        <value>
-        <boolean>0</boolean>
+        <string>8f10bea1-3e26-70d7-d581-0d9e820eae0c</string>
        </value>
       </member>
       <member>
-       <name>powerState</name>
+       <name>billingItem</name>
        <value>
         <struct>
          <member>
-          <name>name</name>
+          <name>allowCancellationFlag</name>
           <value>
-           <string>Running</string>
+           <int>1</int>
           </value>
          </member>
          <member>
-          <name>keyName</name>
+          <name>cancellationDate</name>
           <value>
-           <string>RUNNING</string>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>categoryCode</name>
+          <value>
+           <string>guest_core</string>
+          </value>
+         </member>
+         <member>
+          <name>createDate</name>
+          <value>
+           <string>2013-11-06T15:14:55+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>currentHourlyCharge</name>
+          <value>
+           <string>.056</string>
+          </value>
+         </member>
+         <member>
+          <name>cycleStartDate</name>
+          <value>
+           <string>2013-11-06T15:19:50+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>description</name>
+          <value>
+           <string>1 x 2.0 GHz Core</string>
+          </value>
+         </member>
+         <member>
+          <name>domainName</name>
+          <value>
+           <string>example.com</string>
+          </value>
+         </member>
+         <member>
+          <name>hostName</name>
+          <value>
+           <string>libcloud-testing2</string>
+          </value>
+         </member>
+         <member>
+          <name>hourlyRecurringFee</name>
+          <value>
+           <string>.056</string>
+          </value>
+         </member>
+         <member>
+          <name>hoursUsed</name>
+          <value>
+           <string>1</string>
+          </value>
+         </member>
+         <member>
+          <name>id</name>
+          <value>
+           <int>16447908</int>
+          </value>
+         </member>
+         <member>
+          <name>laborFee</name>
+          <value>
+           <string>0</string>
+          </value>
+         </member>
+         <member>
+          <name>laborFeeTaxRate</name>
+          <value>
+           <string>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>lastBillDate</name>
+          <value>
+           <string>2013-11-06T15:19:50+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>modifyDate</name>
+          <value>
+           <string>2013-11-06T15:19:50+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>nextBillDate</name>
+          <value>
+           <string>2013-11-28T07:00:00+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>oneTimeFee</name>
+          <value>
+           <string>0</string>
+          </value>
+         </member>
+         <member>
+          <name>oneTimeFeeTaxRate</name>
+          <value>
+           <string>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>orderItemId</name>
+          <value>
+           <int>22663091</int>
+          </value>
+         </member>
+         <member>
+          <name>parentId</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>recurringFee</name>
+          <value>
+           <string>.056</string>
+          </value>
+         </member>
+         <member>
+          <name>recurringFeeTaxRate</name>
+          <value>
+           <string>.21</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>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>resourceTableId</name>
+          <value>
+           <int>2875213</int>
+          </value>
+         </member>
+        </struct>
+       </value>
+      </member>
+      <member>
+       <name>datacenter</name>
+       <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>
         </struct>
        </value>
       </member>
       <member>
-       <name>softwareComponents</name>
+       <name>globalIdentifier</name>
        <value>
-        <array>
-         <data>
+        <string>5c704e34-6ee7-4efe-9722-af9d406fa930</string>
+       </value>
+      </member>
+      <member>
+       <name>operatingSystem</name>
+       <value>
+        <struct>
+         <member>
+          <name>hardwareId</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>id</name>
+          <value>
+           <int>2201027</int>
+          </value>
+         </member>
+         <member>
+          <name>manufacturerLicenseInstance</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>softwareLicense</name>
           <value>
            <struct>
             <member>
              <name>id</name>
              <value>
-              <int>257314</int>
-             </value>
-            </member>
-            <member>
-             <name>hardwareId</name>
-             <value>
-              <string />
+              <int>1523</int>
              </value>
             </member>
             <member>
-             <name>manufacturerLicenseInstance</name>
+             <name>softwareDescriptionId</name>
              <value>
-              <string />
+              <int>1163</int>
              </value>
             </member>
             <member>
-             <name>passwords</name>
+             <name>softwareDescription</name>
              <value>
-              <array>
-               <data>
+              <struct>
+               <member>
+                <name>controlPanel</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>1163</int>
+                </value>
+               </member>
+               <member>
+                <name>longDescription</name>
+                <value>
+                 <string>Debian / Debian / 7.0.0-64 Minimal for CCI</string>
+                </value>
+               </member>
+               <member>
+                <name>manufacturer</name>
+                <value>
+                 <string>Debian</string>
+                </value>
+               </member>
+               <member>
+                <name>name</name>
+                <value>
+                 <string>Debian</string>
+                </value>
+               </member>
+               <member>
+                <name>operatingSystem</name>
+                <value>
+                 <int>1</int>
+                </value>
+               </member>
+               <member>
+                <name>referenceCode</name>
+                <value>
+                 <string>DEBIAN_7_64</string>
+                </value>
+               </member>
+               <member>
+                <name>upgradeSoftwareDescriptionId</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>upgradeSwDescId</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>version</name>
+                <value>
+                 <string>7.0.0-64 Minimal for CCI</string>
+                </value>
+               </member>
+               <member>
+                <name>virtualLicense</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>virtualizationPlatform</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>requiredUser</name>
                 <value>
-                 <struct>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>235268</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>softwareId</name>
-                   <value>
-                    <int>257314</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>username</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>password</name>
-                   <value>
-                    <string>TEST</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>createDate</name>
-                   <value>
-                    <string>2010-03-23T17:06:17-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>modifyDate</name>
-                   <value>
-                    <string>2010-03-23T17:06:17-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>port</name>
-                   <value>
-                    <string />
-                   </value>
-                  </member>
-                 </struct>
+                 <string>root</string>
                 </value>
-               </data>
-              </array>
+               </member>
+              </struct>
              </value>
             </member>
            </struct>
           </value>
-         </data>
-        </array>
+         </member>
+        </struct>
        </value>
       </member>
       <member>
-       <name>primaryIpAddress</name>
+       <name>powerState</name>
        <value>
-        <string>174.254.254.254</string>
+        <struct>
+         <member>
+          <name>keyName</name>
+          <value>
+           <string>INITIATING</string>
+          </value>
+         </member>
+         <member>
+          <name>name</name>
+          <value>
+           <string>Running</string>
+          </value>
+         </member>
+        </struct>
        </value>
       </member>
       <member>
        <name>primaryBackendIpAddress</name>
        <value>
-        <string>10.254.254.254</string>
+        <string>10.55.43.131</string>
+       </value>
+      </member>
+      <member>
+       <name>primaryIpAddress</name>
+       <value>
+        <string>50.23.95.203</string>
        </value>
       </member>
      </struct>
@@ -427,515 +1006,495 @@
     <value>
      <struct>
       <member>
-       <name>privateNetworkOnlyFlag</name>
+       <name>accountId</name>
        <value>
-        <boolean>0</boolean>
+        <int>282402</int>
        </value>
       </member>
       <member>
-       <name>id</name>
+       <name>createDate</name>
        <value>
-        <int>19293</int>
+        <string>2013-11-06T15:36:53+01:00</string>
        </value>
       </member>
       <member>
-       <name>accountId</name>
+       <name>dedicatedAccountHostOnlyFlag</name>
        <value>
-        <int>11111</int>
+        <boolean>0</boolean>
        </value>
       </member>
       <member>
-       <name>statusId</name>
+       <name>domain</name>
        <value>
-        <int>1001</int>
+        <string>example.com</string>
        </value>
       </member>
       <member>
-       <name>uuid</name>
+       <name>fullyQualifiedDomainName</name>
        <value>
-        <string>9f99e19b-2c61-9cd5-2081-67b57fd7977b</string>
+        <string>libcloud-testing.example.com</string>
        </value>
       </member>
       <member>
        <name>hostname</name>
        <value>
-        <string>test3</string>
+        <string>libcloud-testing</string>
        </value>
       </member>
       <member>
-       <name>domain</name>
+       <name>id</name>
        <value>
-        <string>libcloud.org</string>
+        <int>2875273</int>
        </value>
       </member>
       <member>
-       <name>maxCpu</name>
+       <name>lastPowerStateId</name>
        <value>
-        <int>2</int>
+        <string/>
        </value>
       </member>
       <member>
-       <name>maxCpuUnits</name>
+       <name>lastVerifiedDate</name>
        <value>
-        <string>CORE</string>
+        <string/>
        </value>
       </member>
       <member>
-       <name>maxMemory</name>
+       <name>maxCpu</name>
        <value>
-        <int>1024</int>
+        <int>1</int>
        </value>
       </member>
       <member>
-       <name>startCpus</name>
+       <name>maxCpuUnits</name>
        <value>
-        <int>2</int>
+        <string>CORE</string>
        </value>
       </member>
       <member>
-       <name>createDate</name>
+       <name>maxMemory</name>
        <value>
-        <string>2010-04-22T12:38:53-05:00</string>
+        <int>2048</int>
        </value>
       </member>
       <member>
-       <name>modifyDate</name>
+       <name>metricPollDate</name>
        <value>
-        <string>2010-04-22T13:08:01-05:00</string>
+        <string/>
        </value>
       </member>
       <member>
-       <name>metricPollDate</name>
+       <name>modifyDate</name>
        <value>
-        <string>2010-04-22T13:08:00-05:00</string>
+        <string>2013-11-06T15:39:35+01:00</string>
        </value>
       </member>
       <member>
-       <name>dedicatedAccountHostOnlyFlag</name>
+       <name>startCpus</name>
        <value>
-        <boolean>1</boolean>
+        <int>1</int>
        </value>
       </member>
       <member>
-       <name>powerState</name>
+       <name>statusId</name>
+       <value>
+        <int>1001</int>
+       </value>
+      </member>
+      <member>
+       <name>uuid</name>
+       <value>
+        <string>f86371c5-103b-34d3-ae27-e4dafa1c4718</string>
+       </value>
+      </member>
+      <member>
+       <name>billingItem</name>
        <value>
         <struct>
          <member>
-          <name>name</name>
+          <name>allowCancellationFlag</name>
           <value>
-           <string>Running</string>
+           <int>1</int>
           </value>
          </member>
          <member>
-          <name>keyName</name>
+          <name>cancellationDate</name>
           <value>
-           <string>RUNNING</string>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>categoryCode</name>
+          <value>
+           <string>guest_core</string>
+          </value>
+         </member>
+         <member>
+          <name>createDate</name>
+          <value>
+           <string>2013-11-06T15:36:55+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>currentHourlyCharge</name>
+          <value>
+           <string>.056</string>
+          </value>
+         </member>
+         <member>
+          <name>cycleStartDate</name>
+          <value>
+           <string>2013-11-06T15:41:31+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>description</name>
+          <value>
+           <string>1 x 2.0 GHz Core</string>
+          </value>
+         </member>
+         <member>
+          <name>domainName</name>
+          <value>
+           <string>example.com</string>
+          </value>
+         </member>
+         <member>
+          <name>hostName</name>
+          <value>
+           <string>libcloud-testing</string>
+          </value>
+         </member>
+         <member>
+          <name>hourlyRecurringFee</name>
+          <value>
+           <string>.056</string>
+          </value>
+         </member>
+         <member>
+          <name>hoursUsed</name>
+          <value>
+           <string>1</string>
+          </value>
+         </member>
+         <member>
+          <name>id</name>
+          <value>
+           <int>16448162</int>
+          </value>
+         </member>
+         <member>
+          <name>laborFee</name>
+          <value>
+           <string>0</string>
+          </value>
+         </member>
+         <member>
+          <name>laborFeeTaxRate</name>
+          <value>
+           <string>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>lastBillDate</name>
+          <value>
+           <string>2013-11-06T15:41:31+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>modifyDate</name>
+          <value>
+           <string>2013-11-06T15:41:31+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>nextBillDate</name>
+          <value>
+           <string>2013-11-28T07:00:00+01:00</string>
+          </value>
+         </member>
+         <member>
+          <name>oneTimeFee</name>
+          <value>
+           <string>0</string>
+          </value>
+         </member>
+         <member>
+          <name>oneTimeFeeTaxRate</name>
+          <value>
+           <string>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>orderItemId</name>
+          <value>
+           <int>22663578</int>
+          </value>
+         </member>
+         <member>
+          <name>parentId</name>
+          <value>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>recurringFee</name>
+          <value>
+           <string>.056</string>
+          </value>
+         </member>
+         <member>
+          <name>recurringFeeTaxRate</name>
+          <value>
+           <string>.21</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>.21</string>
+          </value>
+         </member>
+         <member>
+          <name>resourceTableId</name>
+          <value>
+           <int>2875273</int>
           </value>
          </member>
         </struct>
        </value>
       </member>
       <member>
-       <name>softwareComponents</name>
+       <name>datacenter</name>
        <value>
-        <array>
-         <data>
+        <struct>
+         <member>
+          <name>id</name>
           <value>
-           <struct>
-            <member>
-             <name>id</name>
-             <value>
-              <int>277185</int>
-             </value>
-            </member>
-            <member>
-             <name>hardwareId</name>
-             <value>
-              <string />
-             </value>
-            </member>
-            <member>
-             <name>manufacturerLicenseInstance</name>
-             <value>
-              <string />
-             </value>
-            </member>
-            <member>
-             <name>passwords</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>250826</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>softwareId</name>
-                   <value>
-                    <int>277185</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>username</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>password</name>
-                   <value>
-                    <string>TEST</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>createDate</name>
-                   <value>
-                    <string>2010-04-22T12:38:57-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>modifyDate</name>
-                   <value>
-                    <string>2010-04-22T12:38:57-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>port</name>
-                   <value>
-                    <string />
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-           </struct>
+           <int>168642</int>
           </value>
-         </data>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>primaryIpAddress</name>
-       <value>
-        <string>174.254.254.254</string>
-       </value>
-      </member>
-      <member>
-       <name>primaryBackendIpAddress</name>
-       <value>
-        <string>10.254.254.254</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>privateNetworkOnlyFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>19288</int>
-       </value>
-      </member>
-      <member>
-       <name>accountId</name>
-       <value>
-        <int>11111</int>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>1001</int>
-       </value>
-      </member>
-      <member>
-       <name>uuid</name>
-       <value>
-        <string>999f77d9-679b-c47d-136d-04cd302384ec</string>
-       </value>
-      </member>
-      <member>
-       <name>hostname</name>
-       <value>
-        <string>test4</string>
-       </value>
-      </member>
-      <member>
-       <name>domain</name>
-       <value>
-        <string>libcloud.org</string>
-       </value>
-      </member>
-      <member>
-       <name>maxCpu</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-      <member>
-       <name>maxCpuUnits</name>
-       <value>
-        <string>CORE</string>
-       </value>
-      </member>
-      <member>
-       <name>maxMemory</name>
-       <value>
-        <int>1024</int>
-       </value>
-      </member>
-      <member>
-       <name>startCpus</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-      <member>
-       <name>createDate</name>
-       <value>
-        <string>2010-04-22T12:15:24-05:00</string>
-       </value>
-      </member>
-      <member>
-       <name>modifyDate</name>
-       <value>
-        <string>2010-04-22T13:08:31-05:00</string>
-       </value>
-      </member>
-      <member>
-       <name>metricPollDate</name>
-       <value>
-        <string>2010-04-22T13:08:00-05:00</string>
+         </member>
+         <member>
+          <name>longName</name>
+          <value>
+           <string>San Jose 1</string>
+          </value>
+         </member>
+         <member>
+          <name>name</name>
+          <value>
+           <string>sjc01</string>
+          </value>
+         </member>
+        </struct>
        </value>
       </member>
       <member>
-       <name>dedicatedAccountHostOnlyFlag</name>
+       <name>globalIdentifier</name>
        <value>
-        <boolean>1</boolean>
+        <string>e8ab9d1c-edd8-4a1a-a13c-ff74838b5ab6</string>
        </value>
       </member>
       <member>
-       <name>powerState</name>
+       <name>operatingSystem</name>
        <value>
         <struct>
          <member>
-          <name>name</name>
+          <name>hardwareId</name>
           <value>
-           <string>Running</string>
+           <string/>
           </value>
          </member>
          <member>
-          <name>keyName</name>
+          <name>id</name>
           <value>
-           <string>RUNNING</string>
+           <int>2201049</int>
           </value>
          </member>
-        </struct>
-       </value>
-      </member>
-      <member>
-       <name>softwareComponents</name>
-       <value>
-        <array>
-         <data>
+         <member>
+          <name>manufacturerLicenseInstance</name>
           <value>
-           <struct>
-            <member>
-             <name>id</name>
+           <string/>
+          </value>
+         </member>
+         <member>
+          <name>passwords</name>
+          <value>
+           <array>
+            <data>
              <value>
-              <int>277171</int>
+              <struct>
+               <member>
+                <name>createDate</name>
+                <value>
+                 <string>2013-11-06T15:37:10+01:00</string>
+                </value>
+               </member>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>1857066</int>
+                </value>
+               </member>
+               <member>
+                <name>modifyDate</name>
+                <value>
+                 <string>2013-11-06T15:37:10+01:00</string>
+                </value>
+               </member>
+               <member>
+                <name>password</name>
+                <value>
+                 <string>HmyHw89J</string>
+                </value>
+               </member>
+               <member>
+                <name>port</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>softwareId</name>
+                <value>
+                 <int>2201049</int>
+                </value>
+               </member>
+               <member>
+                <name>username</name>
+                <value>
+                 <string>root</string>
+                </value>
+               </member>
+              </struct>
              </value>
-            </member>
+            </data>
+           </array>
+          </value>
+         </member>
+         <member>
+          <name>softwareLicense</name>
+          <value>
+           <struct>
             <member>
-             <name>hardwareId</name>
+             <name>id</name>
              <value>
-              <string />
+              <int>1523</int>
              </value>
             </member>
             <member>
-             <name>manufacturerLicenseInstance</name>
+             <name>softwareDescriptionId</name>
              <value>
-              <string />
+              <int>1163</int>
              </value>
             </member>
             <member>
-             <name>passwords</name>
+             <name>softwareDescription</name>
              <value>
-              <array>
-               <data>
+              <struct>
+               <member>
+                <name>controlPanel</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>id</name>
+                <value>
+                 <int>1163</int>
+                </value>
+               </member>
+               <member>
+                <name>longDescription</name>
+                <value>
+                 <string>Debian / Debian / 7.0.0-64 Minimal for CCI</string>
+                </value>
+               </member>
+               <member>
+                <name>manufacturer</name>
+                <value>
+                 <string>Debian</string>
+                </value>
+               </member>
+               <member>
+                <name>name</name>
+                <value>
+                 <string>Debian</string>
+                </value>
+               </member>
+               <member>
+                <name>operatingSystem</name>
                 <value>
-                 <struct>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>250815</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>softwareId</name>
-                   <value>
-                    <int>277171</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>username</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>password</name>
-                   <value>
-                    <string>TEST</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>createDate</name>
-                   <value>
-                    <string>2010-04-22T12:15:26-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>modifyDate</name>
-                   <value>
-                    <string>2010-04-22T12:15:26-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>port</name>
-                   <value>
-                    <string />
-                   </value>
-                  </member>
-                 </struct>
+                 <int>1</int>
                 </value>
-               </data>
-              </array>
+               </member>
+               <member>
+                <name>referenceCode</name>
+                <value>
+                 <string>DEBIAN_7_64</string>
+                </value>
+               </member>
+               <member>
+                <name>upgradeSoftwareDescriptionId</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>upgradeSwDescId</name>
+                <value>
+                 <string/>
+                </value>
+               </member>
+               <member>
+                <name>version</name>
+                <value>
+                 <string>7.0.0-64 Minimal for CCI</string>
+                </value>
+               </member>
+               <member>
+                <name>virtualLicense</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>virtualizationPlatform</name>
+                <value>
+                 <int>0</int>
+                </value>
+               </member>
+               <member>
+                <name>requiredUser</name>
+                <value>
+                 <string>root</string>
+                </value>
+               </member>
+              </struct>
              </value>
             </member>
            </struct>
           </value>
-         </data>
-        </array>
-       </value>
-      </member>
-      <member>
-       <name>primaryIpAddress</name>
-       <value>
-        <string>174.254.254.254</string>
-       </value>
-      </member>
-      <member>
-       <name>primaryBackendIpAddress</name>
-       <value>
-        <string>10.254.254.254</string>
-       </value>
-      </member>
-     </struct>
-    </value>
-    <value>
-     <struct>
-      <member>
-       <name>privateNetworkOnlyFlag</name>
-       <value>
-        <boolean>0</boolean>
-       </value>
-      </member>
-      <member>
-       <name>id</name>
-       <value>
-        <int>19284</int>
-       </value>
-      </member>
-      <member>
-       <name>accountId</name>
-       <value>
-        <int>11111</int>
-       </value>
-      </member>
-      <member>
-       <name>statusId</name>
-       <value>
-        <int>1001</int>
-       </value>
-      </member>
-      <member>
-       <name>uuid</name>
-       <value>
-        <string>f3c73738-7731-1372-f3c3-e6808082f824</string>
-       </value>
-      </member>
-      <member>
-       <name>hostname</name>
-       <value>
-        <string>test5</string>
-       </value>
-      </member>
-      <member>
-       <name>domain</name>
-       <value>
-        <string>libcloud.org</string>
-       </value>
-      </member>
-      <member>
-       <name>maxCpu</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-      <member>
-       <name>maxCpuUnits</name>
-       <value>
-        <string>CORE</string>
-       </value>
-      </member>
-      <member>
-       <name>maxMemory</name>
-       <value>
-        <int>1024</int>
-       </value>
-      </member>
-      <member>
-       <name>startCpus</name>
-       <value>
-        <int>2</int>
-       </value>
-      </member>
-      <member>
-       <name>createDate</name>
-       <value>
-        <string>2010-04-22T12:11:23-05:00</string>
-       </value>
-      </member>
-      <member>
-       <name>modifyDate</name>
-       <value>
-        <string>2010-04-22T13:08:31-05:00</string>
-       </value>
-      </member>
-      <member>
-       <name>metricPollDate</name>
-       <value>
-        <string>2010-04-22T13:08:00-05:00</string>
-       </value>
-      </member>
-      <member>
-       <name>dedicatedAccountHostOnlyFlag</name>
-       <value>
-        <boolean>1</boolean>
+         </member>
+        </struct>
        </value>
       </member>
       <member>
@@ -943,116 +1502,30 @@
        <value>
         <struct>
          <member>
-          <name>name</name>
+          <name>keyName</name>
           <value>
-           <string>Running</string>
+           <string>RUNNING</string>
           </value>
          </member>
          <member>
-          <name>keyName</name>
+          <name>name</name>
           <value>
-           <string>RUNNING</string>
+           <string>Running</string>
           </value>
          </member>
         </struct>
        </value>
       </member>
       <member>
-       <name>softwareComponents</name>
+       <name>primaryBackendIpAddress</name>
        <value>
-        <array>
-         <data>
-          <value>
-           <struct>
-            <member>
-             <name>id</name>
-             <value>
-              <int>277167</int>
-             </value>
-            </member>
-            <member>
-             <name>hardwareId</name>
-             <value>
-              <string />
-             </value>
-            </member>
-            <member>
-             <name>manufacturerLicenseInstance</name>
-             <value>
-              <string />
-             </value>
-            </member>
-            <member>
-             <name>passwords</name>
-             <value>
-              <array>
-               <data>
-                <value>
-                 <struct>
-                  <member>
-                   <name>id</name>
-                   <value>
-                    <int>250811</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>softwareId</name>
-                   <value>
-                    <int>277167</int>
-                   </value>
-                  </member>
-                  <member>
-                   <name>username</name>
-                   <value>
-                    <string>root</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>password</name>
-                   <value>
-                    <string>TEST</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>createDate</name>
-                   <value>
-                    <string>2010-04-22T12:11:27-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>modifyDate</name>
-                   <value>
-                    <string>2010-04-22T12:11:27-05:00</string>
-                   </value>
-                  </member>
-                  <member>
-                   <name>port</name>
-                   <value>
-                    <string />
-                   </value>
-                  </member>
-                 </struct>
-                </value>
-               </data>
-              </array>
-             </value>
-            </member>
-           </struct>
-          </value>
-         </data>
-        </array>
+        <string>10.55.43.132</string>
        </value>
       </member>
       <member>
        <name>primaryIpAddress</name>
        <value>
-        <string>174.254.254.254</string>
-       </value>
-      </member>
-      <member>
-       <name>primaryBackendIpAddress</name>
-       <value>
-        <string>10.254.254.254</string>
+        <string>50.23.95.204</string>
        </value>
       </member>
      </struct>