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/10/05 07:37:51 UTC

[01/22] libcloud git commit: More hacktoberfest spam closing

Repository: libcloud
Updated Branches:
  refs/heads/trunk e2e34767a -> 25c5ba962


More hacktoberfest spam closing

Closes #875


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

Branch: refs/heads/trunk
Commit: 40c9306d1298b0b54dd33ce1e4b80bc1b169efdd
Parents: 7975874
Author: Anthony Shaw <an...@apache.org>
Authored: Sat Oct 1 19:38:23 2016 +1000
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:00 2016 +1100

----------------------------------------------------------------------
 docs/other/hacktoberfest.txt | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/40c9306d/docs/other/hacktoberfest.txt
----------------------------------------------------------------------
diff --git a/docs/other/hacktoberfest.txt b/docs/other/hacktoberfest.txt
index 3952852..7ab6138 100644
--- a/docs/other/hacktoberfest.txt
+++ b/docs/other/hacktoberfest.txt
@@ -3,3 +3,4 @@
 @amadorfreedompop
 @kcccccc
 @JurgensSmit
+@MattG401


[22/22] libcloud git commit: Merge branch 'trunk' of https://git-wip-us.apache.org/repos/asf/libcloud into trunk

Posted by an...@apache.org.
Merge branch 'trunk' of https://git-wip-us.apache.org/repos/asf/libcloud into trunk


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

Branch: refs/heads/trunk
Commit: 25c5ba962c9a47826556dfd593dd1726286f77ce
Parents: 2a08928 e2e3476
Author: Anthony Shaw <an...@apache.org>
Authored: Wed Oct 5 18:37:33 2016 +1100
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:33 2016 +1100

----------------------------------------------------------------------

----------------------------------------------------------------------



[19/22] libcloud git commit: Fix lint error in test file

Posted by an...@apache.org.
Fix lint error in test file

Fix lint errors. Removing extra space before keyword


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

Branch: refs/heads/trunk
Commit: be4fb940be3b09cee538ee72869267395bb2365f
Parents: 2431d6c
Author: Samuel Chong <sa...@gmail.com>
Authored: Wed Oct 5 13:01:38 2016 +1100
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:03 2016 +1100

----------------------------------------------------------------------
 libcloud/test/compute/test_dimensiondata.py | 188 +++++++++++------------
 1 file changed, 94 insertions(+), 94 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/be4fb940/libcloud/test/compute/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata.py b/libcloud/test/compute/test_dimensiondata.py
index b4bca9c..b7da6ae 100644
--- a/libcloud/test/compute/test_dimensiondata.py
+++ b/libcloud/test/compute/test_dimensiondata.py
@@ -1373,12 +1373,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_3_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_3_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)
@@ -1386,7 +1386,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_3_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)
@@ -1394,7 +1394,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_3_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)
@@ -1402,7 +1402,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_3_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)
@@ -1410,7 +1410,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_3_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')
@@ -1420,19 +1420,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_3_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_3_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_3_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')
@@ -1442,7 +1442,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_3_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')
@@ -1452,12 +1452,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_3_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_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -1490,13 +1490,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_3_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_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -1516,7 +1516,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_3_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')
@@ -1526,7 +1526,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_3_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')
@@ -1536,7 +1536,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_3_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')
@@ -1546,7 +1546,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_3_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)
@@ -1554,7 +1554,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_3_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)
@@ -1562,7 +1562,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_3_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)
@@ -1570,7 +1570,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_3_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)
@@ -1578,7 +1578,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_3_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)
@@ -1586,7 +1586,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_3_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)
@@ -1594,7 +1594,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_3_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)
@@ -1602,7 +1602,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_3_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)
@@ -1610,12 +1610,12 @@ 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_network_networkDomain(self, method, url, body, headers):
+    def _caas_2_3_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_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -1634,12 +1634,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_3_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_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -1662,7 +1662,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_3_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)
@@ -1693,12 +1693,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_3_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_3_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)
@@ -1706,17 +1706,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_3_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_3_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_3_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)
@@ -1724,7 +1724,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_3_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)
@@ -1732,7 +1732,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_3_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)
@@ -1740,12 +1740,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_3_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_3_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)
@@ -1753,7 +1753,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_3_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)
@@ -1761,7 +1761,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_3_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)
@@ -1769,7 +1769,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_3_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)
@@ -1777,22 +1777,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_3_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_3_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_3_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_3_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)
@@ -1800,12 +1800,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_3_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_3_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)
@@ -1813,12 +1813,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_3_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_3_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)
@@ -1826,7 +1826,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_3_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)
@@ -1834,7 +1834,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_3_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)
@@ -1842,17 +1842,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_3_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_3_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_3_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)
@@ -1860,7 +1860,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_3_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)
@@ -1868,7 +1868,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_3_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)
@@ -1876,7 +1876,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_3_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)
@@ -1884,7 +1884,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_3_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)
@@ -1892,7 +1892,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_3_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)
@@ -1900,57 +1900,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_3_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_3_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_3_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_3_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_3_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_3_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_3_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_3_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_3_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_3_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_3_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)
@@ -1958,22 +1958,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_3_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_3_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_3_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_3_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)
@@ -1995,7 +1995,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_3_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)
@@ -2017,24 +2017,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_3_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_3_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_3_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_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -2056,19 +2056,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_3_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_3_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_3_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)
@@ -2089,7 +2089,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_3_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)
@@ -2110,13 +2110,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_3_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_3_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)
@@ -2125,13 +2125,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_3_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_3_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)
@@ -2154,7 +2154,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_3_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)
@@ -2177,13 +2177,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_3_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_3_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)
@@ -2192,19 +2192,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_3_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_3_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_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tag_ALLPARAMS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:


[04/22] libcloud git commit: re-add YaST-CA.pem for compatibility reason Closes #884

Posted by an...@apache.org.
re-add YaST-CA.pem for compatibility reason
Closes #884


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

Branch: refs/heads/trunk
Commit: db50a7f89c32686c34f7534bf7e35dd6a70578f8
Parents: d837c1e
Author: Michael Calmer <mc...@suse.de>
Authored: Tue Oct 4 10:08:25 2016 +0200
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:01 2016 +1100

----------------------------------------------------------------------
 libcloud/security.py | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/db50a7f8/libcloud/security.py
----------------------------------------------------------------------
diff --git a/libcloud/security.py b/libcloud/security.py
index 0852397..436dbfc 100644
--- a/libcloud/security.py
+++ b/libcloud/security.py
@@ -63,6 +63,9 @@ CA_CERTS_PATH = [
 
     # opensuse/sles: openssl
     '/etc/ssl/ca-bundle.pem',
+
+    # SLES11 imported CA certificate
+    '/etc/ssl/certs/YaST-CA.pem',
 ]
 
 # Insert certifi CA bundle path to the front of Libcloud CA bundle search


[20/22] libcloud git commit: Update error message. Closes #889

Posted by an...@apache.org.
Update error message.
Closes #889


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

Branch: refs/heads/trunk
Commit: 2a0892864c350921bb29d97b48c43d25ed807fe7
Parents: f311aaf
Author: Andrew Starr-Bochicchio <a....@gmail.com>
Authored: Tue Oct 4 23:52:30 2016 -0400
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:03 2016 +1100

----------------------------------------------------------------------
 libcloud/common/digitalocean.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/2a089286/libcloud/common/digitalocean.py
