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/04/15 02:51:09 UTC
[1/3] libcloud git commit: added ability to use node or node_id as an
argument to clean_failed_deployment
Repository: libcloud
Updated Branches:
refs/heads/trunk eaba89186 -> 97e9bcce6
added ability to use node or node_id as an argument to clean_failed_deployment
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/aa7208ab
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/aa7208ab
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/aa7208ab
Branch: refs/heads/trunk
Commit: aa7208ab79721c2ce84d25047ce86cd2dde5f10a
Parents: da06e86
Author: Lawrence Lui <la...@itaas.dimensiondata.com>
Authored: Thu Apr 14 10:17:56 2016 -0700
Committer: anthony-shaw <an...@apache.org>
Committed: Fri Apr 15 10:50:40 2016 +1000
----------------------------------------------------------------------
libcloud/compute/drivers/dimensiondata.py | 8 ++++++--
...8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml | 2 +-
libcloud/test/compute/test_dimensiondata.py | 7 ++++++-
3 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/aa7208ab/libcloud/compute/drivers/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dimensiondata.py b/libcloud/compute/drivers/dimensiondata.py
index d8ad735..1b54559 100644
--- a/libcloud/compute/drivers/dimensiondata.py
+++ b/libcloud/compute/drivers/dimensiondata.py
@@ -1831,10 +1831,14 @@ class DimensionDataNodeDriver(NodeDriver):
Removes a node that has failed to deploy
:param node: The failed node to clean
- :type node: :class:`Node`
+ :type node: :class:`Node` or ``str``
"""
+ if isinstance(node, str):
+ node_id = node
+ else:
+ node_id = node.id
request_elm = ET.Element('cleanServer',
- {'xmlns': TYPES_URN, 'id': node.id})
+ {'xmlns': TYPES_URN, 'id': node_id})
body = self.connection.request_with_orgId_api_2(
'server/cleanServer',
method='POST',
http://git-wip-us.apache.org/repos/asf/libcloud/blob/aa7208ab/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml b/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml
index d289efd..011dfd4 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml
@@ -5,5 +5,5 @@ xmlns="urn:didata.com:api:cloud:types" requestId="au/2016-04-
<operation>CLEAN_SERVER</operation>
<responseCode>IN_PROGRESS</responseCode>
<message>The request to clean a failed Server deployment for Server
-ee9dd854-f013-4006-89f9-d9f3f97dff57 has been accepted and is being processed.</message>
+e75ead52-692f-4314-8725-c8a4f4d13a87 has been accepted and is being processed.</message>
</response>
http://git-wip-us.apache.org/repos/asf/libcloud/blob/aa7208ab/libcloud/test/compute/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata.py b/libcloud/test/compute/test_dimensiondata.py
index ad01321..db6d994 100644
--- a/libcloud/test/compute/test_dimensiondata.py
+++ b/libcloud/test/compute/test_dimensiondata.py
@@ -186,12 +186,17 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
self.assertEqual(images[0].extra['cpu'].cpu_count, 2)
self.assertEqual(images[0].extra['OS_displayName'], 'REDHAT6/64')
- def test_clean_failed_deployment_response(self):
+ def test_clean_failed_deployment_response_with_node(self):
node = Node(id='11', name=None, state=None,
public_ips=None, private_ips=None, driver=self.driver)
ret = self.driver.ex_clean_failed_deployment(node)
self.assertTrue(ret is True)
+ def test_clean_failed_deployment_response_with_node_id(self):
+ node = 'e75ead52-692f-4314-8725-c8a4f4d13a87'
+ ret = self.driver.ex_clean_failed_deployment(node)
+ self.assertTrue(ret is True)
+
def test_ex_list_customer_images(self):
images = self.driver.ex_list_customer_images()
self.assertEqual(len(images), 3)
[3/3] libcloud git commit: using _node_to_node_id for
clean_failed_deployment Closes #749
Posted by an...@apache.org.
using _node_to_node_id for clean_failed_deployment
Closes #749
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/97e9bcce
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/97e9bcce
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/97e9bcce
Branch: refs/heads/trunk
Commit: 97e9bcce6177f1dbadd7dc174e3c9d86943a3fbe
Parents: aa7208a
Author: Lawrence Lui <la...@itaas.dimensiondata.com>
Authored: Thu Apr 14 10:25:46 2016 -0700
Committer: anthony-shaw <an...@apache.org>
Committed: Fri Apr 15 10:50:45 2016 +1000
----------------------------------------------------------------------
libcloud/compute/drivers/dimensiondata.py | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/97e9bcce/libcloud/compute/drivers/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dimensiondata.py b/libcloud/compute/drivers/dimensiondata.py
index 1b54559..29009db 100644
--- a/libcloud/compute/drivers/dimensiondata.py
+++ b/libcloud/compute/drivers/dimensiondata.py
@@ -1833,10 +1833,7 @@ class DimensionDataNodeDriver(NodeDriver):
:param node: The failed node to clean
:type node: :class:`Node` or ``str``
"""
- if isinstance(node, str):
- node_id = node
- else:
- node_id = node.id
+ node_id = self._node_to_node_id(node)
request_elm = ET.Element('cleanServer',
{'xmlns': TYPES_URN, 'id': node_id})
body = self.connection.request_with_orgId_api_2(
[2/3] libcloud git commit: added ex_clean_failed_deployment
Posted by an...@apache.org.
added ex_clean_failed_deployment
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/da06e86b
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/da06e86b
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/da06e86b
Branch: refs/heads/trunk
Commit: da06e86b18405e95464a8b3548bd1c1b95f9fe3f
Parents: eaba891
Author: Lawrence Lui <la...@itaas.dimensiondata.com>
Authored: Wed Apr 13 17:51:22 2016 -0700
Committer: anthony-shaw <an...@apache.org>
Committed: Fri Apr 15 10:50:40 2016 +1000
----------------------------------------------------------------------
libcloud/compute/drivers/dimensiondata.py | 16 ++++++++++++++++
...45_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml | 9 +++++++++
libcloud/test/compute/test_dimensiondata.py | 11 +++++++++++
3 files changed, 36 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/da06e86b/libcloud/compute/drivers/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dimensiondata.py b/libcloud/compute/drivers/dimensiondata.py
index 19a3856..d8ad735 100644
--- a/libcloud/compute/drivers/dimensiondata.py
+++ b/libcloud/compute/drivers/dimensiondata.py
@@ -1826,6 +1826,22 @@ class DimensionDataNodeDriver(NodeDriver):
response_code = findtext(result, 'result', GENERAL_NS)
return response_code in ['IN_PROGRESS', 'SUCCESS']
+ def ex_clean_failed_deployment(self, node):
+ """
+ Removes a node that has failed to deploy
+
+ :param node: The failed node to clean
+ :type node: :class:`Node`
+ """
+ request_elm = ET.Element('cleanServer',
+ {'xmlns': TYPES_URN, 'id': node.id})
+ body = self.connection.request_with_orgId_api_2(
+ 'server/cleanServer',
+ method='POST',
+ data=ET.tostring(request_elm)).object
+ response_code = findtext(body, 'responseCode', TYPES_URN)
+ return response_code in ['IN_PROGRESS', 'OK']
+
def ex_list_customer_images(self, location=None):
"""
Return a list of customer imported images
http://git-wip-us.apache.org/repos/asf/libcloud/blob/da06e86b/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml b/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml
new file mode 100644
index 0000000..d289efd
--- /dev/null
+++ b/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<response
+xmlns="urn:didata.com:api:cloud:types" requestId="au/2016-04-
+14T10:08:07.701+10:00/1cc24d5e-4612-499b-a5d4-8fd5dbb511f0">
+<operation>CLEAN_SERVER</operation>
+<responseCode>IN_PROGRESS</responseCode>
+<message>The request to clean a failed Server deployment for Server
+ee9dd854-f013-4006-89f9-d9f3f97dff57 has been accepted and is being processed.</message>
+</response>
http://git-wip-us.apache.org/repos/asf/libcloud/blob/da06e86b/libcloud/test/compute/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata.py b/libcloud/test/compute/test_dimensiondata.py
index d96142d..ad01321 100644
--- a/libcloud/test/compute/test_dimensiondata.py
+++ b/libcloud/test/compute/test_dimensiondata.py
@@ -186,6 +186,12 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
self.assertEqual(images[0].extra['cpu'].cpu_count, 2)
self.assertEqual(images[0].extra['OS_displayName'], 'REDHAT6/64')
+ def test_clean_failed_deployment_response(self):
+ node = Node(id='11', name=None, state=None,
+ public_ips=None, private_ips=None, driver=self.driver)
+ ret = self.driver.ex_clean_failed_deployment(node)
+ self.assertTrue(ret is True)
+
def test_ex_list_customer_images(self):
images = self.driver.ex_list_customer_images()
self.assertEqual(len(images), 3)
@@ -1717,5 +1723,10 @@ class DimensionDataMockHttp(MockHttp):
'caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_reconfigureServer.xml')
return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+ def _caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer(self, method, url, body, headers):
+ body = self.fixtures.load(
+ 'caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_server_cleanServer.xml')
+ return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
if __name__ == '__main__':
sys.exit(unittest.main())