Upgrade OS Image and Customer Image for caas api 2.4

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

Branch: refs/heads/trunk
Commit: 03a2aa4e341ddda803104fb6bfa862ea05430afd
Parents: f4caab3
Author: Samuel Chong <samuelcho...@gmail.com>
Authored: Mon Nov 7 12:54:47 2016 +1100
Committer: Samuel Chong <samuelcho...@gmail.com>
Committed: Mon Nov 7 12:54:47 2016 +1100

----------------------------------------------------------------------
 libcloud/common/dimensiondata.py                |   9 +-
 libcloud/compute/drivers/dimensiondata.py       |   4 +-
 libcloud/test/backup/test_dimensiondata.py      |  14 +-
 .../dimensiondata/image_customerImage.xml       |  29 ++-
 ...age_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml |  10 +-
 ...age_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml |  20 +-
 .../fixtures/dimensiondata/image_osImage.xml    |  35 +--
 ...age_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml |  19 +-
 ...age_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml |  19 +-
 libcloud/test/compute/test_dimensiondata.py     | 216 +++++++++----------
 .../test/loadbalancer/test_dimensiondata.py     |  44 ++--
 11 files changed, 230 insertions(+), 189 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/common/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/common/dimensiondata.py b/libcloud/common/dimensiondata.py
index 0a868b8..73443e3 100644
--- a/libcloud/common/dimensiondata.py
+++ b/libcloud/common/dimensiondata.py
@@ -268,6 +268,11 @@ API_ENDPOINTS = {
         'host': 'afapi.bsnlcloud.com',
         'vendor': 'BSNL'
     },
+    'dd-qa': {
+        'name': 'Test(QA)',
+        'host': 'apiqa1geo1.itaas.dimensiondata.com',
+        'vendor': 'DimensionData'
+    }
 }
 
 # Default API end-point for the base connection class.
@@ -373,7 +378,7 @@ class DimensionDataConnection(ConnectionUserAndKey):
     api_path_version_1 = '/oec'
     api_path_version_2 = '/caas'
     api_version_1 = '0.9'
-    api_version_2 = '2.3'
+    api_version_2 = '2.4'
 
     _orgId = None
     responseCls = DimensionDataResponse
@@ -446,7 +451,7 @@ class DimensionDataConnection(ConnectionUserAndKey):
     def request_with_orgId_api_2(self, action, params=None, data='',
                                  headers=None, method='GET'):
         action = "%s/%s" % (self.get_resource_path_api_2(), action)
