You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by an...@apache.org on 2016/12/02 04:33:23 UTC

[21/40] libcloud git commit: Unit tests for caas api version 2.4

Unit tests for caas api version 2.4


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

Branch: refs/heads/trunk
Commit: 1bafa61da2980b5425ec34f11de5cd5d8c6ec446
Parents: 3ab1a46
Author: Samuel Chong <sa...@gmail.com>
Authored: Wed Nov 16 10:02:31 2016 +1100
Committer: Samuel Chong <sa...@gmail.com>
Committed: Wed Nov 16 10:02:31 2016 +1100

----------------------------------------------------------------------
 libcloud/compute/drivers/dimensiondata.py       |   3 +-
 libcloud/test/backup/test_dimensiondata_v2_3.py |   2 +-
 libcloud/test/backup/test_dimensiondata_v2_4.py |   2 +-
 .../dimensiondata/2.4/image_customerImage.xml   |  19 +-
 ...age_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml |   6 +-
 ...age_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml |   6 +-
 .../dimensiondata/2.4/image_osImage.xml         |  12 +-
 ...age_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml |   4 +-
 ...age_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml |   4 +-
 .../dimensiondata/2.4/server_GetServer.xml      |  42 ++++
 .../dimensiondata/2.4/server_cleanServer.xml    |   9 +
 .../dimensiondata/2.4/server_clone_response.xml |   9 +
 .../dimensiondata/2.4/server_server.xml         | 192 +++++++++++++++++++
 .../dimensiondata/2.4/server_server_NA3.xml     |  56 ++++++
 ...ver_e75ead52_692f_4314_8725_c8a4f4d13a87.xml |  30 +++
 .../2.4/server_server_paginated.xml             |  58 ++++++
 .../test/compute/test_dimensiondata_v2_3.py     |   2 +-
 .../test/compute/test_dimensiondata_v2_4.py     |  39 ++--
 .../loadbalancer/test_dimensiondata_v2_3.py     |   2 +-
 .../loadbalancer/test_dimensiondata_v2_4.py     |   2 +-
 20 files changed, 462 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/compute/drivers/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dimensiondata.py b/libcloud/compute/drivers/dimensiondata.py
index ab3a0a7..60056b4 100644
--- a/libcloud/compute/drivers/dimensiondata.py
+++ b/libcloud/compute/drivers/dimensiondata.py
@@ -3703,8 +3703,9 @@ class DimensionDataNodeDriver(NodeDriver):
         raise TypeError("Asset type %s cannot be tagged" % objecttype.__name__)
 
     def _list_nodes_single_page(self, params={}):
-        return self.connection.request_with_orgId_api_2(
+        nodes = self.connection.request_with_orgId_api_2(
             'server/server', params=params).object
+        return nodes
 
     def _to_tags(self, object):
         tags = []

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/backup/test_dimensiondata_v2_3.py
----------------------------------------------------------------------
diff --git a/libcloud/test/backup/test_dimensiondata_v2_3.py b/libcloud/test/backup/test_dimensiondata_v2_3.py
index ae05316..b0e581a 100644
--- a/libcloud/test/backup/test_dimensiondata_v2_3.py
+++ b/libcloud/test/backup/test_dimensiondata_v2_3.py
@@ -34,7 +34,7 @@ from libcloud.test.file_fixtures import BackupFileFixtures
 from libcloud.test.secrets import DIMENSIONDATA_PARAMS
 
 
-class DimensionDataTests(unittest.TestCase, TestCaseMixin):
+class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin):
 
     def setUp(self):
         DimensionData.connectionCls.active_api_version = '2.3'

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/backup/test_dimensiondata_v2_4.py
----------------------------------------------------------------------
diff --git a/libcloud/test/backup/test_dimensiondata_v2_4.py b/libcloud/test/backup/test_dimensiondata_v2_4.py
index d5da857..285ac40 100644
--- a/libcloud/test/backup/test_dimensiondata_v2_4.py
+++ b/libcloud/test/backup/test_dimensiondata_v2_4.py
@@ -34,7 +34,7 @@ from libcloud.test.file_fixtures import BackupFileFixtures
 from libcloud.test.secrets import DIMENSIONDATA_PARAMS
 
 
-class DimensionDataTests(unittest.TestCase, TestCaseMixin):
+class DimensionData_v2_4_Tests(unittest.TestCase, TestCaseMixin):
 
     def setUp(self):
         DimensionData.connectionCls.active_api_version = '2.4'

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage.xml
index 4e59e18..16e679e 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage.xml
@@ -3,7 +3,10 @@
     <customerImage id="5234e5c7-01de-4411-8b6e-baeb8d91cf5d" datacenterId="NA9">
         <name>ImportedCustomerImage</name>
         <description />
-        <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
+        <guest osCustomization="true">
+            <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
+            <vmTools versionStatus="CURRENT" runningStatus="NOT_RUNNING" />
+        </guest>
         <cpu count="4" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>2</memoryGb>
         <disk id="1a82316f-23ed-4fe9-b6d8-6b92ac467423" scsiId="0" sizeGb="12" speed="STANDARD" />
@@ -13,13 +16,16 @@
         <artifact type="OVF" value="ImportedCustomerImage.ovf" date="2015-1119T14:28:05.000Z" />
         <artifact type="VMDK" value="ImportedCustomerImage-disk1.vmdk" date="2015-11-19T12:22:31.000Z" /></source>
         <state>NORMAL</state>