----------------------------------------------------------------------
diff --git a/libcloud/common/digitalocean.py b/libcloud/common/digitalocean.py
index be452bb..963e479 100644
--- a/libcloud/common/digitalocean.py
+++ b/libcloud/common/digitalocean.py
@@ -38,8 +38,11 @@ class DigitalOcean_v1_Error(LibcloudError):
     supported.
     """
 
-    def __init__(self, value=('Version 1 of the DigitalOcean API reached end'
-                 ' of life on November 9, 2015. Please use the v2 driver.'),
+    def __init__(self,
+                 value=('Driver no longer supported: Version 1 of the '
+                        'DigitalOcean API reached end of life on November 9, '
+                        '2015. Use the v2 driver. Please visit: '
+                        'https://developers.digitalocean.com/documentation/changelog/api-v1/sunsetting-api-v1/'),  # noqa: E501
                  driver=None):
         super(DigitalOcean_v1_Error, self).__init__(value, driver=driver)
 


[21/22] libcloud git commit: Added property plan in DimensionDataNetworkDomain return Closes #888

Posted by an...@apache.org.
Added property plan in DimensionDataNetworkDomain return
Closes #888


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

Branch: refs/heads/trunk
Commit: d9745a07815f82566bc3f603bab272a35dc65525
Parents: be4fb94
Author: Samuel Chong <sa...@gmail.com>
Authored: Wed Oct 5 13:05:46 2016 +1100
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:03 2016 +1100

----------------------------------------------------------------------
 libcloud/common/dimensiondata.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/d9745a07/libcloud/common/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/common/dimensiondata.py b/libcloud/common/dimensiondata.py
index 90a0728..45f2c5e 100644
--- a/libcloud/common/dimensiondata.py
+++ b/libcloud/common/dimensiondata.py
@@ -672,9 +672,9 @@ class DimensionDataNetworkDomain(object):
 
     def __repr__(self):
         return (('<DimensionDataNetworkDomain: id=%s, name=%s, '
-                 'description=%s, location=%s, status=%s>')
+                 'description=%s, location=%s, status=%s, plan=%s>')
                 % (self.id, self.name, self.description, self.location,
-                   self.status))
+                   self.status, self.plan))
 
 
 class DimensionDataPublicIpBlock(object):


[05/22] libcloud git commit: Adding missing line in Apache source headers Closes #883

Posted by an...@apache.org.
Adding missing line in Apache source headers
Closes #883


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

Branch: refs/heads/trunk
Commit: 4c18b83ceeb86c942b59fd7cb9159b99b4a170fb
Parents: 5f87fb6
Author: Dustin Pho <dp...@vt.edu>
Authored: Sun Oct 2 06:27:21 2016 -0700
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:01 2016 +1100

----------------------------------------------------------------------
 libcloud/compute/drivers/kili.py      | 1 +
 libcloud/compute/drivers/rackspace.py | 1 +
 2 files changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/4c18b83c/libcloud/compute/drivers/kili.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/kili.py b/libcloud/compute/drivers/kili.py
index 11c1c7b..6d9673b 100644
--- a/libcloud/compute/drivers/kili.py
+++ b/libcloud/compute/drivers/kili.py
@@ -1,3 +1,4 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
 # this work for additional information regarding copyright ownership.
 # The ASF licenses this file to You under the Apache License, Version 2.0

http://git-wip-us.apache.org/repos/asf/libcloud/blob/4c18b83c/libcloud/compute/drivers/rackspace.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/rackspace.py b/libcloud/compute/drivers/rackspace.py
index fc28184..bec5968 100644
--- a/libcloud/compute/drivers/rackspace.py
+++ b/libcloud/compute/drivers/rackspace.py
@@ -1,3 +1,4 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
 # this work for additional information regarding copyright ownership.
 # The ASF licenses this file to You under the Apache License, Version 2.0


[08/22] libcloud git commit: Update to use CaaS API 2.3

Posted by an...@apache.org.
Update to use CaaS API 2.3

upgrade from CaaS API 2.2 to 2.3


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

Branch: refs/heads/trunk
Commit: 5f87fb6b27d0da424caac70f1c4d0b82de1cd4e9
Parents: 686b971
Author: Samuel Chong <sa...@gmail.com>
Authored: Wed Oct 5 12:07:11 2016 +1100
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:01 2016 +1100

----------------------------------------------------------------------
 libcloud/common/dimensiondata.py                |   2 +-
 libcloud/test/backup/test_dimensiondata.py      |  60 +++---
 libcloud/test/compute/test_dimensiondata.py     | 190 +++++++++----------
 .../test/loadbalancer/test_dimensiondata.py     |  44 ++---
 4 files changed, 148 insertions(+), 148 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/5f87fb6b/libcloud/common/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/common/dimensiondata.py b/libcloud/common/dimensiondata.py
index fa325db..90a0728 100644
--- a/libcloud/common/dimensiondata.py
+++ b/libcloud/common/dimensiondata.py
@@ -373,7 +373,7 @@ class DimensionDataConnection(ConnectionUserAndKey):
     api_path_version_1 = '/oec'
     api_path_version_2 = '/caas'
     api_version_1 = '0.9'
-    api_version_2 = '2.2'
+    api_version_2 = '2.3'
 
     _orgId = None
     responseCls = DimensionDataResponse

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5f87fb6b/libcloud/test/backup/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/backup/test_dimensiondata.py b/libcloud/test/backup/test_dimensiondata.py
index a17065d..b2f599c 100644
--- a/libcloud/test/backup/test_dimensiondata.py
+++ b/libcloud/test/backup/test_dimensiondata.py
@@ -130,18 +130,18 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
         self.assertEqual(client.type.type, 'FA.Linux')
         self.assertEqual(client.running_job.progress, 5)
         self.assertTrue(isinstance(client.running_job, BackupTargetJob))
-        self.assertEqual(len(client.alert.notify_list), 2)
-        self.assertTrue(isinstance(client.alert.notify_list, list))
-
-    def test_ex_get_backup_details_for_target_NOBACKUP(self):
-        target = self.driver.list_targets()[0].address
-        DimensionDataMockHttp.type = 'NOBACKUP'
-        response = self.driver.ex_get_backup_details_for_target(target)
-        self.assertTrue(response is None)
-
-    def test_ex_cancel_target_job(self):
-        target = self.driver.list_targets()[0]
-        response = self.driver.ex_get_backup_details_for_target(target)
+        self.assertEqual(len(client.alert.notify_list), 2)
+        self.assertTrue(isinstance(client.alert.notify_list, list))
+
+    def test_ex_get_backup_details_for_target_NOBACKUP(self):
+        target = self.driver.list_targets()[0].address
+        DimensionDataMockHttp.type = 'NOBACKUP'
+        response = self.driver.ex_get_backup_details_for_target(target)
+        self.assertTrue(response is None)
+
+    def test_ex_cancel_target_job(self):
+        target = self.driver.list_targets()[0]
+        response = self.driver.ex_get_backup_details_for_target(target)
         client = response.clients[0]
         self.assertTrue(isinstance(client.running_job, BackupTargetJob))
         success = client.running_job.cancel()
@@ -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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DEFAULT(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_NOCLIENT(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_NOJOB(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87_DISABLED(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server(self, method, url, body, headers):
+    def _caas_2_3_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])
@@ -429,18 +429,18 @@ class DimensionDataMockHttp(MockHttp):
                 '_backup_INFO.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-        else:
-            raise ValueError("Unknown Method {0}".format(method))
-
-    def _caas_2_2_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')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _oec_0_9_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_e75ead52_692f_4314_8725_c8a4f4d13a87_backup_EXISTS(
-            self, method, url, body, headers):
-        # only POSTs are implemented
+        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(
+            self, method, url, body, headers):
+        assert(method == 'GET')
+        body = self.fixtures.load('server_server_NOBACKUP.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _oec_0_9_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_e75ead52_692f_4314_8725_c8a4f4d13a87_backup_EXISTS(
+            self, method, url, body, headers):
+        # only POSTs are implemented
         # If we get any other method something has gone wrong
         assert(method == 'POST')
         body = self.fixtures.load(

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5f87fb6b/libcloud/test/compute/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata.py b/libcloud/test/compute/test_dimensiondata.py
index 8a43b3e..b4bca9c 100644
--- a/libcloud/test/compute/test_dimensiondata.py
+++ b/libcloud/test/compute/test_dimensiondata.py
@@ -132,7 +132,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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_ALLFILTERS for asserts
+    # See  _caas_2_3_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',
@@ -1373,12 +1373,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deleteServer(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1386,7 +1386,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_deleteServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deleteServer_INPROGRESS(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1394,7 +1394,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_deleteServer_RESOURCEBUSY.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_rebootServer(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1402,7 +1402,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_rebootServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_rebootServer_INPROGRESS(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1410,7 +1410,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_rebootServer_RESOURCEBUSY.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server(self, method, url, body, headers):
+    def  _caas_2_3_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')
@@ -1420,19 +1420,19 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGESIZE50(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_EMPTY(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGED_THEN_EMPTY(self, method, url, body, headers):
+    def  _caas_2_3_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')
@@ -1442,7 +1442,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
                 'server_server_paginated.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGINATED(self, method, url, body, headers):
+    def  _caas_2_3_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')
@@ -1452,12 +1452,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
                 'server_server_paginated.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_PAGINATEDEMPTY(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_ALLFILTERS(self, method, url, body, headers):
+    def  _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -1490,13 +1490,13 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_server.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule_ALLFILTERS(self, method, url, body, headers):
+    def  _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -1516,7 +1516,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_antiAffinityRule_PAGINATED(self, method, url, body, headers):
+    def  _caas_2_3_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')
@@ -1526,7 +1526,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
                 'server_antiAffinityRule_list_PAGINATED.xml')
             return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_infrastructure_datacenter(self, method, url, body, headers):
+    def  _caas_2_3_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')
@@ -1536,7 +1536,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'infrastructure_datacenter.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_infrastructure_datacenter_ALLFILTERS(self, method, url, body, headers):
+    def  _caas_2_3_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')
@@ -1546,7 +1546,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'infrastructure_datacenter.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_updateVmwareTools(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1554,7 +1554,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_updateVmwareTools.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_startServer(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1562,7 +1562,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_startServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_startServer_INPROGRESS(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1570,7 +1570,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_startServer_INPROGRESS.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_shutdownServer(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1578,7 +1578,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_shutdownServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_shutdownServer_INPROGRESS(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1586,7 +1586,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_shutdownServer_INPROGRESS.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_resetServer(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1594,7 +1594,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_resetServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_powerOffServer(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1602,7 +1602,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_powerOffServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_powerOffServer_INPROGRESS(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1610,12 +1610,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_powerOffServer_INPROGRESS.xml')
         return (httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_ALLFILTERS(self, method, url, body, headers):
+    def  _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -1634,12 +1634,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_networkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_ALLFILTERS(self, method, url, body, headers):
+    def  _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -1662,7 +1662,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_vlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_deployServer(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1693,12 +1693,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_deployServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_server_e75ead52_692f_4314_8725_c8a4f4d13a87(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deployNetworkDomain(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1706,17 +1706,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deployNetworkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_8cdfd607_f429_4df6_9352_162cfc0891be(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_networkDomain_8cdfd607_f429_4df6_9352_162cfc0891be_ALLFILTERS(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editNetworkDomain(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1724,7 +1724,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_editNetworkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteNetworkDomain(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1732,7 +1732,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deleteNetworkDomain.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deployVlan(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1740,12 +1740,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deployVlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_vlan_0e56433f_d808_4669_821d_812769517ff8(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editVlan(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1753,7 +1753,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_editVlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteVlan(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1761,7 +1761,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deleteVlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_expandVlan(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1769,7 +1769,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_expandVlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_addPublicIpBlock(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1777,22 +1777,22 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_addPublicIpBlock.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock_4487241a_f0ca_11e3_9315_d4bed9b167ba(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_publicIpBlock_9945dc4a_bdce_11e4_8c14_b8ca3a5d9ef8(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_removePublicIpBlock(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1800,12 +1800,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_removePublicIpBlock.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createFirewallRule(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1813,12 +1813,12 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_createFirewallRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule_d0a20f59_77b9_4f28_a63b_e58496b73a6c(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_editFirewallRule(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1826,7 +1826,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_editFirewallRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteFirewallRule(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1834,7 +1834,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deleteFirewallRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_createNatRule(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1842,17 +1842,17 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_createNatRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_natRule(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_natRule_2187a636_7ebb_49a1_a2ff_5d617f496dce(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_deleteNatRule(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1860,7 +1860,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'network_deleteNatRule.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_addNic(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1868,7 +1868,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_addNic.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_removeNic(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1876,7 +1876,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_removeNic.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_disableServerMonitoring(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1884,7 +1884,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_disableServerMonitoring.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_enableServerMonitoring(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1892,7 +1892,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_enableServerMonitoring.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_changeServerMonitoringPlan(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1900,57 +1900,57 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_changeServerMonitoringPlan.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_c14b1a46_2428_44c1_9c1a_b20e6418d08c(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_6b4fb0c7_a57b_4f58_b59c_9958f94f971a(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_osImage_FAKE_IMAGE_ID(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_5234e5c7_01de_4411_8b6e_baeb8d91cf5d(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_2ffa36c8_1848_49eb_b4fa_9d908775f68c(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_image_customerImage_FAKE_IMAGE_ID(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_reconfigureServer(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1958,22 +1958,22 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
             'server_reconfigureServer.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_addDisk(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_removeDisk(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -1995,7 +1995,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey_ALLPARAMS(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -2017,24 +2017,24 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_createTagKey_BADREQUEST(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_SINGLE(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_ALLFILTERS(self, method, url, body, headers):
+    def  _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_ALLFILTERS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:
@@ -2056,19 +2056,19 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_d047c609_93d7_4bc5_8fc9_732c85840075(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tagKey_d047c609_93d7_4bc5_8fc9_732c85840075_NOEXIST(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NAME(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -2089,7 +2089,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NOTNAME(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -2110,13 +2110,13 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_editTagKey_NOCHANGE(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_deleteTagKey(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -2125,13 +2125,13 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_deleteTagKey_NOEXIST(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -2154,7 +2154,7 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags_NOVALUE(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -2177,13 +2177,13 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_applyTags_NOTAGKEY(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_removeTags(self, method, url, body, headers):
+    def  _caas_2_3_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)
@@ -2192,19 +2192,19 @@ class DimensionDataMockHttp(StorageMockHttp, MockHttp):
         )
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
-    def _caas_2_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_removeTags_NOTAG(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tag(self, method, url, body, headers):
+    def  _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tag_ALLPARAMS(self, method, url, body, headers):
+    def  _caas_2_3_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_tag_tag_ALLPARAMS(self, method, url, body, headers):
         (_, params) = url.split('?')
         parameters = params.split('&')
         for parameter in parameters:

http://git-wip-us.apache.org/repos/asf/libcloud/blob/5f87fb6b/libcloud/test/loadbalancer/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/loadbalancer/test_dimensiondata.py b/libcloud/test/loadbalancer/test_dimensiondata.py
index 79e9553..76afc25 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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_virtualListener(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_virtualListener_6115469d_a8bb_445b_bb23_d23b5283f2b9(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_pool(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_pool_4d360b1f_bc2c_4ab7_9884_1f03ba2768f7(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_poolMember(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_poolMember_3dd806a2_c2c8_4c0c_9a4f_5219ea9266c0(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createPool(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createNode(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_addPoolMember(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_createVirtualListener(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_removePoolMember(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deleteVirtualListener(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deletePool(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_deleteNode(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_node(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_node_34de6ed6_46a4_4dae_a753_2f8d3840c6f9(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editNode(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editPool(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_editPoolMember(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultHealthMonitor(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultPersistenceProfile(self, method, url, body, headers):
+    def _caas_2_3_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_2_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkDomainVip_defaultIrule(self, method, url, body, headers):
+    def _caas_2_3_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])


[03/22] libcloud git commit: fix path to SUSE CA bundle

Posted by an...@apache.org.
fix path to SUSE CA bundle


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

Branch: refs/heads/trunk
Commit: d837c1eafd1eb116fa695980f8f1c702df9e027c
Parents: 4c18b83
Author: Michael Calmer <mc...@suse.de>
Authored: Mon Oct 3 14:35:52 2016 +0200
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:01 2016 +1100

----------------------------------------------------------------------
 libcloud/security.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/d837c1ea/libcloud/security.py
----------------------------------------------------------------------
diff --git a/libcloud/security.py b/libcloud/security.py
index 57465d8..0852397 100644
--- a/libcloud/security.py
+++ b/libcloud/security.py
@@ -62,7 +62,7 @@ CA_CERTS_PATH = [
     '/usr/local/opt/curl-ca-bundle/share/ca-bundle.crt',
 
     # opensuse/sles: openssl
-    '/etc/ssl/certs/YaST-CA.pem',
+    '/etc/ssl/ca-bundle.pem',
 ]
 
 # Insert certifi CA bundle path to the front of Libcloud CA bundle search


[02/22] libcloud git commit: Closing hacktoberfest spam.

Posted by an...@apache.org.
Closing hacktoberfest spam.

Closes #868
Closes #870
Closes #871
Closes #872
Closes #873
Closes #877
Closes #878
Closes #882


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

Branch: refs/heads/trunk
Commit: 797587465eef88726c9d356d2682ab1572085701
Parents: f30b3e3
Author: Anthony Shaw <an...@apache.org>
Authored: Sat Oct 1 19:35:03 2016 +1000
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:00 2016 +1100

----------------------------------------------------------------------
 docs/other/hacktoberfest.txt | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/79758746/docs/other/hacktoberfest.txt
----------------------------------------------------------------------
diff --git a/docs/other/hacktoberfest.txt b/docs/other/hacktoberfest.txt
new file mode 100644
index 0000000..3952852
--- /dev/null
+++ b/docs/other/hacktoberfest.txt
@@ -0,0 +1,5 @@
+@hamzagsarwari
+@saadaouad
+@amadorfreedompop
+@kcccccc
+@JurgensSmit


[15/22] libcloud git commit: Simplify link by removing troublesome anchor

Posted by an...@apache.org.
Simplify link by removing troublesome anchor


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

Branch: refs/heads/trunk
Commit: ed85d1b9a34d1ad215ddd62e8b2971937cb563ac
Parents: 4b07e48
Author: Mike Putnam <mi...@theputnams.net>
Authored: Tue Oct 4 08:39:08 2016 -0500
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:02 2016 +1100

----------------------------------------------------------------------
 .../using-libcloud-in-multithreaded-and-async-environments.rst     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/ed85d1b9/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
----------------------------------------------------------------------
diff --git a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
index 0b2fd62..7a25c93 100644
--- a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
+++ b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
@@ -43,7 +43,7 @@ You need to do two things when you want to use Libcloud with gevent:
 * Create a separate driver instance for each Greenlet. This is necessary
   because a driver instance reuses the same Connection class.
 
-For an example see :doc:`Efficiently download multiple files using gevent </storage/examples.html#efficiently-download-multiple-files-using-gevent>`__.
+For an example see :doc:`Efficiently download multiple files using gevent </storage/examples.html>`.
 
 Using Libcloud with Twisted
 ---------------------------


[06/22] libcloud git commit: Added comment to _utc_timestamp method. Closes #879

Posted by an...@apache.org.
Added comment to _utc_timestamp method.
Closes #879


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

Branch: refs/heads/trunk
Commit: 33c83a95f8ca787462a79e4d2f804e397ca3f6a7
Parents: 40c9306
Author: lpkearns <lo...@gmail.com>
Authored: Sat Oct 1 00:13:45 2016 -0700
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:01 2016 +1100

----------------------------------------------------------------------
 libcloud/common/google.py | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/33c83a95/libcloud/common/google.py
----------------------------------------------------------------------
diff --git a/libcloud/common/google.py b/libcloud/common/google.py
index 75f342c..725aaba 100644
--- a/libcloud/common/google.py
+++ b/libcloud/common/google.py
@@ -113,6 +113,9 @@ def _utcnow():
 
 
 def _utc_timestamp(datetime_obj):
+    """
+    Return string of datetime_obj in the UTC Timestamp Format
+    """
     return datetime_obj.strftime(UTC_TIMESTAMP_FORMAT)
 
 


[16/22] libcloud git commit: Changes for #884

Posted by an...@apache.org.
Changes for #884


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

Branch: refs/heads/trunk
Commit: 9fb93528a5a296b46dcb5e9f0070038ab24bbadc
Parents: 01206e7
Author: Anthony Shaw <an...@apache.org>
Authored: Wed Oct 5 10:13:35 2016 +1100
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:03 2016 +1100

----------------------------------------------------------------------
 CHANGES.rst | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/9fb93528/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index 9fb2618..0c23155 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,6 +4,13 @@
 Changes in current version of Apache Libcloud
 ---------------------------------------------
 
+General
+~~~~~~~
+
+- Added certificate path for SLES12/OpenSUSE12
+  (GITHUB-884)
+  [Michael Calmer]
+
 Compute
 ~~~~~~~
 


[09/22] libcloud git commit: Added comment on add_default_headers method. Closes #881

Posted by an...@apache.org.
Added comment on add_default_headers method.
Closes #881


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

Branch: refs/heads/trunk
Commit: 686b971babc216c3339ee1e1b32e917758891891
Parents: 0a0f1e0
Author: lpkearns <lo...@gmail.com>
Authored: Sat Oct 1 00:22:03 2016 -0700
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:01 2016 +1100

----------------------------------------------------------------------
 libcloud/common/google.py | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/686b971b/libcloud/common/google.py
----------------------------------------------------------------------
diff --git a/libcloud/common/google.py b/libcloud/common/google.py
index 74bb528..52577b8 100644
--- a/libcloud/common/google.py
+++ b/libcloud/common/google.py
@@ -344,6 +344,9 @@ class GoogleBaseAuthConnection(ConnectionUserAndKey):
         super(GoogleBaseAuthConnection, self).__init__(user_id, key, **kwargs)
 
     def add_default_headers(self, headers):
+        """
+        Add defaults for 'Content-Type' and 'Host' headers.
+        """
         headers['Content-Type'] = "application/x-www-form-urlencoded"
         headers['Host'] = self.host
         return headers


[14/22] libcloud git commit: Anchor's away!

Posted by an...@apache.org.
Anchor's away!

Per http://stackoverflow.com/questions/15394347/restructuredtext-adding-a-cross-reference-to-a-subheading-or-anchor-in-another


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

Branch: refs/heads/trunk
Commit: 4b07e4811e61f2ead7a098efc09945c7094c186d
Parents: b8b0cec
Author: Mike Putnam <mi...@theputnams.net>
Authored: Tue Oct 4 08:00:21 2016 -0500
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:02 2016 +1100

----------------------------------------------------------------------
 .../using-libcloud-in-multithreaded-and-async-environments.rst     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/4b07e481/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
----------------------------------------------------------------------
diff --git a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
index eb19bc8..0b2fd62 100644
--- a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
+++ b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
@@ -43,7 +43,7 @@ You need to do two things when you want to use Libcloud with gevent:
 * Create a separate driver instance for each Greenlet. This is necessary
   because a driver instance reuses the same Connection class.
 
-For an example see :doc:`Efficiently download multiple files using gevent </storage/examples.html#efficiently-download-multiple-files-using-gevent>`.
+For an example see :doc:`Efficiently download multiple files using gevent </storage/examples.html#efficiently-download-multiple-files-using-gevent>`__.
 
 Using Libcloud with Twisted
 ---------------------------


[07/22] libcloud git commit: Added comment to _from_utc_timestamp method. Closes #880

Posted by an...@apache.org.
Added comment to _from_utc_timestamp method.
Closes #880


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

Branch: refs/heads/trunk
Commit: 0a0f1e0cc6f286055c2c8b57a7e5cdd358194889
Parents: 33c83a9
Author: lpkearns <lo...@gmail.com>
Authored: Sat Oct 1 00:16:22 2016 -0700
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:01 2016 +1100

----------------------------------------------------------------------
 libcloud/common/google.py | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/0a0f1e0c/libcloud/common/google.py
----------------------------------------------------------------------
diff --git a/libcloud/common/google.py b/libcloud/common/google.py
index 725aaba..74bb528 100644
--- a/libcloud/common/google.py
+++ b/libcloud/common/google.py
@@ -120,6 +120,9 @@ def _utc_timestamp(datetime_obj):
 
 
 def _from_utc_timestamp(timestamp):
+    """
+    Return datetime obj where date and time are pulled from timestamp string.
+    """
     return datetime.datetime.strptime(timestamp, UTC_TIMESTAMP_FORMAT)
 
 


[17/22] libcloud git commit: Remove DigitalOcean v1 driver as it has reached EOL.

Posted by an...@apache.org.
Remove DigitalOcean v1 driver as it has reached EOL.


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

Branch: refs/heads/trunk
Commit: f311aaf2a2693b442a8143b565b4178ee625a0ac
Parents: d9745a0
Author: Andrew Starr-Bochicchio <a....@gmail.com>
Authored: Tue Oct 4 21:18:10 2016 -0400
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:03 2016 +1100

----------------------------------------------------------------------
 libcloud/common/digitalocean.py                 |  68 +-----
 libcloud/compute/drivers/digitalocean.py        | 231 +------------------
 libcloud/test/common/test_digitalocean_v1.py    |  82 -------
 .../fixtures/digitalocean_v1/create_node.json   |   1 -
 .../fixtures/digitalocean_v1/destroy_node.json  |   1 -
 .../compute/fixtures/digitalocean_v1/error.txt  |   1 -
 .../digitalocean_v1/error_invalid_image.json    |   1 -
 .../digitalocean_v1/ex_create_ssh_key.json      |   1 -
 .../digitalocean_v1/ex_destroy_ssh_key.json     |   1 -
 .../digitalocean_v1/ex_list_ssh_keys.json       |   1 -
 .../digitalocean_v1/ex_rename_node.json         |   1 -
 .../fixtures/digitalocean_v1/list_images.json   | 145 ------------
 .../digitalocean_v1/list_locations.json         |   1 -
 .../fixtures/digitalocean_v1/list_nodes.json    |   1 -
 .../digitalocean_v1/list_nodes_empty.json       |   1 -
 .../digitalocean_v1/list_nodes_page_2.json      |  95 --------
 .../fixtures/digitalocean_v1/list_sizes.json    |   1 -
 .../fixtures/digitalocean_v1/reboot_node.json   |   1 -
 libcloud/test/compute/test_digitalocean_v1.py   | 206 -----------------
 libcloud/test/compute/test_digitalocean_v2.py   |   5 +
 20 files changed, 18 insertions(+), 827 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/common/digitalocean.py
----------------------------------------------------------------------
diff --git a/libcloud/common/digitalocean.py b/libcloud/common/digitalocean.py
index 2e6f329..be452bb 100644
--- a/libcloud/common/digitalocean.py
+++ b/libcloud/common/digitalocean.py
@@ -16,60 +16,32 @@
 """
 Common settings and connection objects for DigitalOcean Cloud
 """
-import warnings
 
 from libcloud.utils.py3 import httplib, parse_qs, urlparse
 
 from libcloud.common.base import BaseDriver
-from libcloud.common.base import ConnectionUserAndKey, ConnectionKey
+from libcloud.common.base import ConnectionKey
 from libcloud.common.base import JsonResponse
-from libcloud.common.types import InvalidCredsError
+from libcloud.common.types import LibcloudError, InvalidCredsError
 
 __all__ = [
-    'DigitalOcean_v1_Response',
-    'DigitalOcean_v1_Connection',
     'DigitalOcean_v2_Response',
     'DigitalOcean_v2_Connection',
     'DigitalOceanBaseDriver'
 ]
 
 
-class DigitalOcean_v1_Response(JsonResponse):
-    def parse_error(self):
-        if self.status == httplib.FOUND and '/api/error' in self.body:
-            # Hacky, but DigitalOcean error responses are awful
-            raise InvalidCredsError(self.body)
-        elif self.status == httplib.UNAUTHORIZED:
-            body = self.parse_body()
-            raise InvalidCredsError(body['message'])
-        else:
-            body = self.parse_body()
-
-            if 'error_message' in body:
-                error = '%s (code: %s)' % (body['error_message'], self.status)
-            else:
-                error = body
-            return error
-
-
-class DigitalOcean_v1_Connection(ConnectionUserAndKey):
+class DigitalOcean_v1_Error(LibcloudError):
     """