-
+        print(action)
         return super(DimensionDataConnection, self).request(
             action=action,
             params=params, data=data,

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/compute/drivers/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dimensiondata.py 
b/libcloud/compute/drivers/dimensiondata.py
index 9e477b6..d95bbb3 100644
--- a/libcloud/compute/drivers/dimensiondata.py
+++ b/libcloud/compute/drivers/dimensiondata.py
@@ -3651,8 +3651,10 @@ class DimensionDataNodeDriver(NodeDriver):
             locations = self.list_locations(location_id)
         location = list(filter(lambda x: x.id == location_id,
                                locations))[0]
+
         cpu_spec = self._to_cpu_spec(element.find(fixxpath('cpu', TYPES_URN)))
-        os_el = element.find(fixxpath('operatingSystem', TYPES_URN))
+        os_el = element.find(fixxpath('guest/operatingSystem', TYPES_URN))
+
         if element.tag.endswith('customerImage'):
             is_customer_image = True
         else:

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/backup/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/backup/test_dimensiondata.py 
b/libcloud/test/backup/test_dimensiondata.py
index b2f599c..3214cff 100644
--- a/libcloud/test/backup/test_dimensiondata.py
+++ b/libcloud/test/backup/test_dimensiondata.py
@@ -319,32 +319,32 @@ class DimensionDataMockHttp(MockHttp):
         body = self.fixtures.load('oec_0_9_myaccount.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87(self,
 method, url, body, headers):
+    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')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DEFAULT(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DEFAULT(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DEFAULT.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_NOCLIENT(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_NOCLIENT(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DEFAULT.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_NOJOB(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_NOJOB(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DEFAULT.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DISABLED(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DISABLED(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DEFAULT.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'server_server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
@@ -432,7 +432,7 @@ class DimensionDataMockHttp(MockHttp):
         else:
             raise ValueError("Unknown Method {0}".format(method))
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_NOBACKUP(
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_NOBACKUP(
             self, method, url, body, headers):
         assert(method == 'GET')
         body = self.fixtures.load('server_server_NOBACKUP.xml')

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/compute/fixtures/dimensiondata/image_customerImage.xml
----------------------------------------------------------------------
diff --git 
a/libcloud/test/compute/fixtures/dimensiondata/image_customerImage.xml 
b/libcloud/test/compute/fixtures/dimensiondata/image_customerImage.xml
index 4e59e18..0415d65 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/image_customerImage.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/image_customerImage.xml
@@ -3,23 +3,25 @@
     <customerImage id="5234e5c7-01de-4411-8b6e-baeb8d91cf5d" 
datacenterId="NA9">
         <name>ImportedCustomerImage</name>
         <description />
-        <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" 
/>
         <cpu count="4" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>2</memoryGb>
         <disk id="1a82316f-23ed-4fe9-b6d8-6b92ac467423" scsiId="0" sizeGb="12" 
speed="STANDARD" />
         <createTime>2015-11-19T14:29:02.000Z</createTime>
         <source type="IMPORT">
-        <artifact type="MF" value="ImportedCustomerImage.mf" 
date="2015-1119T14:28:54.000Z" />
-        <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" />
+            <artifact type="MF" value="ImportedCustomerImage.mf" 
date="2015-1119T14:28:54.000Z" />
+            <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>
         <virtualHardware version="vmx-10" upToDate="true" />
+        <state>NORMAL</state>
+        <guest osCustomization="true">
+            <operatingSystem id="REDHAT664" displayName="REDHAT6/64" 
family="UNIX"/>
+            <vmTools type="vmx-08" versionStatus="NEED_UPGRADE" 
runningStatus="NOT_RUNNING" apiVersion="8389"/>
+        </guest>
     </customerImage>
     <customerImage id="2ffa36c8-1848-49eb-b4fa-9d908775f68c" 
datacenterId="NA9">
         <name>CustomerImageWithPricedSoftwareLabels</name>
         <description />
-        <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" 
family="WINDOWS" />
         <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 +31,16 @@
             <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" />
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" 
family="WINDOWS" />
+            <vmTools type="vmx-08" versionStatus="CURRENT"
+                     runningStatus="NOT_RUNNING" />
+        </guest>
     </customerImage>
     <customerImage id="1fc1844f-45d6-4364-b447-f7c7645b47de" 
datacenterId="NA9">
         <name>CopiedCustomerImage</name>
         <description />
-        <operatingSystem id="REDHAT664" displayName="REDHAT6/64" family="UNIX" 
/>
         <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 +49,11 @@
             <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" />
+        <guest osCustomization="true">
+            <operatingSystem id="REDHAT664" displayName="REDHAT6/64" 
family="UNIX" />
+            <vmTools type="vmx-08" versionStatus="NEED_UPGRADE"
+                     runningStatus="NOT_RUNNING" apiVersion="9355" />
+        </guest>
     </customerImage>
 </customerImages>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
----------------------------------------------------------------------
diff --git 
a/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
 
b/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
index bff6183..20627e1 100644
--- 
a/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
+++ 
b/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-    <customerImage xmlns="urn:didata.com:api:cloud:types" 
id="2ffa36c8-1848-49eb-b4fa-9d908775f68c" datacenterId="NA9">
+    <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" />
         <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 +12,10 @@
             <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" />
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" 
family="WINDOWS" />
+            <vmTools type="vmx-08" versionStatus="CURRENT"
+                     runningStatus="NOT_RUNNING" />
+        </guest>
     </customerImage>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
----------------------------------------------------------------------
diff --git 
a/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
 
b/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
index db5302d..f8ba258 100644
--- 
a/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
+++ 
b/libcloud/test/compute/fixtures/dimensiondata/image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d.xml
@@ -1,17 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-    <customerImage xmlns="urn:didata.com:api:cloud:types" 
id="5234e5c7-01de-4411-8b6e-baeb8d91cf5d" datacenterId="NA9">
+<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" 
/>
         <cpu count="4" speed="STANDARD" coresPerSocket="1" />
         <memoryGb>2</memoryGb>
         <disk id="1a82316f-23ed-4fe9-b6d8-6b92ac467423" scsiId="0" sizeGb="12" 
speed="STANDARD" />
         <createTime>2015-11-19T14:29:02.000Z</createTime>
         <source type="IMPORT">
-        <artifact type="MF" value="ImportedCustomerImage.mf" 
date="2015-1119T14:28:54.000Z" />
-        <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" />
+            <artifact type="MF" value="ImportedCustomerImage.mf" 
date="2015-1119T14:28:54.000Z" />
+            <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>
         <virtualHardware version="vmx-10" upToDate="true" />
-    </customerImage>
+        <state>NORMAL</state>
+        <guest osCustomization="true">
+            <operatingSystem id="REDHAT664" displayName="REDHAT6/64" 
family="UNIX"/>
+            <vmTools type="vmx-08" versionStatus="NEED_UPGRADE" 
runningStatus="NOT_RUNNING" apiVersion="8389"/>
+        </guest>
+</customerImage>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/compute/fixtures/dimensiondata/image_osImage.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/image_osImage.xml 
b/libcloud/test/compute/fixtures/dimensiondata/image_osImage.xml
index 1f884a9..4af7e09 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/image_osImage.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/image_osImage.xml
@@ -3,32 +3,41 @@
     <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" />
+        <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>
+        <disk id="5f709ffe-ae38-4d3b-8aeb-57cbc5036627" scsiId="0" sizeGb="10" 
speed="STANDARD"/>
+        <createTime>2015-09-23T10:17:28.000Z</createTime>
         <osImageKey>T-RHEL-6-64-2-4-10</osImageKey>
+        <sortOrder>0</sortOrder>
+        <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" />
+        <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>
+        <disk id="b74a54e6-f90a-4619-a232-4b7522cf0055" scsiId="0" sizeGb="50" 
speed="STANDARD"/>
+        <createTime>2015-09-23T10:19:51.000Z</createTime>
         <osImageKey>T-WIN-2012-DATACTR-64-2-4-50</osImageKey>
+        <sortOrder>0</sortOrder>
+        <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" />
+        <cluster id="QA1_N2_VMWARE_1-01" name="QA1_N2_VMWARE_1-01"/>
+        <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>
+        <disk id="3ee8ecd1-cae6-4bb3-81b2-1294b7763d24" scsiId="0" sizeGb="50" 
speed="STANDARD"/>
+        <createTime>2015-06-16T14:22:41.000Z</createTime>
         <osImageKey>T-WIN-2008-ENT-32-2-4-50</osImageKey>
+        <sortOrder>0</sortOrder>
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2008S32" displayName="WIN2008S/32" 
family="WINDOWS"/>
+        </guest>
     </osImage>
 </osImages>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/compute/fixtures/dimensiondata/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
----------------------------------------------------------------------
diff --git 
a/libcloud/test/compute/fixtures/dimensiondata/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
 
b/libcloud/test/compute/fixtures/dimensiondata/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
index 1631137..a2ea8cb 100644
--- 
a/libcloud/test/compute/fixtures/dimensiondata/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
+++ 
b/libcloud/test/compute/fixtures/dimensiondata/image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a.xml
@@ -1,11 +1,14 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
-  <osImage xmlns="urn:didata.com:api:cloud:types" 
id="6b4fb0c7-a57b-4f58-b59c-9958f94f971a" datacenterId="NA9">
+<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>
-  </osImage>
+        <cpu count="2" speed="STANDARD" coresPerSocket="1"/>
+        <memoryGb>4</memoryGb>
+        <disk id="b74a54e6-f90a-4619-a232-4b7522cf0055" scsiId="0" sizeGb="50" 
speed="STANDARD"/>
+        <createTime>2015-09-23T10:19:51.000Z</createTime>
+        <osImageKey>T-WIN-2012-DATACTR-64-2-4-50</osImageKey>
+        <sortOrder>0</sortOrder>
+        <guest osCustomization="true">
+            <operatingSystem id="WIN2012DC64" displayName="WIN2012DC/64" 
family="WINDOWS"/>
+        </guest>
+</osImage>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/compute/fixtures/dimensiondata/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
----------------------------------------------------------------------
diff --git 
a/libcloud/test/compute/fixtures/dimensiondata/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
 
b/libcloud/test/compute/fixtures/dimensiondata/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
index 27d6c25..62fa6b0 100644
--- 
a/libcloud/test/compute/fixtures/dimensiondata/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
+++ 
b/libcloud/test/compute/fixtures/dimensiondata/image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c.xml
@@ -1,12 +1,17 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-  <osImage xmlns="urn:didata.com:api:cloud:types" 
id="c14b1a46-2428-44c1-9c1a-b20e6418d08c" datacenterId="NA9">
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+    <disk id="5f709ffe-ae38-4d3b-8aeb-57cbc5036627" scsiId="0" sizeGb="10"
+          speed="STANDARD" />
+    <createTime>2015-09-23T10:17:28.000Z</createTime>
     <osImageKey>T-RHEL-6-64-2-4-10</osImageKey>
-  </osImage>
-
+    <sortOrder>0</sortOrder>
+    <guest osCustomization="true">
+        <operatingSystem id="REDHAT664" displayName="REDHAT6/64"
+                         family="UNIX" />
+    </guest>
+</osImage>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/compute/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata.py 
b/libcloud/test/compute/test_dimensiondata.py
index 563448a..bf121b5 100644
--- a/libcloud/test/compute/test_dimensiondata.py
+++ b/libcloud/test/compute/test_dimensiondata.py
@@ -136,7 +136,7 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         self.assertTrue(isinstance(node_list_generator, GeneratorType))
 
     # We're making sure here the filters make it to the URL
-    # See  
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_ALLFILTERS for 
asserts
+    # See  
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_ALLFILTERS for 
asserts
     def test_list_nodes_response_strings_ALLFILTERS(self):
         DimensionDataMockHttp.type = 'ALLFILTERS'
         ret = self.driver.list_nodes(ex_location='fake_loc', 
ex_name='fake_name',
@@ -1622,11 +1622,11 @@ class DimensionDataTests(unittest.TestCase, 
TestCaseMixin):
             self.driver._location_to_location_id([1, 2, 3])
 
     def test_priv_image_needs_auth_os_img(self):
-        image = self.driver.list_images()[0]
+        image = self.driver.list_images()[1]
         self.assertTrue(self.driver._image_needs_auth(image))
 
     def test_priv_image_needs_auth_os_img_STR(self):
-        image = self.driver.list_images()[0].id
+        image = self.driver.list_images()[1].id
         self.assertTrue(self.driver._image_needs_auth(image))
 
     def test_priv_image_needs_auth_cust_img_windows(self):
@@ -2221,12 +2221,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server(self, method, 
url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server(self, method, 
url, body, headers):
         body = self.fixtures.load(
             'server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deleteServer(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deleteServer(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}deleteServer":
             raise InvalidRequestError(request.tag)
@@ -2234,7 +2234,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_deleteServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deleteServer_INPROGRESS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deleteServer_INPROGRESS(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}deleteServer":
             raise InvalidRequestError(request.tag)
@@ -2242,7 +2242,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_deleteServer_RESOURCEBUSY.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_rebootServer(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_rebootServer(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}rebootServer":
             raise InvalidRequestError(request.tag)
@@ -2250,7 +2250,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_rebootServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_rebootServer_INPROGRESS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_rebootServer_INPROGRESS(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}rebootServer":
             raise InvalidRequestError(request.tag)
@@ -2258,7 +2258,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_rebootServer_RESOURCEBUSY.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server(self, 
method, url, body, headers):
+    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')
@@ -2268,19 +2268,19 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGESIZE50(self, 
method, url, body, headers):
+    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')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_EMPTY(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_EMPTY(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'server_server_paginated_empty.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGED_THEN_EMPTY(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGED_THEN_EMPTY(self,
 method, url, body, headers):
         if 'pageNumber=2' in url:
             body = self.fixtures.load(
                 'server_server_paginated_empty.xml')
@@ -2290,7 +2290,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
                 'server_server_paginated.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGINATED(self, 
method, url, body, headers):
+    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')
@@ -2300,12 +2300,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
                 'server_server_paginated.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGINATEDEMPTY(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGINATEDEMPTY(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'server_server_paginated_empty.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_ALLFILTERS(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_ALLFILTERS(self, 
method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -2338,13 +2338,13 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'server_antiAffinityRule_list.xml'
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule_ALLFILTERS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule_ALLFILTERS(self,
 method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -2364,7 +2364,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule_PAGINATED(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule_PAGINATED(self,
 method, url, body, headers):
         if 'pageNumber=2' in url:
             body = self.fixtures.load(
                 'server_antiAffinityRule_list.xml')
@@ -2374,7 +2374,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
                 'server_antiAffinityRule_list_PAGINATED.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_infrastructure_datacenter(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_infrastructure_datacenter(self, 
method, url, body, headers):
         if url.endswith('id=NA9'):
             body = self.fixtures.load(
                 'infrastructure_datacenter_NA9.xml')
@@ -2384,7 +2384,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'infrastructure_datacenter.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_infrastructure_datacenter_ALLFILTERS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_infrastructure_datacenter_ALLFILTERS(self,
 method, url, body, headers):
         if url.endswith('id=NA9'):
             body = self.fixtures.load(
                 'infrastructure_datacenter_NA9.xml')
@@ -2394,7 +2394,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'infrastructure_datacenter.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_updateVmwareTools(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_updateVmwareTools(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}updateVmwareTools":
             raise InvalidRequestError(request.tag)
@@ -2402,7 +2402,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_updateVmwareTools.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_startServer(self, method, 
url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_startServer(self, method, 
url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}startServer":
             raise InvalidRequestError(request.tag)
@@ -2410,7 +2410,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_startServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_startServer_INPROGRESS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_startServer_INPROGRESS(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}startServer":
             raise InvalidRequestError(request.tag)
@@ -2418,7 +2418,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_startServer_INPROGRESS.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_shutdownServer(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_shutdownServer(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}shutdownServer":
             raise InvalidRequestError(request.tag)
@@ -2426,7 +2426,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_shutdownServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_shutdownServer_INPROGRESS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_shutdownServer_INPROGRESS(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}shutdownServer":
             raise InvalidRequestError(request.tag)
@@ -2434,7 +2434,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_shutdownServer_INPROGRESS.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_resetServer(self, method, 
url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_resetServer(self, method, 
url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}resetServer":
             raise InvalidRequestError(request.tag)
@@ -2442,7 +2442,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_resetServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_powerOffServer(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_powerOffServer(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}powerOffServer":
             raise InvalidRequestError(request.tag)
@@ -2450,7 +2450,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_powerOffServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_powerOffServer_INPROGRESS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_powerOffServer_INPROGRESS(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}powerOffServer":
             raise InvalidRequestError(request.tag)
@@ -2458,17 +2458,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_powerOffServer_INPROGRESS.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_11_INPROGRESS(
+    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')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'network_networkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_ALLFILTERS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_ALLFILTERS(self,
 method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -2487,12 +2487,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_networkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'network_vlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_ALLFILTERS(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_ALLFILTERS(self, 
method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -2515,7 +2515,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_vlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deployServer(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deployServer(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}deployServer":
             raise InvalidRequestError(request.tag)
@@ -2546,12 +2546,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_deployServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87(self,
 method, url, body, headers):
+    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')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deployNetworkDomain(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deployNetworkDomain(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != 
"{urn:didata.com:api:cloud:types}deployNetworkDomain":
             raise InvalidRequestError(request.tag)
@@ -2559,17 +2559,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deployNetworkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_8cdfd607_f429_4df6_9352_162cfc0891be(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_8cdfd607_f429_4df6_9352_162cfc0891be(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'network_networkDomain_8cdfd607_f429_4df6_9352_162cfc0891be.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_8cdfd607_f429_4df6_9352_162cfc0891be_ALLFILTERS(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_8cdfd607_f429_4df6_9352_162cfc0891be_ALLFILTERS(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'network_networkDomain_8cdfd607_f429_4df6_9352_162cfc0891be.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editNetworkDomain(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editNetworkDomain(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}editNetworkDomain":
             raise InvalidRequestError(request.tag)
@@ -2577,7 +2577,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_editNetworkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteNetworkDomain(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteNetworkDomain(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != 
"{urn:didata.com:api:cloud:types}deleteNetworkDomain":
             raise InvalidRequestError(request.tag)
@@ -2585,7 +2585,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deleteNetworkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deployVlan(self, method, 
url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deployVlan(self, method, 
url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}deployVlan":
             raise InvalidRequestError(request.tag)
@@ -2593,12 +2593,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deployVlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_0e56433f_d808_4669_821d_812769517ff8(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_0e56433f_d808_4669_821d_812769517ff8(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'network_vlan_0e56433f_d808_4669_821d_812769517ff8.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editVlan(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editVlan(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}editVlan":
             raise InvalidRequestError(request.tag)
@@ -2606,7 +2606,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_editVlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteVlan(self, method, 
url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteVlan(self, method, 
url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}deleteVlan":
             raise InvalidRequestError(request.tag)
@@ -2614,7 +2614,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deleteVlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_expandVlan(self, method, 
url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_expandVlan(self, method, 
url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}expandVlan":
             raise InvalidRequestError(request.tag)
@@ -2622,7 +2622,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_expandVlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_addPublicIpBlock(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_addPublicIpBlock(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}addPublicIpBlock":
             raise InvalidRequestError(request.tag)
@@ -2630,22 +2630,22 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_addPublicIpBlock.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock_4487241a_f0ca_11e3_9315_d4bed9b167ba(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock_4487241a_f0ca_11e3_9315_d4bed9b167ba(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'network_publicIpBlock_4487241a_f0ca_11e3_9315_d4bed9b167ba.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'network_publicIpBlock.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock_9945dc4a_bdce_11e4_8c14_b8ca3a5d9ef8(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock_9945dc4a_bdce_11e4_8c14_b8ca3a5d9ef8(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'network_publicIpBlock_9945dc4a_bdce_11e4_8c14_b8ca3a5d9ef8.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_removePublicIpBlock(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_removePublicIpBlock(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != 
"{urn:didata.com:api:cloud:types}removePublicIpBlock":
             raise InvalidRequestError(request.tag)
@@ -2653,12 +2653,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_removePublicIpBlock.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'network_firewallRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createFirewallRule(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createFirewallRule(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}createFirewallRule":
             raise InvalidRequestError(request.tag)
@@ -2666,12 +2666,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_createFirewallRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule_d0a20f59_77b9_4f28_a63b_e58496b73a6c(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule_d0a20f59_77b9_4f28_a63b_e58496b73a6c(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'network_firewallRule_d0a20f59_77b9_4f28_a63b_e58496b73a6c.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editFirewallRule(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editFirewallRule(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}editFirewallRule":
             raise InvalidRequestError(request.tag)
@@ -2679,7 +2679,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_editFirewallRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteFirewallRule(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteFirewallRule(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}deleteFirewallRule":
             raise InvalidRequestError(request.tag)
@@ -2687,7 +2687,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deleteFirewallRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createNatRule(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createNatRule(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}createNatRule":
             raise InvalidRequestError(request.tag)
@@ -2695,17 +2695,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_createNatRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_natRule(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_natRule(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'network_natRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_natRule_2187a636_7ebb_49a1_a2ff_5d617f496dce(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_natRule_2187a636_7ebb_49a1_a2ff_5d617f496dce(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'network_natRule_2187a636_7ebb_49a1_a2ff_5d617f496dce.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteNatRule(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteNatRule(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}deleteNatRule":
             raise InvalidRequestError(request.tag)
@@ -2713,7 +2713,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deleteNatRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_addNic(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_addNic(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}addNic":
             raise InvalidRequestError(request.tag)
@@ -2721,7 +2721,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_addNic.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_removeNic(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_removeNic(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}removeNic":
             raise InvalidRequestError(request.tag)
@@ -2729,7 +2729,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_removeNic.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_disableServerMonitoring(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_disableServerMonitoring(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != 
"{urn:didata.com:api:cloud:types}disableServerMonitoring":
             raise InvalidRequestError(request.tag)
@@ -2737,7 +2737,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_disableServerMonitoring.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_enableServerMonitoring(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_enableServerMonitoring(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != 
"{urn:didata.com:api:cloud:types}enableServerMonitoring":
             raise InvalidRequestError(request.tag)
@@ -2745,7 +2745,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_enableServerMonitoring.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_changeServerMonitoringPlan(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_changeServerMonitoringPlan(self,
 method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != 
"{urn:didata.com:api:cloud:types}changeServerMonitoringPlan":
             raise InvalidRequestError(request.tag)
@@ -2753,57 +2753,57 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_changeServerMonitoringPlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'image_osImage.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c(self,
 method, url, body, headers):
+    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')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a(self,
 method, url, body, headers):
+    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')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'image_osImage_BAD_REQUEST.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'image_osImage_BAD_REQUEST.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_FAKE_IMAGE_ID(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_FAKE_IMAGE_ID(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'image_osImage_BAD_REQUEST.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'image_customerImage.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d(self,
 method, url, body, headers):
+    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')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c(self,
 method, url, body, headers):
+    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')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_FAKE_IMAGE_ID(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_FAKE_IMAGE_ID(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'image_customerImage_BAD_REQUEST.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_reconfigureServer(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_reconfigureServer(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}reconfigureServer":
             raise InvalidRequestError(request.tag)
@@ -2811,22 +2811,22 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_reconfigureServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer(self, method, 
url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer(self, method, 
url, body, headers):
         body = self.fixtures.load(
             'server_cleanServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_addDisk(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_addDisk(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'server_addDisk.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_removeDisk(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_removeDisk(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'server_removeDisk.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}createTagKey":
             raise InvalidRequestError(request.tag)
@@ -2848,7 +2848,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey_ALLPARAMS(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey_ALLPARAMS(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}createTagKey":
             raise InvalidRequestError(request.tag)
@@ -2870,24 +2870,24 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey_BADREQUEST(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey_BADREQUEST(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'tag_createTagKey_BADREQUEST.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'tag_tagKey_list.xml'
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_SINGLE(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_SINGLE(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'tag_tagKey_list_SINGLE.xml'
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_ALLFILTERS(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_ALLFILTERS(self, 
method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -2909,19 +2909,19 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_d047c609_93d7_4bc5_8fc9_732c85840075(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_d047c609_93d7_4bc5_8fc9_732c85840075(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'tag_tagKey_5ab77f5f_5aa9_426f_8459_4eab34e03d54.xml'
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_d047c609_93d7_4bc5_8fc9_732c85840075_NOEXIST(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_d047c609_93d7_4bc5_8fc9_732c85840075_NOEXIST(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'tag_tagKey_5ab77f5f_5aa9_426f_8459_4eab34e03d54_BADREQUEST.xml'
         )
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NAME(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NAME(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}editTagKey":
             raise InvalidRequestError(request.tag)
@@ -2942,7 +2942,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NOTNAME(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NOTNAME(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}editTagKey":
             raise InvalidRequestError(request.tag)
@@ -2963,13 +2963,13 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NOCHANGE(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NOCHANGE(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'tag_editTagKey_BADREQUEST.xml'
         )
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_deleteTagKey(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_deleteTagKey(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}deleteTagKey":
             raise InvalidRequestError(request.tag)
@@ -2978,13 +2978,13 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_deleteTagKey_NOEXIST(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_deleteTagKey_NOEXIST(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'tag_deleteTagKey_BADREQUEST.xml'
         )
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}applyTags":
             raise InvalidRequestError(request.tag)
@@ -3007,7 +3007,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags_NOVALUE(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags_NOVALUE(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}applyTags":
             raise InvalidRequestError(request.tag)
@@ -3030,13 +3030,13 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags_NOTAGKEY(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags_NOTAGKEY(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'tag_applyTags_BADREQUEST.xml'
         )
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_removeTags(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_removeTags(self, 
method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}removeTags":
             raise InvalidRequestError(request.tag)
@@ -3045,19 +3045,19 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_removeTags_NOTAG(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_removeTags_NOTAG(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'tag_removeTag_BADREQUEST.xml'
         )
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tag(self, method, 
url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tag(self, method, 
url, body, headers):
         body = self.fixtures.load(
             'tag_tag_list.xml'
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tag_ALLPARAMS(self, 
method, url, body, headers):
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tag_ALLPARAMS(self, 
method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -3087,17 +3087,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_ipAddressList(
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_ipAddressList(
             self, method, url, body, headers):
         body = self.fixtures.load('ip_address_lists.xml')
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_ipAddressList_FILTERBYNAME(
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_ipAddressList_FILTERBYNAME(
             self, method, url, body, headers):
         body = self.fixtures.load('ip_address_lists_FILTERBYNAME.xml')
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createIpAddressList(
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createIpAddressList(
             self, method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}" \
@@ -3134,7 +3134,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editIpAddressList(
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editIpAddressList(
             self, method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}" \
@@ -3171,7 +3171,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteIpAddressList(
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteIpAddressList(
             self, method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}" \
@@ -3188,7 +3188,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_portList(
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_portList(
             self, method, url, body, headers):
         body = self.fixtures.load(
             'port_list_lists.xml'
@@ -3196,7 +3196,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_portList_c8c92ea3_2da8_4d51_8153_f39bec794d69(
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_portList_c8c92ea3_2da8_4d51_8153_f39bec794d69(
             self, method, url, body, headers):
         body = self.fixtures.load(
             'port_list_get.xml'
@@ -3204,7 +3204,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createPortList(
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createPortList(
             self, method, url, body, headers):
 
         request = ET.fromstring(body)
@@ -3234,7 +3234,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editPortList(
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editPortList(
             self, method, url, body, headers):
 
         request = ET.fromstring(body)
@@ -3260,7 +3260,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
 
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
 
-    def _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deletePortList(
+    def _caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deletePortList(
             self, method, url, body, headers):
         request = ET.fromstring(body)
         if request.tag != "{urn:didata.com:api:cloud:types}" \

http://git-wip-us.apache.org/repos/asf/libcloud/blob/03a2aa4e/libcloud/test/loadbalancer/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_dimensiondata.py 
b/libcloud/test/loadbalancer/test_dimensiondata.py
index 76afc25..2792d83 100644
--- a/libcloud/test/loadbalancer/test_dimensiondata.py
+++ b/libcloud/test/loadbalancer/test_dimensiondata.py
@@ -505,112 +505,112 @@ class DimensionDataMockHttp(MockHttp):
         body = self.fixtures.load('oec_0_9_myaccount.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_virtualListener(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_virtualListener(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_virtualListener.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_virtualListener_6115469d_a8bb_445b_bb23_d23b5283f2b9(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_virtualListener_6115469d_a8bb_445b_bb23_d23b5283f2b9(self,
 method, url, body, headers):
         body = self.fixtures.load(
             
'networkDomainVip_virtualListener_6115469d_a8bb_445b_bb23_d23b5283f2b9.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_pool(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_pool(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_pool.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_pool_4d360b1f_bc2c_4ab7_9884_1f03ba2768f7(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_pool_4d360b1f_bc2c_4ab7_9884_1f03ba2768f7(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_pool_4d360b1f_bc2c_4ab7_9884_1f03ba2768f7.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_poolMember(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_poolMember(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_poolMember.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_poolMember_3dd806a2_c2c8_4c0c_9a4f_5219ea9266c0(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_poolMember_3dd806a2_c2c8_4c0c_9a4f_5219ea9266c0(self,
 method, url, body, headers):
         body = self.fixtures.load(
             
'networkDomainVip_poolMember_3dd806a2_c2c8_4c0c_9a4f_5219ea9266c0.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createPool(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createPool(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_createPool.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createNode(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createNode(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_createNode.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_addPoolMember(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_addPoolMember(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_addPoolMember.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createVirtualListener(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createVirtualListener(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_createVirtualListener.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_removePoolMember(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_removePoolMember(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_removePoolMember.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deleteVirtualListener(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deleteVirtualListener(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_deleteVirtualListener.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deletePool(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deletePool(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_deletePool.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deleteNode(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deleteNode(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_deleteNode.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_node(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_node(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_node.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_node_34de6ed6_46a4_4dae_a753_2f8d3840c6f9(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_node_34de6ed6_46a4_4dae_a753_2f8d3840c6f9(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_node_34de6ed6_46a4_4dae_a753_2f8d3840c6f9.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editNode(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editNode(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_editNode.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editPool(self, 
method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editPool(self, 
method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_editPool.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editPoolMember(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editPoolMember(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_editPoolMember.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultHealthMonitor(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultHealthMonitor(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_defaultHealthMonitor.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultPersistenceProfile(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultPersistenceProfile(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_defaultPersistenceProfile.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def 
_caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultIrule(self,
 method, url, body, headers):
+    def 
_caas_2_4_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultIrule(self,
 method, url, body, headers):
         body = self.fixtures.load(
             'networkDomainVip_defaultIrule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])

Reply via email to