-        <vmwareTools versionStatus="NEED_UPGRADE" runningStatus="NOT_RUNNING" apiVersion="8389" />
+        <vmTools versionStatus="NEED_UPGRADE" runningStatus="NOT_RUNNING" apiVersion="8389" />
         <virtualHardware version="vmx-10" upToDate="true" />
     </customerImage>
     <customerImage id="2ffa36c8-1848-49eb-b4fa-9d908775f68c" datacenterId="NA9">
         <name>CustomerImageWithPricedSoftwareLabels</name>
         <description />
-        <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+            <vmTools versionStatus="CURRENT" runningStatus="NOT_RUNNING" />
+        </guest>
         <cpu count="1" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>1</memoryGb>
         <disk id="29455efc-51af-4b4d-91b3-d81ca0dff7d8" scsiId="0" sizeGb="50" speed="STANDARD" />
@@ -29,13 +35,15 @@
             <artifact type="SERVER_ID" value="7c9c2551-269d-4274-a247126ba7c6215c" />
         </source>
         <state>NORMAL</state>
-        <vmwareTools versionStatus="CURRENT" runningStatus="NOT_RUNNING" />
         <virtualHardware version="vmx-08" upToDate="false" />
     </customerImage>
     <customerImage id="1fc1844f-45d6-4364-b447-f7c7645b47de" datacenterId="NA9">
         <name>CopiedCustomerImage</name>
         <description />
-        <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
+        <guest osCustomization="true">
+            <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
+            <vmTools versionStatus="NEED_UPGRADE" runningStatus="NOT_RUNNING" apiVersion="9355" />
+        </guest>
         <cpu count="1" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>2</memoryGb>
         <disk id="42b20819-c161-4dec-aa94-73ec370a6e37" scsiId="0" sizeGb="10" speed="STANDARD" />
@@ -44,7 +52,6 @@
             <artifact type="IMAGE_ID" value="0b8357b6-f156-4b27-b4fd-b81d09c15efc" />
         </source>
         <state>NORMAL</state>
-        <vmwareTools versionStatus="NEED_UPGRADE" runningStatus="NOT_RUNNING" apiVersion="9355" />
         <virtualHardware version="vmx-10" upToDate="true" />
     </customerImage>
 </customerImages>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
index bff6183..9ca90f8 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
@@ -2,7 +2,10 @@
     <customerImage xmlns="urn:didata.com:api:cloud:types" id="2ffa36c8-1848-49eb-b4fa-9d908775f68c" datacenterId="NA9">
         <name>CustomerImageWithPricedSoftwareLabels</name>
         <description />
-        <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+            <vmTools versionStatus="CURRENT" runningStatus="NOT_RUNNING" />
+        </guest>
         <cpu count="1" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>1</memoryGb>
         <disk id="29455efc-51af-4b4d-91b3-d81ca0dff7d8" scsiId="0" sizeGb="50" speed="STANDARD" />
@@ -12,6 +15,5 @@
             <artifact type="SERVER_ID" value="7c9c2551-269d-4274-a247126ba7c6215c" />
         </source>
         <state>NORMAL</state>
-        <vmwareTools versionStatus="CURRENT" runningStatus="NOT_RUNNING" />
         <virtualHardware version="vmx-08" upToDate="false" />
     </customerImage>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
index db5302d..e604436 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
@@ -2,7 +2,10 @@
     <customerImage xmlns="urn:didata.com:api:cloud:types" id="5234e5c7-01de-4411-8b6e-baeb8d91cf5d" datacenterId="NA9">
         <name>ImportedCustomerImage</name>
         <description />
-        <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
+        <guest osCustomization="true">
+              <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
+              <vmTools versionStatus="NEED_UPGRADE" runningStatus="NOT_RUNNING" apiVersion="8389" />
+        </guest>
         <cpu count="4" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>2</memoryGb>
         <disk id="1a82316f-23ed-4fe9-b6d8-6b92ac467423" scsiId="0" sizeGb="12" speed="STANDARD" />
@@ -12,6 +15,5 @@
         <artifact type="OVF" value="ImportedCustomerImage.ovf" date="2015-1119T14:28:05.000Z" />
         <artifact type="VMDK" value="ImportedCustomerImage-disk1.vmdk" date="2015-11-19T12:22:31.000Z" /></source>
         <state>NORMAL</state>
-        <vmwareTools versionStatus="NEED_UPGRADE" runningStatus="NOT_RUNNING" apiVersion="8389" />
         <virtualHardware version="vmx-10" upToDate="true" />
     </customerImage>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage.xml
index 1f884a9..b31b42f 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage.xml
@@ -3,32 +3,38 @@
     <osImage id="c14b1a46-2428-44c1-9c1a-b20e6418d08c" datacenterId="NA9">
         <name>RedHat 6 64-bit 2 CPU</name>
         <description>RedHat 6.6 Enterprise (Santiago) 64-bit</description>
-        <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
         <cpu count="2" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>4</memoryGb>
         <disk id="a02b7244-99d8-4889-84a5-5e4373c1bb26" scsiId="0" sizeGb="10" speed="STANDARD" />
         <createTime>2015-09-17T11:23:48.000Z</createTime>
         <osImageKey>T-RHEL-6-64-2-4-10</osImageKey>