-    Connection class for the DigitalOcean (v1) driver.
+    Exception for when attempting to use version 1
+    of the DigitalOcean API which is no longer
+    supported.
     """
 
-    host = 'api.digitalocean.com'
-    responseCls = DigitalOcean_v1_Response
-
-    def add_default_params(self, params):
-        """
-        Add parameters that are necessary for every request
-
-        This method adds ``client_id`` and ``api_key`` to
-        the request.
-        """
-        params['client_id'] = self.user_id
-        params['api_key'] = self.key
-        return params
+    def __init__(self, value=('Version 1 of the DigitalOcean API reached end'
+                 ' of life on November 9, 2015. Please use the v2 driver.'),
+                 driver=None):
+        super(DigitalOcean_v1_Error, self).__init__(value, driver=driver)
 
 
 class DigitalOcean_v2_Response(JsonResponse):
@@ -142,9 +114,7 @@ class DigitalOceanBaseDriver(BaseDriver):
     def __new__(cls, key, secret=None, api_version='v2', **kwargs):
         if cls is DigitalOceanBaseDriver:
             if api_version == 'v1' or secret is not None:
-                cls = DigitalOcean_v1_BaseDriver
-                warnings.warn("The v1 API has become deprecated. Please "
-                              "consider utilizing the v2 API.")
+                raise DigitalOcean_v1_Error()
             elif api_version == 'v2':
                 cls = DigitalOcean_v2_BaseDriver
             else:
@@ -169,22 +139,6 @@ class DigitalOceanBaseDriver(BaseDriver):
             '_paginated_requests not implemented for this driver')
 
 
-class DigitalOcean_v1_BaseDriver(DigitalOceanBaseDriver):
-    """
-    DigitalOcean BaseDriver using v1 of the API.
-    """
-    connectionCls = DigitalOcean_v1_Connection
-
-    def ex_get_event(self, event_id):
-        """
-        Get an event object
-
-        :param      event_id: Event id (required)
-        :type       event_id: ``str``
-        """
-        return self.connection.request('/v1/events/%s' % event_id).object
-
-
 class DigitalOcean_v2_BaseDriver(DigitalOceanBaseDriver):
     """
     DigitalOcean BaseDriver using v2 of the API.

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/compute/drivers/digitalocean.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/digitalocean.py b/libcloud/compute/drivers/digitalocean.py
index aefa099..dd9836d 100644
--- a/libcloud/compute/drivers/digitalocean.py
+++ b/libcloud/compute/drivers/digitalocean.py
@@ -21,7 +21,7 @@ import warnings
 from libcloud.utils.iso8601 import parse_date
 from libcloud.utils.py3 import httplib
 
