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())