+        <guest osCustomization="true">
+            <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
+        </guest>
     </osImage>
     <osImage id="6b4fb0c7-a57b-4f58-b59c-9958f94f971a" datacenterId="NA9">
         <name>Win2012 DC 2 CPU</name>
         <description>Windows 2012 Datacenter</description>
-        <operatingSystem id="WIN2012DC64" displayName="WIN2012DC/64" family="WINDOWS" />
         <cpu count="2" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>4</memoryGb>
         <disk id="f5e01854-a211-4ec6-96d6-2753b6d47877" scsiId="0" sizeGb="50" speed="STANDARD" />
         <createTime>2015-09-17T11:44:43.000Z</createTime>
         <osImageKey>T-WIN-2012-DATACTR-64-2-4-50</osImageKey>
+        <guest osCustomization="true">
+             <operatingSystem id="WIN2012DC64" displayName="WIN2012DC/64" family="WINDOWS" />
+        </guest>
     </osImage>
     <osImage id="3ebf3c0f-90fe-4a8b-8585-6e65b316592c" datacenterId="NA9">
         <name>Win2008 Std 32-bit 2 CPU</name>
         <description>Windows 2008 Enterprise R2 32-bit installed with Microsoft SQL Server 2012 Standard Edition</description>
-        <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
         <cpu count="2" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>4</memoryGb>
         <disk id="6e5b5112-0eae-44eb-83cd-1bd0d58fbeab" scsiId="0" sizeGb="50" speed="STANDARD" />
         <softwareLabel>MSSQL2008R2S</softwareLabel>
         <createTime>2014-11-20T12:54:22.000Z</createTime>
         <osImageKey>T-WIN-2008-ENT-32-2-4-50</osImageKey>
+        <guest osCustomization="true">
+             <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+        </guest>
     </osImage>
 </osImages>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
index 1631137..75e2f93 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
@@ -2,10 +2,12 @@
   <osImage xmlns="urn:didata.com:api:cloud:types" id="6b4fb0c7-a57b-4f58-b59c-9958f94f971a" datacenterId="NA9">
     <name>Win2012 DC 2 CPU</name>
     <description>Windows 2012 Datacenter</description>
-    <operatingSystem id="WIN2012DC64" displayName="WIN2012DC/64" family="WINDOWS" />
     <cpu count="2" speed="STANDARD" coresPerSocket="1" />
     <memoryGb>4</memoryGb>
     <disk id="f5e01854-a211-4ec6-96d6-2753b6d47877" scsiId="0" sizeGb="50" speed="STANDARD" />
     <createTime>2015-09-17T11:44:43.000Z</createTime>
     <osImageKey>T-WIN-2012-DATACTR-64-2-4-50</osImageKey>
+    <guest osCustomization="true">
+        <operatingSystem id="WIN2012DC64" displayName="WIN2012DC/64" family="WINDOWS" />
+    </guest>
   </osImage>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
index 27d6c25..87d47f5 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
@@ -2,11 +2,13 @@
   <osImage xmlns="urn:didata.com:api:cloud:types" id="c14b1a46-2428-44c1-9c1a-b20e6418d08c" datacenterId="NA9">
     <name>RedHat 6 64-bit 2 CPU</name>
     <description>RedHat 6.6 Enterprise (Santiago) 64-bit</description>
-    <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
     <cpu count="2" speed="STANDARD" coresPerSocket="1" />
     <memoryGb>4</memoryGb>
     <disk id="a02b7244-99d8-4889-84a5-5e4373c1bb26" scsiId="0" sizeGb="10" speed="STANDARD" />
     <createTime>2015-09-17T11:23:48.000Z</createTime>
     <osImageKey>T-RHEL-6-64-2-4-10</osImageKey>