-from libcloud.common.digitalocean import DigitalOcean_v1_BaseDriver
+from libcloud.common.digitalocean import DigitalOcean_v1_Error
 from libcloud.common.digitalocean import DigitalOcean_v2_BaseDriver
 from libcloud.common.types import InvalidCredsError
 from libcloud.compute.types import Provider, NodeState
@@ -31,7 +31,6 @@ from libcloud.compute.base import StorageVolume
 
 __all__ = [
     'DigitalOceanNodeDriver',
-    'DigitalOcean_v1_NodeDriver',
     'DigitalOcean_v2_NodeDriver'
 ]
 
@@ -61,13 +60,10 @@ class DigitalOceanNodeDriver(NodeDriver):
     def __new__(cls, key, secret=None, api_version='v2', **kwargs):
         if cls is DigitalOceanNodeDriver:
             if api_version == 'v1' or secret is not None:
-                if secret is None:
-                    raise InvalidCredsError(
-                        'secret missing for v1 authentication')
                 if secret is not None and api_version == 'v2':
                     raise InvalidCredsError(
                         'secret not accepted for v2 authentication')
-                cls = DigitalOcean_v1_NodeDriver
+                raise DigitalOcean_v1_Error()
             elif api_version == 'v2':
                 cls = DigitalOcean_v2_NodeDriver
             else:
@@ -88,229 +84,6 @@ class SSHKey(object):
                 (self.id, self.name, self.pub_key))
 
 
-class DigitalOcean_v1_NodeDriver(DigitalOcean_v1_BaseDriver,
-                                 DigitalOceanNodeDriver):
-    """
-    DigitalOcean NodeDriver using v1 of the API.
-    """
-
-    NODE_STATE_MAP = {'new': NodeState.PENDING,
-                      'off': NodeState.REBOOTING,
-                      'active': NodeState.RUNNING}
-
-    def list_nodes(self):
-        data = self.connection.request('/v1/droplets').object['droplets']
-        return list(map(self._to_node, data))
-
-    def list_locations(self):
-        data = self.connection.request('/v1/regions').object['regions']
-        return list(map(self._to_location, data))
-
-    def list_images(self):
-        data = self.connection.request('/v1/images').object['images']
-        return list(map(self._to_image, data))
-
-    def list_sizes(self):
-        data = self.connection.request('/v1/sizes').object['sizes']
-        return list(map(self._to_size, data))
-
-    def create_node(self, name, size, image, location, ex_ssh_key_ids=None):
-        """
-        Create a node.
-
-        :keyword    ex_ssh_key_ids: A list of ssh key ids which will be added
-                                   to the server. (optional)
-        :type       ex_ssh_key_ids: ``list`` of ``str``
-
-        :return: The newly created node.
-        :rtype: :class:`Node`
-        """
-        params = {'name': name, 'size_id': size.id, 'image_id': image.id,
-                  'region_id': location.id}
-
-        if ex_ssh_key_ids:
-            params['ssh_key_ids'] = ','.join(ex_ssh_key_ids)
-
-        data = self.connection.request('/v1/droplets/new', params=params)
-
-        # TODO: Handle this in the response class
-        status = data.object.get('status', 'OK')
-        if status == 'ERROR':
-            message = data.object.get('message', None)
-            error_message = data.object.get('error_message', message)
-            raise ValueError('Failed to create node: %s' % (error_message))
-
-        return self._to_node(data=data.object['droplet'])
-
-    def reboot_node(self, node):
-        res = self.connection.request('/v1/droplets/%s/reboot/' % (node.id))
-        return res.status == httplib.OK
-
-    def destroy_node(self, node):
-        params = {'scrub_data': '1'}
-        res = self.connection.request('/v1/droplets/%s/destroy/' % (node.id),
-                                      params=params)
-        return res.status == httplib.OK
-
-    def ex_rename_node(self, node, name):
-        params = {'name': name}
-        res = self.connection.request('/v1/droplets/%s/rename/' % (node.id),
-                                      params=params)
-        return res.status == httplib.OK
-
-    def list_key_pairs(self):
-        """
-        List all the available SSH keys.
-
-        :return: Available SSH keys.
-        :rtype: ``list`` of :class:`KeyPair`
-        """
-        data = self.connection.request('/v1/ssh_keys').object['ssh_keys']
-        return list(map(self._to_key_pair, data))
-
-    def ex_list_ssh_keys(self):
-        """
-        List all the available SSH keys.
-        :return: Available SSH keys.
-        :rtype: ``list`` of :class:`SSHKey`
-        """
-        warnings.warn("This method has been deprecated in "
-                      "favor of the list_key_pairs method")
-
-        data = self.connection.request('/v1/ssh_keys').object['ssh_keys']
-        return list(map(self._to_ssh_key, data))
-
-    def get_key_pair(self, name):
-        """
-        Retrieve a single key pair.
-
-        :param name: Name of the key pair to retrieve.
-        :type name: ``str``
-
-        :rtype: :class:`.KeyPair`
-        """
-        qkey = [k for k in self.list_key_pairs() if k.name == name][0]
-        data = self.connection.request('/v1/ssh_keys/%s' %
-                                       qkey.extra['id']).object['ssh_key']
-        return self._to_key_pair(data=data)
-
-    # TODO: This adds the ssh_key_pub parameter. This puts the burden of making
-    #      it within the function or on the API. The KeyPair API needs work.
-    def create_key_pair(self, name, ssh_key_pub):
-        """
-        Create a new SSH key.
-
-        :param      name: Key name (required)
-        :type       name: ``str``
-
-        :param      name: Valid public key string (required)
-        :type       name: ``str``
-        """
-        params = {'name': name, 'ssh_pub_key': ssh_key_pub}
-        data = self.connection.request('/v1/ssh_keys/new/', method='GET',
-                                       params=params).object
-        assert 'ssh_key' in data
-        # TODO: libcloud.compute.base.KeyPair.create_key_pair doesn't specify
-        #      a return value. This looks like it should return a KeyPair
-        return self._to_key_pair(data=data['ssh_key'])
-
-    def ex_create_ssh_key(self, name, ssh_key_pub):
-        """
-        Create a new SSH key.
-        :param      name: Key name (required)
-        :type       name: ``str``
-        :param      name: Valid public key string (required)
-        :type       name: ``str``
-        """
-        warnings.warn("This method has been deprecated in "
-                      "favor of the create_key_pair method")
-
-        params = {'name': name, 'ssh_pub_key': ssh_key_pub}
-        data = self.connection.request('/v1/ssh_keys/new/', method='GET',
-                                       params=params).object
-        assert 'ssh_key' in data
-        return self._to_ssh_key(data=data['ssh_key'])
-
-    def delete_key_pair(self, key_pair):
-        """
-        Delete an existing key pair.
-
-        :param key_pair: Key pair object.
-        :type key_pair: :class:`.KeyPair`
-        """
-        res = self.connection.request('/v1/ssh_keys/%s/destroy/' %
-                                      key_pair.extra['id'])
-        # TODO: This looks like it should return bool like the other delete_*
-        return res.status == httplib.OK
-
-    def ex_destroy_ssh_key(self, key_id):
-        """
-        Delete an existing SSH key.
-        :param      key_id: SSH key id (required)
-        :type       key_id: ``str``
-        """
-        warnings.warn(
-            "This method has been deprecated in "
-            "favor of the delete_key_pair method")
-
-        res = self.connection.request('/v1/ssh_keys/%s/destroy/' % (key_id))
-        return res.status == httplib.OK
-
-    def _to_node(self, data):
-        extra_keys = ['backups_active', 'region_id', 'image_id', 'size_id']
-        if 'status' in data:
-            state = self.NODE_STATE_MAP.get(data['status'], NodeState.UNKNOWN)
-        else:
-            state = NodeState.UNKNOWN
-
-        if 'ip_address' in data and data['ip_address'] is not None:
-            public_ips = [data['ip_address']]
-        else:
-            public_ips = []
-
-        extra = {}
-        for key in extra_keys:
-            if key in data:
-                extra[key] = data[key]
-
-        node = Node(id=data['id'], name=data['name'], state=state,
-                    public_ips=public_ips, private_ips=None, extra=extra,
-                    driver=self)
-        return node
-
-    def _to_image(self, data):
-        extra = {'distribution': data['distribution']}
-        return NodeImage(id=data['id'], name=data['name'], extra=extra,
-                         driver=self)
-
-    def _to_location(self, data):
-        return NodeLocation(id=data['id'], name=data['name'], country=None,
-                            driver=self)
-
-    def _to_size(self, data):
-        ram = data['name'].lower()
-
-        if 'mb' in ram:
-            ram = int(ram.replace('mb', ''))
-        elif 'gb' in ram:
-            ram = int(ram.replace('gb', '')) * 1024
-
-        return NodeSize(id=data['id'], name=data['name'], ram=ram, disk=0,
-                        bandwidth=0, price=0, driver=self)
-
-    def _to_key_pair(self, data):
-        try:
-            pubkey = data['ssh_pub_key']
-        except KeyError:
-            pubkey = None
-        return KeyPair(data['name'], public_key=pubkey, fingerprint=None,
-                       driver=self, private_key=None, extra={'id': data['id']})
-
-    def _to_ssh_key(self, data):
-        return SSHKey(id=data['id'], name=data['name'],
-                      pub_key=data.get('ssh_pub_key', None))
-
-
 class DigitalOcean_v2_NodeDriver(DigitalOcean_v2_BaseDriver,
                                  DigitalOceanNodeDriver):
     """

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/common/test_digitalocean_v1.py
----------------------------------------------------------------------
diff --git a/libcloud/test/common/test_digitalocean_v1.py b/libcloud/test/common/test_digitalocean_v1.py
deleted file mode 100644
index 9e99c7f..0000000
--- a/libcloud/test/common/test_digitalocean_v1.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-
-import sys
-import unittest
-
-from libcloud.common.types import InvalidCredsError
-from libcloud.common.digitalocean import DigitalOceanBaseDriver
-from libcloud.test import LibcloudTestCase, MockHttpTestCase
-from libcloud.test.file_fixtures import FileFixtures
-from libcloud.test.secrets import DIGITALOCEAN_v1_PARAMS
-from libcloud.utils.py3 import httplib
-
-
-class DigitalOceanTests(LibcloudTestCase):
-
-    def setUp(self):
-        DigitalOceanBaseDriver.connectionCls.conn_classes = \
-            (None, DigitalOceanMockHttp)
-        DigitalOceanMockHttp.type = None
-        self.driver = DigitalOceanBaseDriver(*DIGITALOCEAN_v1_PARAMS)
-
-    def test_authentication(self):
-        DigitalOceanMockHttp.type = 'UNAUTHORIZED'
-        self.assertRaises(InvalidCredsError, self.driver.ex_get_event,
-                          '12345670')
-
-    def test_ex_account_info(self):
-        self.assertRaises(NotImplementedError, self.driver.ex_account_info)
-
-    def test_ex_list_events(self):
-        self.assertRaises(NotImplementedError, self.driver.ex_list_events)
-
-    def test_ex_get_event(self):
-        action = self.driver.ex_get_event('12345670')
-        self.assertEqual(action["status"], "OK")
-        self.assertEqual(action["event"]["id"], 12345670)
-        self.assertEqual(action["event"]["event_type_id"], 1)
-
-    def test__paginated_request(self):
-        self.assertRaises(NotImplementedError, self.driver._paginated_request,
-                          '/v1/anything', 'anything')
-
-
-class DigitalOceanMockHttp(MockHttpTestCase):
-    fixtures = FileFixtures('common', 'digitalocean')
-
-    response = {
-        None: httplib.OK,
-        'CREATE': httplib.CREATED,
-        'DELETE': httplib.NO_CONTENT,
-        'EMPTY': httplib.OK,
-        'NOT_FOUND': httplib.NOT_FOUND,
-        'UNAUTHORIZED': httplib.UNAUTHORIZED,
-        'UPDATE': httplib.OK
-    }
-
-    def _v1_events_12345670_UNAUTHORIZED(self, method, url, body, headers):
-        body = self.fixtures.load(
-            '_v1_events_12345670_UNAUTHORIZED.json')
-        return (self.response[self.type], body, {},
-                httplib.responses[self.response[self.type]])
-
-    def _v1_events_12345670(self, method, url, body, headers):
-        body = self.fixtures.load('_v1_events_12345670.json')
-        return (self.response[self.type], body, {},
-                httplib.responses[self.response[self.type]])
-
-
-if __name__ == '__main__':
-    sys.exit(unittest.main())

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/create_node.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/create_node.json b/libcloud/test/compute/fixtures/digitalocean_v1/create_node.json
deleted file mode 100644
index acddc08..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/create_node.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","droplet":{"id":119461,"name":"test-2","image_id":1601,"size_id":66,"event_id":919341}}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/destroy_node.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/destroy_node.json b/libcloud/test/compute/fixtures/digitalocean_v1/destroy_node.json
deleted file mode 100644
index bae818d..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/destroy_node.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","event_id":918910}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/error.txt
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/error.txt b/libcloud/test/compute/fixtures/digitalocean_v1/error.txt
deleted file mode 100644
index 0e90e51..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/error.txt
+++ /dev/null
@@ -1 +0,0 @@
-<html><body>You are being <a href="https://www.digitalocean.com/api/error">redirected</a>.</body></html>

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/error_invalid_image.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/error_invalid_image.json b/libcloud/test/compute/fixtures/digitalocean_v1/error_invalid_image.json
deleted file mode 100644
index e1ccb4f..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/error_invalid_image.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"ERROR","error_message":"You specified an invalid image for Droplet creation.","message":"You specified an invalid image for Droplet creation."}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/ex_create_ssh_key.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/ex_create_ssh_key.json b/libcloud/test/compute/fixtures/digitalocean_v1/ex_create_ssh_key.json
deleted file mode 100644
index 029cab2..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/ex_create_ssh_key.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","ssh_key":{"id":7717,"name":"test1","ssh_pub_key":"aaq"}}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/ex_destroy_ssh_key.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/ex_destroy_ssh_key.json b/libcloud/test/compute/fixtures/digitalocean_v1/ex_destroy_ssh_key.json
deleted file mode 100644
index 12d1b59..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/ex_destroy_ssh_key.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK"}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/ex_list_ssh_keys.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/ex_list_ssh_keys.json b/libcloud/test/compute/fixtures/digitalocean_v1/ex_list_ssh_keys.json
deleted file mode 100644
index 1111976..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/ex_list_ssh_keys.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","ssh_keys":[{"id":7717,"name":"test1"}]}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/ex_rename_node.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/ex_rename_node.json b/libcloud/test/compute/fixtures/digitalocean_v1/ex_rename_node.json
deleted file mode 100644
index bae818d..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/ex_rename_node.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","event_id":918910}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/list_images.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/list_images.json b/libcloud/test/compute/fixtures/digitalocean_v1/list_images.json
deleted file mode 100644
index 007a57d..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/list_images.json
+++ /dev/null
@@ -1,145 +0,0 @@
-{
-    "status": "OK",
-    "images": [
-        {
-            "id": 1601,
-            "name": "CentOS 5.8 x64",
-            "distribution": "CentOS"
-        },
-        {
-            "id": 1602,
-            "name": "CentOS 5.8 x32",
-            "distribution": "CentOS"
-        },
-        {
-            "id": 1605,
-            "name": "CentOS 6.0 x32",
-            "distribution": "CentOS"
-        },
-        {
-            "id": 1606,
-            "name": "Fedora 15 x64",
-            "distribution": "Fedora"
-        },
-        {
-            "id": 1609,
-            "name": "Ubuntu 11.10 x32 Server",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 1611,
-            "name": "CentOS 6.2 x64",
-            "distribution": "CentOS"
-        },
-        {
-            "id": 1615,
-            "name": "Fedora 16 x64 Server",
-            "distribution": "Fedora"
-        },
-        {
-            "id": 1618,
-            "name": "Fedora 16 x64 Desktop",
-            "distribution": "Fedora"
-        },
-        {
-            "id": 2676,
-            "name": "Ubuntu 12.04 x64 Server",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 12573,
-            "name": "Debian 6.0 x64",
-            "distribution": "Debian"
-        },
-        {
-            "id": 12574,
-            "name": "CentOS 6.3 x64",
-            "distribution": "CentOS"
-        },
-        {
-            "id": 12575,
-            "name": "Debian 6.0 x32",
-            "distribution": "Debian"
-        },
-        {
-            "id": 12578,
-            "name": "CentOS 6.3 x32",
-            "distribution": "CentOS"
-        },
-        {
-            "id": 14097,
-            "name": "Ubuntu 10.04 x64 Server",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 14098,
-            "name": "Ubuntu 10.04 x32 Server",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 14218,
-            "name": "Ubuntu 12.04 x64 Desktop",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 25306,
-            "name": "Ubuntu 12.10 x32 Server",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 25485,
-            "name": "Ubuntu 12.10 x32 Desktop",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 25489,
-            "name": "Ubuntu 12.10 x64 Server",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 25493,
-            "name": "Ubuntu 12.10 x64 Desktop",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 32387,
-            "name": "Fedora 17 x32 Server",
-            "distribution": "Fedora"
-        },
-        {
-            "id": 32399,
-            "name": "Fedora 17 x32 Desktop",
-            "distribution": "Fedora"
-        },
-        {
-            "id": 32419,
-            "name": "Fedora 17 x64 Desktop",
-            "distribution": "Fedora"
-        },
-        {
-            "id": 32428,
-            "name": "Fedora 17 x64 Server",
-            "distribution": "Fedora"
-        },
-        {
-            "id": 42735,
-            "name": "Ubuntu 12.04 x32 Server",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 43458,
-            "name": "Ubuntu 11.04x64 Server",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 43462,
-            "name": "Ubuntu 11.04x32 Desktop",
-            "distribution": "Ubuntu"
-        },
-        {
-            "id": 46964,
-            "name": "LAMP on Ubuntu 12.04",
-            "distribution": "Ubuntu"
-        }
-    ]
-}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/list_locations.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/list_locations.json b/libcloud/test/compute/fixtures/digitalocean_v1/list_locations.json
deleted file mode 100644
index a87b38f..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/list_locations.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","regions":[{"id":1,"name":"New York 1"},{"id":2,"name":"Amsterdam 1"}]}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes.json b/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes.json
deleted file mode 100644
index 5fe5949..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","droplets":[{"id":119461,"name":"test-2","image_id":1601,"size_id":66,"region_id":1,"backups_active":null,"ip_address":null,"status":"new"}]}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes_empty.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes_empty.json b/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes_empty.json
deleted file mode 100644
index bc62108..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes_empty.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","droplets":[]}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes_page_2.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes_page_2.json b/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes_page_2.json
deleted file mode 100644
index e6b89ba..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/list_nodes_page_2.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
-  "droplets": [
-    {
-      "id": 3164445,
-      "name": "example1.com",
-      "memory": 512,
-      "vcpus": 1,
-      "disk": 20,
-      "locked": false,
-      "status": "active",
-      "kernel": {
-        "id": 2233,
-        "name": "Ubuntu 14.04 x64 vmlinuz-3.13.0-37-generic",
-        "version": "3.13.0-37-generic"
-      },
-      "created_at": "2014-11-14T16:29:21Z",
-      "features": [
-        "backups",
-        "ipv6",
-        "virtio"
-      ],
-      "backup_ids": [
-        7938002
-      ],
-      "snapshot_ids": [
-
-      ],
-      "image": {
-        "id": 6918990,
-        "name": "14.04 x64",
-        "distribution": "Ubuntu",
-        "slug": "ubuntu-14-04-x64",
-        "public": true,
-        "regions": [
-          "nyc1",
-          "ams1",
-          "sfo1",
-          "nyc2",
-          "ams2",
-          "sgp1",
-          "lon1",
-          "nyc3",
-          "ams3",
-          "nyc3"
-        ],
-        "created_at": "2014-10-17T20:24:33Z",
-        "min_disk_size": 20
-      },
-      "size_slug": "512mb",
-      "networks": {
-        "v4": [
-          {
-            "ip_address": "104.236.32.182",
-            "netmask": "255.255.192.0",
-            "gateway": "104.236.0.1",
-            "type": "public"
-          }
-        ],
-        "v6": [
-          {
-            "ip_address": "2604:A880:0800:0010:0000:0000:02DD:4001",
-            "netmask": 64,
-            "gateway": "2604:A880:0800:0010:0000:0000:0000:0001",
-            "type": "public"
-          }
-        ]
-      },
-      "region": {
-        "name": "New York 3",
-        "slug": "nyc3",
-        "sizes": [
-
-        ],
-        "features": [
-          "virtio",
-          "private_networking",
-          "backups",
-          "ipv6",
-          "metadata"
-        ],
-        "available": null
-      }
-    }
-  ],
-  "links": {
-    "pages":
-      {
-        "first":"https://api.digitalocean.com/v2/droplets?page=1",
-        "prev":"https://api.digitalocean.com/v2/droplets?page=1"
-      }
-  },
-  "meta": {
-    "total":2
-  }
-}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/list_sizes.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/list_sizes.json b/libcloud/test/compute/fixtures/digitalocean_v1/list_sizes.json
deleted file mode 100644
index 99acc57..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/list_sizes.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","sizes":[{"id":66,"name":"512MB"},{"id":63,"name":"1GB"},{"id":62,"name":"2GB"},{"id":64,"name":"4GB"},{"id":65,"name":"8GB"},{"id":61,"name":"16GB"},{"id":60,"name":"32GB"},{"id":70,"name":"48GB"},{"id":69,"name":"64GB"},{"id":68,"name":"96GB"}]}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/fixtures/digitalocean_v1/reboot_node.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/digitalocean_v1/reboot_node.json b/libcloud/test/compute/fixtures/digitalocean_v1/reboot_node.json
deleted file mode 100644
index bae818d..0000000
--- a/libcloud/test/compute/fixtures/digitalocean_v1/reboot_node.json
+++ /dev/null
@@ -1 +0,0 @@
-{"status":"OK","event_id":918910}

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/test_digitalocean_v1.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_digitalocean_v1.py b/libcloud/test/compute/test_digitalocean_v1.py
deleted file mode 100644
index a09b1a8..0000000
--- a/libcloud/test/compute/test_digitalocean_v1.py
+++ /dev/null
@@ -1,206 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-import sys
-import unittest
-
-try:
-    import simplejson as json
-except ImportError:
-    import json  # NOQA
-
-from libcloud.utils.py3 import httplib
-
-from libcloud.common.types import InvalidCredsError
-from libcloud.compute.base import NodeImage
-from libcloud.compute.drivers.digitalocean import DigitalOceanNodeDriver
-
-from libcloud.test import LibcloudTestCase, MockHttpTestCase
-from libcloud.test.file_fixtures import ComputeFileFixtures
-from libcloud.test.secrets import DIGITALOCEAN_v1_PARAMS
-from libcloud.test.secrets import DIGITALOCEAN_v2_PARAMS
-
-
-# class DigitalOceanTests(unittest.TestCase, TestCaseMixin):
-class DigitalOcean_v1_Tests(LibcloudTestCase):
-
-    def setUp(self):
-        DigitalOceanNodeDriver.connectionCls.conn_classes = \
-            (None, DigitalOceanMockHttp)
-        DigitalOceanMockHttp.type = None
-        self.driver = DigitalOceanNodeDriver(*DIGITALOCEAN_v1_PARAMS,
-                                             api_version='v1')
-
-    def test_v1_uses_v2_key(self):
-        self.assertRaises(InvalidCredsError, DigitalOceanNodeDriver,
-                          *DIGITALOCEAN_v2_PARAMS, api_version='v1')
-
-    def test_authentication(self):
-        DigitalOceanMockHttp.type = 'UNAUTHORIZED_CLIENT'
-        self.assertRaises(InvalidCredsError, self.driver.list_nodes)
-
-    def test_list_images_success(self):
-        images = self.driver.list_images()
-        self.assertTrue(len(images) >= 1)
-
-        image = images[0]
-        self.assertTrue(image.id is not None)
-        self.assertTrue(image.name is not None)
-
-    def test_list_sizes_success(self):
-        sizes = self.driver.list_sizes()
-        self.assertTrue(len(sizes) >= 1)
-
-        size = sizes[0]
-        self.assertTrue(size.id is not None)
-        self.assertEqual(size.name, '512MB')
-        self.assertEqual(size.ram, 512)
-
-        size = sizes[4]
-        self.assertTrue(size.id is not None)
-        self.assertEqual(size.name, '8GB')
-        self.assertEqual(size.ram, 8 * 1024)
-
-    def test_list_locations_success(self):
-        locations = self.driver.list_locations()
-        self.assertTrue(len(locations) >= 1)
-
-        location = locations[0]
-        self.assertEqual(location.id, '1')
-        self.assertEqual(location.name, 'New York 1')
-
-    def test_list_nodes_success(self):
-        nodes = self.driver.list_nodes()
-        self.assertEqual(len(nodes), 1)
-        self.assertEqual(nodes[0].name, 'test-2')
-        self.assertEqual(nodes[0].public_ips, [])
-        self.assertEqual(nodes[0].extra['image_id'], 1601)
-        self.assertEqual(nodes[0].extra['size_id'], 66)
-
-    def test_list_nodes_does_not_support_created_datetime(self):
-        nodes = self.driver.list_nodes()
-        self.assertIsNone(nodes[0].created_at)
-
-    def test_create_node_invalid_size(self):
-        image = NodeImage(id='invalid', name=None, driver=self.driver)
-        size = self.driver.list_sizes()[0]
-        location = self.driver.list_locations()[0]
-
-        DigitalOceanMockHttp.type = 'INVALID_IMAGE'
-        expected_msg = \
-            r'You specified an invalid image for Droplet creation. \(code: (404|HTTPStatus.NOT_FOUND)\)'
-        self.assertRaisesRegexp(Exception, expected_msg,
-                                self.driver.create_node,
-                                name='test', size=size, image=image,
-                                location=location)
-
-    def test_reboot_node_success(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.reboot_node(node)
-        self.assertTrue(result)
-
-    def test_destroy_node_success(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.destroy_node(node)
-        self.assertTrue(result)
-
-    def test_ex_rename_node_success(self):
-        node = self.driver.list_nodes()[0]
-        result = self.driver.ex_rename_node(node, 'fedora helios')
-        self.assertTrue(result)
-
-    def test_list_key_pairs(self):
-        keys = self.driver.list_key_pairs()
-        self.assertEqual(len(keys), 1)
-
-        self.assertEqual(keys[0].extra['id'], 7717)
-        self.assertEqual(keys[0].name, 'test1')
-        self.assertEqual(keys[0].public_key, None)
-
-    def test_ex_list_ssh_keys(self):
-        keys = self.driver.ex_list_ssh_keys()
-        self.assertEqual(len(keys), 1)
-
-        self.assertEqual(keys[0].id, 7717)
-        self.assertEqual(keys[0].name, 'test1')
-        self.assertEqual(keys[0].pub_key, None)
-
-    def test_delete_key_pair(self):
-        key = self.driver.list_key_pairs()[0]
-        result = self.driver.delete_key_pair(key)
-        self.assertTrue(result)
-
-    def test_ex_destroy_ssh_key(self):
-        key = self.driver.ex_list_ssh_keys()[0]
-        result = self.driver.ex_destroy_ssh_key(key.id)
-        self.assertTrue(result)
-
-
-class DigitalOceanMockHttp(MockHttpTestCase):
-    fixtures = ComputeFileFixtures('digitalocean_v1')
-
-    def _v1_regions(self, method, url, body, headers):
-        body = self.fixtures.load('list_locations.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_images(self, method, url, body, headers):
-        body = self.fixtures.load('list_images.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_sizes(self, method, url, body, headers):
-        body = self.fixtures.load('list_sizes.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_droplets(self, method, url, body, headers):
-        body = self.fixtures.load('list_nodes.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_droplets_new_INVALID_IMAGE(self, method, url, body, headers):
-        # reboot_node
-        body = self.fixtures.load('error_invalid_image.json')
-        return (httplib.NOT_FOUND, body, {},
-                httplib.responses[httplib.NOT_FOUND])
-
-    def _v1_droplets_119461_reboot(self, method, url, body, headers):
-        # reboot_node
-        body = self.fixtures.load('reboot_node.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_droplets_119461_destroy(self, method, url, body, headers):
-        # destroy_node
-        self.assertUrlContainsQueryParams(url, {'scrub_data': '1'})
-        body = self.fixtures.load('destroy_node.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_droplets_119461_rename(self, method, url, body, headers):
-        # reboot_node
-        self.assertUrlContainsQueryParams(url, {'name': 'fedora helios'})
-        body = self.fixtures.load('ex_rename_node.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_ssh_keys(self, method, url, body, headers):
-        body = self.fixtures.load('ex_list_ssh_keys.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_ssh_keys_7717_destroy(self, method, url, body, headers):
-        # destroy_ssh_key
-        body = self.fixtures.load('ex_destroy_ssh_key.json')
-        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
-
-    def _v1_droplets_UNAUTHORIZED_CLIENT(self, method, url, body, headers):
-        body = self.fixtures.load('error.txt')
-        return (httplib.FOUND, body, {}, httplib.responses[httplib.FOUND])
-
-if __name__ == '__main__':
-    sys.exit(unittest.main())

http://git-wip-us.apache.org/repos/asf/libcloud/blob/f311aaf2/libcloud/test/compute/test_digitalocean_v2.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_digitalocean_v2.py b/libcloud/test/compute/test_digitalocean_v2.py
index 25e6e76..a215e81 100644
--- a/libcloud/test/compute/test_digitalocean_v2.py
+++ b/libcloud/test/compute/test_digitalocean_v2.py
@@ -26,6 +26,7 @@ except ImportError:
 from libcloud.utils.py3 import httplib
 
 from libcloud.common.types import InvalidCredsError
+from libcloud.common.digitalocean import DigitalOcean_v1_Error
 from libcloud.compute.base import NodeImage
 from libcloud.compute.drivers.digitalocean import DigitalOceanNodeDriver
 
@@ -44,6 +45,10 @@ class DigitalOcean_v2_Tests(LibcloudTestCase):
         DigitalOceanMockHttp.type = None
         self.driver = DigitalOceanNodeDriver(*DIGITALOCEAN_v2_PARAMS)
 
+    def test_v1_Error(self):
+        self.assertRaises(DigitalOcean_v1_Error, DigitalOceanNodeDriver,
+                          *DIGITALOCEAN_v1_PARAMS, api_version='v1')
+
     def test_v2_uses_v1_key(self):
         self.assertRaises(InvalidCredsError, DigitalOceanNodeDriver,
                           *DIGITALOCEAN_v1_PARAMS, api_version='v2')


[13/22] libcloud git commit: Correct misplaced backtick in relative link

Posted by an...@apache.org.
Correct misplaced backtick in relative link


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

Branch: refs/heads/trunk
Commit: b8b0cecd47d3a150bf1de3ac609ad42a187cb818
Parents: eb98f7e
Author: Mike Putnam <mi...@theputnams.net>
Authored: Tue Oct 4 07:00:06 2016 -0500
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:02 2016 +1100

----------------------------------------------------------------------
 .../using-libcloud-in-multithreaded-and-async-environments.rst     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/b8b0cecd/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
----------------------------------------------------------------------
diff --git a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
index 7b4e2ca..eb19bc8 100644
--- a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
+++ b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
@@ -43,7 +43,7 @@ You need to do two things when you want to use Libcloud with gevent:
 * Create a separate driver instance for each Greenlet. This is necessary
   because a driver instance reuses the same Connection class.
 
-For an example see :doc:`Efficiently download multiple files using gevent`</storage/examples.html#efficiently-download-multiple-files-using-gevent>.
+For an example see :doc:`Efficiently download multiple files using gevent </storage/examples.html#efficiently-download-multiple-files-using-gevent>`.
 
 Using Libcloud with Twisted
 ---------------------------


[11/22] libcloud git commit: Fixes broken relative link within docs.

Posted by an...@apache.org.
Fixes broken relative link within docs.

Looks like markdown was used where Sphinx format should have been.


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

Branch: refs/heads/trunk
Commit: eb98f7e92ec609f8f3366aa8de40021ead1d4bb3
Parents: 6a256c8
Author: Mike Putnam <mi...@theputnams.net>
Authored: Mon Oct 3 22:33:12 2016 -0500
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:02 2016 +1100

----------------------------------------------------------------------
 .../using-libcloud-in-multithreaded-and-async-environments.rst     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/eb98f7e9/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
----------------------------------------------------------------------
diff --git a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
index fff5aaa..7b4e2ca 100644
--- a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
+++ b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
@@ -43,7 +43,7 @@ You need to do two things when you want to use Libcloud with gevent:
 * Create a separate driver instance for each Greenlet. This is necessary
   because a driver instance reuses the same Connection class.
 
-For an example see Efficiently download multiple files using gevent.
+For an example see :doc:`Efficiently download multiple files using gevent`</storage/examples.html#efficiently-download-multiple-files-using-gevent>.
 
 Using Libcloud with Twisted
 ---------------------------


[10/22] libcloud git commit: Link fix Closes #886

Posted by an...@apache.org.
Link fix
Closes #886


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

Branch: refs/heads/trunk
Commit: 01206e72c57ec61663de7ba94f5ece5ea9a44642
Parents: ed85d1b
Author: Mike Putnam <mi...@theputnams.net>
Authored: Tue Oct 4 10:07:08 2016 -0500
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:02 2016 +1100

----------------------------------------------------------------------
 .../using-libcloud-in-multithreaded-and-async-environments.rst     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/01206e72/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
----------------------------------------------------------------------
diff --git a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
index 7a25c93..8e6c0fd 100644
--- a/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
+++ b/docs/other/using-libcloud-in-multithreaded-and-async-environments.rst
@@ -43,7 +43,7 @@ You need to do two things when you want to use Libcloud with gevent:
 * Create a separate driver instance for each Greenlet. This is necessary
   because a driver instance reuses the same Connection class.
 
-For an example see :doc:`Efficiently download multiple files using gevent </storage/examples.html>`.
+For an example see :doc:`Efficiently download multiple files using gevent </storage/examples>`.
 
 Using Libcloud with Twisted
 ---------------------------


[18/22] libcloud git commit: Closing more spam PRs

Posted by an...@apache.org.
Closing more spam PRs

Closes #887


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

Branch: refs/heads/trunk
Commit: 2431d6cbcf3910a8c6966b9ea60ff4599697a5d6
Parents: 9fb9352
Author: Anthony Shaw <an...@apache.org>
Authored: Wed Oct 5 10:14:38 2016 +1100
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:03 2016 +1100

----------------------------------------------------------------------
 docs/other/hacktoberfest.txt | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/2431d6cb/docs/other/hacktoberfest.txt
----------------------------------------------------------------------
diff --git a/docs/other/hacktoberfest.txt b/docs/other/hacktoberfest.txt
index 7ab6138..ee52865 100644
--- a/docs/other/hacktoberfest.txt
+++ b/docs/other/hacktoberfest.txt
@@ -1,6 +1,9 @@
+Accounts raising spam pull requests as part of hacktoberfest:
+
 @hamzagsarwari
 @saadaouad
 @amadorfreedompop
 @kcccccc
 @JurgensSmit
 @MattG401
+@go4st


[12/22] libcloud git commit: Correct word usage.

Posted by an...@apache.org.
Correct word usage.

Past tense of scrape is scraped; not scrapped.


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

Branch: refs/heads/trunk
Commit: 6a256c86bbfb020ff4f0172e59ae079321f1959d
Parents: db50a7f
Author: Mike Putnam <mi...@theputnams.net>
Authored: Mon Oct 3 22:14:59 2016 -0500
Committer: Anthony Shaw <an...@apache.org>
Committed: Wed Oct 5 18:37:02 2016 +1100

----------------------------------------------------------------------
 docs/compute/pricing.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/6a256c86/docs/compute/pricing.rst
----------------------------------------------------------------------
diff --git a/docs/compute/pricing.rst b/docs/compute/pricing.rst
index b0c7273..6050670 100644
--- a/docs/compute/pricing.rst
+++ b/docs/compute/pricing.rst
@@ -29,10 +29,10 @@ Where does the Libcloud pricing data come from?
 -----------------------------------------------
 
 Most of the providers don't provide pricing information via the API which means
-most of the pricing information is scrapped directly from the provider
+most of the pricing information is scraped directly from the provider
 websites.
 
-Pricing data which is scrapped from the provider websites is located in a
+Pricing data which is scraped from the provider websites is located in a
 JSON file (``data/pricing.json``) which is bundled with each release. This
 pricing data is only updated once you install a new release which means it
 could be out of date.