+    <guest osCustomization="true">
+        <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" />
+    </guest>
   </osImage>
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/server_GetServer.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/server_GetServer.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_GetServer.xml
new file mode 100644
index 0000000..1103422
--- /dev/null
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_GetServer.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<server id="5a32d6e4-9707-4813-a269-56ab4d989f4d" datacenterId="NA9">
+    <name>Production Web Server</name>
+    <description>Server to host our main web application.</description>
+
+    <cpu count="2" speed="STANDARD" coresPerSocket="1"/>
+    <memoryGb>4</memoryGb>
+    <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50"
+          speed="STANDARD" state="NORMAL"/>
+    <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+        <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd"
+                    privateIpv4="10.0.4.8"
+                    ipv6="2607:f480:1111:1282:2960:fb72:7154:6160"
+                    vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f"
+                    vlanName="Production VLAN" state="NORMAL"/>
+    </networkInfo>
+    <backup assetId="5579f3a7-4c32-4cf5-8a7e-b45c36a35c10"
+            servicePlan="Enterprise" state="NORMAL"/>
+    <monitoring monitoringId="11049" servicePlan="ESSENTIALS" state="NORMAL"/>
+    <softwareLabel>MSSQL2008R2S</softwareLabel>
+    <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+    <createTime>2015-12-02T10:31:33.000Z</createTime>
+    <deployed>true</deployed>
+    <started>true</started>
+    <state>stopped</state>
+    <progress>
+        <action>SHUTDOWN_SERVER</action>
+        <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+        <userName>devuser1</userName>
+    </progress>
+    <guest osCustomization="true">
+        <operatingSystem id="WIN2008S32" displayName="WIN2008S/32"
+                     family="WINDOWS"/>
+        <vmTools versionStatus="CURRENT" runningStatus="RUNNING"
+                 apiVersion="9354"/>
+    </guest>
+    <virtualHardware version="vmx-08"
+                     upToDate="false"/> <!-- DRS: drsEligible or consistencyGroup or neither -->
+    <drsEligible/>
+    **OR**
+    <consistencyGroup id="1f4ef-1238933-2344adce-1098" name="ProductionCG" status="DRS_MODE" serverRole="TARGET"/>
+</server>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/server_cleanServer.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/server_cleanServer.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_cleanServer.xml
new file mode 100644
index 0000000..011dfd4
--- /dev/null
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_cleanServer.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<response
+xmlns="urn:didata.com:api:cloud:types" requestId="au/2016-04-
+14T10:08:07.701+10:00/1cc24d5e-4612-499b-a5d4-8fd5dbb511f0">
+<operation>CLEAN_SERVER</operation>
+<responseCode>IN_PROGRESS</responseCode>
+<message>The request to clean a failed Server deployment for Server
+e75ead52-692f-4314-8725-c8a4f4d13a87 has been accepted and is being processed.</message>
+</response>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/server_clone_response.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/server_clone_response.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_clone_response.xml
new file mode 100644
index 0000000..8f7c191
--- /dev/null
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_clone_response.xml
@@ -0,0 +1,9 @@
+ <response requestId= "na/2014-04-14T13:37:20/62f06368-c3fb-11e3-b29c-001517c4643e"
+xmlns= "urn:didata.com:api:cloud:types" >
+   <operation>CLONE_SERVER</operation>
+   <responseCode>IN_PROGRESS</responseCode>
+   <message>Request to Clone Server '9ed47330-5561-11e5-8c14-b8ca3a5d9ef8' has been
+accepted and is being processed.</message>
+   <info name="imageId" value="3389ffe8-c3fc-11e3-b29c-001517c4643e"/>
+   <info name="clusterId" value="33dsadsae8-c3fc-11e3-b29c-001517c4643e"/>
+</response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server.xml
new file mode 100644
index 0000000..be9760a
--- /dev/null
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<servers xmlns="urn:didata.com:api:cloud:types" pageNumber="1" pageCount="2" totalCount="2" pageSize="250">
+    <!-- MCP 1.0 Server State: RUNNING-->
+    <server id="e75ead52-692f-4314-8725-c8a4f4d13a87" datacenterId="NA1">
+        <name>Production Web Server MCP 1</name>
+        <description>nopassword0</description>
+        <guest osCustomization="true">
+            <operatingSystem id="REDHAT632" displayName="REDHAT6/32" family="UNIX" />
+            <vmTools versionStatus="NEED_UPGRADE" runningStatus="RUNNING" apiVersion="8389" />
+        </guest>
+        <cpu count="4" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>2</memoryGb>
+        <disk id="74f81c56-96cc-4cca-b4d7-a88f641a6ea2" scsiId="0" sizeGb="10" speed="STANDARD" state="NORMAL" />
+        <nic id="43b24e9e-c1c9-4d53-965b-89bcaa725103" privateIpv4="10.160.117.25" networkId="c550be0e-65c1-11e4-811f-005056806999" networkName="Test1" state="NORMAL" />
+        <backup assetId="5579f3a7-4c32-4cf5-8a7e-b45c36a35c10" servicePlan="Enterprise" state="NORMAL" />
+        <monitoring monitoringId="11049" servicePlan="ESSENTIALS" state="NORMAL" />
+        <sourceImageId>e9ec6eb4-4634-49de-b914-01eb74da5fb9</sourceImageId>
+        <createTime>2015-08-11T16:51:05.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>NORMAL</state>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+    <!-- MCP 1.0 Server State: STARTING-->
+    <server id="e75ead52-692f-4314-8725-c8a4f4d13a88" datacenterId="NA1">
+        <name>Production Web Server MCP 1</name>
+        <description>nopassword0</description>
+        <guest osCustomization="true">
+            <operatingSystem id="REDHAT632" displayName="REDHAT6/32" family="UNIX" />
+            <vmTools versionStatus="NEED_UPGRADE" runningStatus="RUNNING" apiVersion="8389" />
+        </guest>
+        <cpu count="4" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>2</memoryGb>
+        <disk id="74f81c56-96cc-4cca-b4d7-a88f641a6ea2" scsiId="0" sizeGb="10" speed="STANDARD" state="NORMAL" />
+        <nic id="43b24e9e-c1c9-4d53-965b-89bcaa725103" privateIpv4="10.160.117.25" networkId="c550be0e-65c1-11e4-811f-005056806999" networkName="Test1" state="NORMAL" />
+        <backup assetId="5579f3a7-4c32-4cf5-8a7e-b45c36a35c10" servicePlan="Enterprise" state="NORMAL" />
+        <monitoring monitoringId="11049" servicePlan="ESSENTIALS" state="NORMAL" />
+        <sourceImageId>e9ec6eb4-4634-49de-b914-01eb74da5fb9</sourceImageId>
+        <createTime>2015-08-11T16:51:05.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>PENDING_ADD</state>
+        <progress>
+            <action>DEPLOY_SERVER_WITH_DISK_SPEED</action>
+            <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+            <userName>devuser1</userName>
+        </progress>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+    <!-- MCP 2.0 Server State: SHUTTING_DOWN-->
+    <server id="5a32d6e4-9707-4813-a269-56ab4d989f4d" datacenterId="NA9">
+        <name>Production Web Server MCP 2</name>
+        <description>Server to host our main web application.</description>
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+            <vmTools versionStatus="CURRENT" runningStatus="RUNNING" apiVersion="9354" />
+        </guest>
+        <cpu count="2" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>4</memoryGb>
+        <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50" speed="STANDARD" state="NORMAL" />
+        <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+            <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd" privateIpv4="10.0.4.8" ipv6="2607:f480:1111:1282:2960:fb72:7154:6160" vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f" vlanName="Production VLAN" state="NORMAL" />
+        </networkInfo>
+        <backup assetId="91002e08-8dc1-47a1-ad33-04f501c06f87" servicePlan="Advanced" state="NORMAL" />
+        <monitoring monitoringId="11039" servicePlan="ESSENTIALS" state="NORMAL" />
+        <softwareLabel>MSSQL2008R2S</softwareLabel>
+        <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+        <createTime>2015-12-02T10:31:33.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>PENDING_CHANGE</state>
+        <progress>
+            <action>SHUTDOWN_SERVER</action>
+            <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+            <userName>devuser1</userName>
+        </progress>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+    <!-- MCP 2.0 Server State: RECONFIGURING-->
+    <server id="5a32d6e4-9707-4813-a269-56ab4d989f4d" datacenterId="NA9">
+        <name>Production Web Server MCP 2</name>
+        <description>Server to host our main web application.</description>
+        <cpu count="2" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>4</memoryGb>
+        <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50" speed="STANDARD" state="NORMAL" />
+        <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+            <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd" privateIpv4="10.0.4.8" ipv6="2607:f480:1111:1282:2960:fb72:7154:6160" vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f" vlanName="Production VLAN" state="NORMAL" />
+        </networkInfo>
+        <backup assetId="91002e08-8dc1-47a1-ad33-04f501c06f87" servicePlan="Advanced" state="NORMAL" />
+        <monitoring monitoringId="11039" servicePlan="ESSENTIALS" state="NORMAL" />
+        <softwareLabel>MSSQL2008R2S</softwareLabel>
+        <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+        <createTime>2015-12-02T10:31:33.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>PENDING_CHANGE</state>
+        <progress>
+            <action>RECONFIGURE_SERVER</action>
+            <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+            <userName>devuser1</userName>
+        </progress>
+        <guest osCustomization="true">
+            <vmTools versionStatus="CURRENT" runningStatus="RUNNING" apiVersion="9354" />
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+        </guest>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+    <!-- MCP 2.0 Server State: UNKNOWN - running-->
+    <server id="5a32d6e4-9707-4813-a269-56ab4d989f4d" datacenterId="NA9">
+        <name>Production Web Server MCP 2</name>
+        <description>Server to host our main web application.</description>
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+            <vmTools versionStatus="CURRENT" runningStatus="RUNNING" apiVersion="9354" />
+        </guest>
+        <cpu count="2" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>4</memoryGb>
+        <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50" speed="STANDARD" state="NORMAL" />
+        <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+            <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd" privateIpv4="10.0.4.8" ipv6="2607:f480:1111:1282:2960:fb72:7154:6160" vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f" vlanName="Production VLAN" state="NORMAL" />
+        </networkInfo>
+        <backup assetId="91002e08-8dc1-47a1-ad33-04f501c06f87" servicePlan="Advanced" state="NORMAL" />
+        <monitoring monitoringId="11039" servicePlan="ESSENTIALS" state="NORMAL" />
+        <softwareLabel>MSSQL2008R2S</softwareLabel>
+        <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+        <createTime>2015-12-02T10:31:33.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>UNKNOWN</state>
+        <progress>
+            <action>SHUTDOWN_SERVER</action>
+            <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+            <userName>devuser1</userName>
+        </progress>
+
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+    <!-- MCP 2.0 Server State: UNKNOWN-terminated-->
+    <server id="5a32d6e4-9707-4813-a269-56ab4d989f4d" datacenterId="NA9">
+        <name>Production Web Server MCP 21</name>
+        <description>Server to host our main web application.</description>
+        <cpu count="2" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>4</memoryGb>
+        <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50" speed="STANDARD" state="NORMAL" />
+        <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+            <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd" privateIpv4="10.0.4.8" ipv6="2607:f480:1111:1282:2960:fb72:7154:6160" vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f" vlanName="Production VLAN" state="NORMAL" />
+        </networkInfo>
+        <backup assetId="91002e08-8dc1-47a1-ad33-04f501c06f87" servicePlan="Advanced" state="NORMAL" />
+        <monitoring monitoringId="11039" servicePlan="ESSENTIALS" state="NORMAL" />
+        <softwareLabel>MSSQL2008R2S</softwareLabel>
+        <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+        <createTime>2015-12-02T10:31:33.000Z</createTime>
+        <deployed>true</deployed>
+        <started>false</started>
+        <state>UNKNOWN</state>
+        <progress>
+            <action>SHUTDOWN_SERVER</action>
+            <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+            <userName>devuser1</userName>
+        </progress>
+        <virtualHardware version="vmx-08" upToDate="false" />
+        <guest osCustomization="true">
+             <operatingSystem id="WIN2008S32" displayName="WIN2008S/32"
+                              family="WINDOWS" />
+             <vmTools versionStatus="CURRENT" runningStatus="RUNNING" apiVersion="9354" />
+        </guest>
+    </server>
+    <!-- MCP 2.0 Server State: STOPPED-->
+    <server id="5a32d6e4-9707-4813-a269-56ab4d989f4d" datacenterId="NA9">
+        <name>Production Web Server MCP 2</name>
+        <description>Server to host our main web application.</description>
+        <cpu count="2" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>4</memoryGb>
+        <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50" speed="STANDARD" state="NORMAL" />
+        <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+            <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd" privateIpv4="10.0.4.8" ipv6="2607:f480:1111:1282:2960:fb72:7154:6160" vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f" vlanName="Production VLAN" state="NORMAL" />
+        </networkInfo>
+        <backup assetId="91002e08-8dc1-47a1-ad33-04f501c06f87" servicePlan="Advanced" state="NORMAL" />
+        <monitoring monitoringId="11039" servicePlan="ESSENTIALS" state="NORMAL" />
+        <softwareLabel>MSSQL2008R2S</softwareLabel>
+        <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+        <createTime>2015-12-02T10:31:33.000Z</createTime>
+        <deployed>true</deployed>
+        <started>false</started>
+        <state>NORMAL</state>
+        <guest osCustomization="true">
+            <vmTools versionStatus="CURRENT" runningStatus="RUNNING" apiVersion="9354" />
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+        </guest>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+</servers>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_NA3.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_NA3.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_NA3.xml
new file mode 100644
index 0000000..56e4492
--- /dev/null
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_NA3.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<servers xmlns="urn:didata.com:api:cloud:types" pageNumber="1" pageCount="2" totalCount="2" pageSize="250">
+    <!-- MCP 1.0 Server -->
+    <server id="e75ead52-692f-4314-8725-c8a4f4d13a87" datacenterId="NA3">
+        <name>Production Web Server MCP 1</name>
+        <description>nopassword0</description>
+
+        <cpu count="4" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>2</memoryGb>
+        <disk id="74f81c56-96cc-4cca-b4d7-a88f641a6ea2" scsiId="0" sizeGb="10" speed="STANDARD" state="NORMAL" />
+        <nic id="43b24e9e-c1c9-4d53-965b-89bcaa725103" privateIpv4="10.160.117.25" networkId="c550be0e-65c1-11e4-811f-005056806999" networkName="Test1" state="NORMAL" />
+        <backup assetId="5579f3a7-4c32-4cf5-8a7e-b45c36a35c10" servicePlan="Enterprise" state="NORMAL" />
+        <monitoring monitoringId="11049" servicePlan="ESSENTIALS" state="NORMAL" />
+        <sourceImageId>e9ec6eb4-4634-49de-b914-01eb74da5fb9</sourceImageId>
+        <createTime>2015-08-11T16:51:05.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>NORMAL</state>
+        <guest osCustomization="true">
+            <vmTools versionStatus="NEED_UPGRADE" runningStatus="RUNNING" apiVersion="8389" />
+            <operatingSystem id="REDHAT632" displayName="REDHAT6/32" family="UNIX" />
+        </guest>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+    <!-- MCP 2.0 Server -->
+    <server id="5a32d6e4-9707-4813-a269-56ab4d989f4d" datacenterId="NA3">
+        <name>Production Web Server MCP 2</name>
+        <description>Server to host our main web application.</description>
+
+        <cpu count="2" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>4</memoryGb>
+        <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50" speed="STANDARD" state="NORMAL" />
+        <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+            <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd" privateIpv4="10.0.4.8" ipv6="2607:f480:1111:1282:2960:fb72:7154:6160" vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f" vlanName="Production VLAN" state="NORMAL" />
+        </networkInfo>
+        <backup assetId="91002e08-8dc1-47a1-ad33-04f501c06f87" servicePlan="Advanced" state="NORMAL" />
+        <monitoring monitoringId="11039" servicePlan="ESSENTIALS" state="NORMAL" />
+        <softwareLabel>MSSQL2008R2S</softwareLabel>
+        <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+        <createTime>2015-12-02T10:31:33.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>PENDING_CHANGE</state>
+        <progress>
+            <action>SHUTDOWN_SERVER</action>
+            <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+            <userName>devuser1</userName>
+        </progress>
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+            <vmTools versionStatus="CURRENT" runningStatus="RUNNING" apiVersion="9354" />
+        </guest>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+</servers>
+

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_e75ead52_692f_4314_8725_c8a4f4d13a87.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_e75ead52_692f_4314_8725_c8a4f4d13a87.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_e75ead52_692f_4314_8725_c8a4f4d13a87.xml
new file mode 100644
index 0000000..c933f29
--- /dev/null
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_e75ead52_692f_4314_8725_c8a4f4d13a87.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<server xmlns="urn:didata.com:api:cloud:types" id="e75ead52-692f-4314-8725-c8a4f4d13a87" datacenterId="NA9">
+        <name>Production Web Server</name>
+        <description>Server to host our main web application.</description>
+
+        <cpu count="2" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>4</memoryGb>
+        <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50" speed="STANDARD" state="NORMAL" />
+        <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+            <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd" privateIpv4="10.0.4.8" ipv6="2607:f480:1111:1282:2960:fb72:7154:6160" vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f" vlanName="Production VLAN" state="NORMAL" />
+        </networkInfo>
+        <backup assetId="5579f3a7-4c32-4cf5-8a7e-b45c36a35c10" servicePlan="Enterprise" state="NORMAL" />
+        <monitoring monitoringId="11049" servicePlan="ESSENTIALS" state="NORMAL" />
+        <softwareLabel>MSSQL2008R2S</softwareLabel>
+        <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+        <createTime>2015-12-02T10:31:33.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>PENDING_CHANGE</state>
+        <progress>
+            <action>DEPLOY_SERVER</action>
+            <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+            <userName>devuser1</userName>
+        </progress>
+        <virtualHardware version="vmx-08" upToDate="false" />
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+            <vmTools versionStatus="CURRENT" runningStatus="RUNNING" apiVersion="9354" />
+        </guest>
+    </server>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_paginated.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_paginated.xml b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_paginated.xml
new file mode 100644
index 0000000..575d245
--- /dev/null
+++ b/libcloud/test/compute/fixtures/dimensiondata/2.4/server_server_paginated.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<servers xmlns="urn:didata.com:api:cloud:types" pageNumber="1" pageCount="2" totalCount="2" pageSize="2">
+    <!-- MCP 1.0 Server -->
+    <server id="e75ead52-692f-4314-8725-c8a4f4d13a87" datacenterId="NA1">
+        <name>Production Web Server MCP 1</name>
+        <description>nopassword0</description>
+
+        <cpu count="4" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>2</memoryGb>
+        <disk id="74f81c56-96cc-4cca-b4d7-a88f641a6ea2" scsiId="0" sizeGb="10" speed="STANDARD" state="NORMAL" />
+        <nic id="43b24e9e-c1c9-4d53-965b-89bcaa725103" privateIpv4="10.160.117.25" networkId="c550be0e-65c1-11e4-811f-005056806999" networkName="Test1" state="NORMAL" />
+        <backup assetId="5579f3a7-4c32-4cf5-8a7e-b45c36a35c10" servicePlan="Enterprise" state="NORMAL" />
+        <monitoring monitoringId="11049" servicePlan="ESSENTIALS" state="NORMAL" />
+        <sourceImageId>e9ec6eb4-4634-49de-b914-01eb74da5fb9</sourceImageId>
+        <createTime>2015-08-11T16:51:05.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>NORMAL</state>
+        <guest osCustomization="true">
+            <vmTools versionStatus="NEED_UPGRADE"
+                         runningStatus="RUNNING" apiVersion="8389" />
+             <operatingSystem id="REDHAT632" displayName="REDHAT6/32" family="UNIX" />
+        </guest>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+    <!-- MCP 2.0 Server -->
+    <server id="5a32d6e4-9707-4813-a269-56ab4d989f4d" datacenterId="NA9">
+        <name>Production Web Server MCP 2</name>
+        <description>Server to host our main web application.</description>
+
+        <cpu count="2" speed="STANDARD" coresPerSocket="1" />
+        <memoryGb>4</memoryGb>
+        <disk id="c2e1f199-116e-4dbc-9960-68720b832b0a" scsiId="0" sizeGb="50" speed="STANDARD" state="NORMAL" />
+        <networkInfo networkDomainId="553f26b6-2a73-42c3-a78b-6116f11291d0">
+            <primaryNic id="5e869800-df7b-4626-bcbf-8643b8be11fd" privateIpv4="10.0.4.8" ipv6="2607:f480:1111:1282:2960:fb72:7154:6160" vlanId="bc529e20-dc6f-42ba-be20-0ffe44d1993f" vlanName="Production VLAN" state="NORMAL" />
+        </networkInfo>
+        <backup assetId="91002e08-8dc1-47a1-ad33-04f501c06f87" servicePlan="Advanced" state="NORMAL" />
+        <monitoring monitoringId="11039" servicePlan="ESSENTIALS" state="NORMAL" />
+        <softwareLabel>MSSQL2008R2S</softwareLabel>
+        <sourceImageId>3ebf3c0f-90fe-4a8b-8585-6e65b316592c</sourceImageId>
+        <createTime>2015-12-02T10:31:33.000Z</createTime>
+        <deployed>true</deployed>
+        <started>true</started>
+        <state>PENDING_CHANGE</state>
+        <progress>
+            <action>SHUTDOWN_SERVER</action>
+            <requestTime>2015-12-02T11:07:40.000Z</requestTime>
+            <userName>devuser1</userName>
+        </progress>
+         <guest osCustomization="true">
+            <vmTools versionStatus="CURRENT" runningStatus="RUNNING"
+                         apiVersion="9354" />
+             <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" family="WINDOWS" />
+        </guest>
+        <virtualHardware version="vmx-08" upToDate="false" />
+    </server>
+</servers>
+

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/test_dimensiondata_v2_3.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata_v2_3.py b/libcloud/test/compute/test_dimensiondata_v2_3.py
index 20c544c..a342e0c 100644
--- a/libcloud/test/compute/test_dimensiondata_v2_3.py
+++ b/libcloud/test/compute/test_dimensiondata_v2_3.py
@@ -40,7 +40,7 @@ from libcloud.test.secrets import DIMENSIONDATA_PARAMS
 from libcloud.utils.xml import fixxpath, findtext, findall
 
 
-class DimensionDataTests(unittest.TestCase, TestCaseMixin):
+class DimensionData_v2_3_Tests(unittest.TestCase, TestCaseMixin):
 
     def setUp(self):
         DimensionData.connectionCls.active_api_version = '2.3'

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/compute/test_dimensiondata_v2_4.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata_v2_4.py b/libcloud/test/compute/test_dimensiondata_v2_4.py
index de08ad1..30f5642 100644
--- a/libcloud/test/compute/test_dimensiondata_v2_4.py
+++ b/libcloud/test/compute/test_dimensiondata_v2_4.py
@@ -40,7 +40,7 @@ from libcloud.test.secrets import DIMENSIONDATA_PARAMS
 from libcloud.utils.xml import fixxpath, findtext, findall
 
 
-class DimensionDataTests(unittest.TestCase, TestCaseMixin):
+class DimensionData_v2_4_Tests(unittest.TestCase, TestCaseMixin):
 
     def setUp(self):
         DimensionData.connectionCls.active_api_version = '2.4'
@@ -2262,18 +2262,18 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server(self, method, url, body, headers):
         if url.endswith('datacenterId=NA3'):
             body = self.fixtures.load(
-                'server_server_NA3.xml')
+                '2.4/server_server_NA3.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
         body = self.fixtures.load(
-            'server_server.xml')
+            '2.4/server_server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGESIZE50(self, method, url, body, headers):
         if not url.endswith('pageSize=50'):
             raise ValueError("pageSize is not set as expected")
         body = self.fixtures.load(
-            'server_server.xml')
+            '2.4/server_server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_EMPTY(self, method, url, body, headers):
@@ -2288,17 +2288,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
         else:
             body = self.fixtures.load(
-                'server_server_paginated.xml')
+                '2.4/server_server_paginated.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGINATED(self, method, url, body, headers):
         if 'pageNumber=2' in url:
             body = self.fixtures.load(
-                'server_server.xml')
+                '2.4/server_server.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
         else:
             body = self.fixtures.load(
-                'server_server_paginated.xml')
+                '2.4/server_server_paginated.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGINATEDEMPTY(self, method, url, body, headers):
@@ -2336,7 +2336,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             else:
                 raise ValueError("Could not find in url parameters {0}:{1}".format(key, value))
         body = self.fixtures.load(
-            'server_server.xml')
+            '2.4/server_server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule(self, method, url, body, headers):
@@ -2461,7 +2461,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_11_INPROGRESS(
             self, method, url, body, headers):
-        body = self.fixtures.load('server_GetServer.xml')
+        body = self.fixtures.load('2.4/server_GetServer.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain(self, method, url, body, headers):
@@ -2549,7 +2549,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87(self, method, url, body, headers):
         body = self.fixtures.load(
-            'server_server_e75ead52_692f_4314_8725_c8a4f4d13a87.xml')
+            '2.4/server_server_e75ead52_692f_4314_8725_c8a4f4d13a87.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deployNetworkDomain(self, method, url, body, headers):
@@ -2756,17 +2756,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage(self, method, url, body, headers):
         body = self.fixtures.load(
-            'image_osImage.xml')
+            '2.4/image_osImage.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c(self, method, url, body, headers):
         body = self.fixtures.load(
-            'image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml')
+            '2.4/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a(self, method, url, body, headers):
         body = self.fixtures.load(
-            'image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml')
+            '2.4/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d(self, method, url, body, headers):
@@ -2786,17 +2786,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage(self, method, url, body, headers):
         body = self.fixtures.load(
-            'image_customerImage.xml')
+            '2.4/image_customerImage.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d(self, method, url, body, headers):
         body = self.fixtures.load(
-            'image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml')
+            '2.4/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c(self, method, url, body, headers):
         body = self.fixtures.load(
-            'image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml')
+            '2.4/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
     def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_FAKE_IMAGE_ID(self, method, url, body, headers):
@@ -3278,5 +3278,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cloneServer(
+        self, method, url, body, headers):
+        body = self.fixtures.load(
+            '2.4/server_clone_response.xml'
+        )
+        return httplib.OK, body, {}, httplib.responses[httplib.OK]
+
 if __name__ == '__main__':
     sys.exit(unittest.main())

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/loadbalancer/test_dimensiondata_v2_3.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_dimensiondata_v2_3.py b/libcloud/test/loadbalancer/test_dimensiondata_v2_3.py
index c609e3d..9a406cb 100644
--- a/libcloud/test/loadbalancer/test_dimensiondata_v2_3.py
+++ b/libcloud/test/loadbalancer/test_dimensiondata_v2_3.py
@@ -29,7 +29,7 @@ from libcloud.test.file_fixtures import LoadBalancerFileFixtures
 from libcloud.test.secrets import DIMENSIONDATA_PARAMS
 
 
-class DimensionDataTests(unittest.TestCase):
+class DimensionData_v2_3_Tests(unittest.TestCase):
 
     def setUp(self):
         DimensionData.connectionCls.active_api_version = '2.3'

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1bafa61d/libcloud/test/loadbalancer/test_dimensiondata_v2_4.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_dimensiondata_v2_4.py b/libcloud/test/loadbalancer/test_dimensiondata_v2_4.py
index e3f7217..07f472c 100644
--- a/libcloud/test/loadbalancer/test_dimensiondata_v2_4.py
+++ b/libcloud/test/loadbalancer/test_dimensiondata_v2_4.py
@@ -29,7 +29,7 @@ from libcloud.test.file_fixtures import LoadBalancerFileFixtures
 from libcloud.test.secrets import DIMENSIONDATA_PARAMS
 
 
-class DimensionDataTests(unittest.TestCase):
+class DimensionData_v2_4_Tests(unittest.TestCase):
 
     def setUp(self):
         DimensionData.connectionCls.active_api_version = '2.4'