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 2018/12/19 05:34:10 UTC

[08/21] libcloud git commit: completed tests for drs without a drs driver

completed tests for drs without a drs driver


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

Branch: refs/heads/trunk
Commit: af20d3901cac5b57e9c9e004430d755efd35517f
Parents: 4cdc28d
Author: mitch <mi...@itaas.dimensiondata.com>
Authored: Tue Dec 4 17:33:49 2018 -0500
Committer: mitch <mi...@itaas.dimensiondata.com>
Committed: Tue Dec 4 17:33:49 2018 -0500

----------------------------------------------------------------------
 libcloud/compute/drivers/nttcis.py              |  1 -
 .../compute/fixtures/nttcis/drs_create_cg.xml   |  7 ++
 .../nttcis/drs_delete_consistency_group.xml     |  6 ++
 .../nttcis/drs_fail_create_cg_ineligible.xml    |  6 ++
 .../nttcis/drs_fail_create_cg_not_supported.xml |  6 ++
 libcloud/test/compute/test_nttcis.py            | 73 ++++++++++++++++++++
 6 files changed, 98 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/af20d390/libcloud/compute/drivers/nttcis.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/nttcis.py b/libcloud/compute/drivers/nttcis.py
index 5dca8cd..9ac0f36 100644
--- a/libcloud/compute/drivers/nttcis.py
+++ b/libcloud/compute/drivers/nttcis.py
@@ -1017,7 +1017,6 @@ class NttCisNodeDriver(NodeDriver):
                         'urn:tag')
                     ET.SubElement(tag_elem,
                                   'urn:tagKeyName').text = k
-
                     if v is not None:
                         ET.SubElement(tag_elem,
                                       'urn:value').text = v

http://git-wip-us.apache.org/repos/asf/libcloud/blob/af20d390/libcloud/test/compute/fixtures/nttcis/drs_create_cg.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/nttcis/drs_create_cg.xml b/libcloud/test/compute/fixtures/nttcis/drs_create_cg.xml
new file mode 100644
index 0000000..425fba0
--- /dev/null
+++ b/libcloud/test/compute/fixtures/nttcis/drs_create_cg.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<response xmlns="urn:didata.com:api:cloud:types" requestId="na_20181204T165435521-0500_b730567e-d306-40c5-a9a3-27b018f60fc7">
+    <operation>CREATE_CONSISTENCY_GROUP</operation>
+    <responseCode>IN_PROGRESS</responseCode>
+    <message>Request to Create Consistency Group has been accepted. Please use appropriate Get or List API for status.</message>
+    <info name="consistencyGroupId" value="fad067be-6ca7-495d-99dc-7921c5f2ca5d"/>
+</response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/af20d390/libcloud/test/compute/fixtures/nttcis/drs_delete_consistency_group.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/nttcis/drs_delete_consistency_group.xml b/libcloud/test/compute/fixtures/nttcis/drs_delete_consistency_group.xml
new file mode 100644
index 0000000..c5fcffa
--- /dev/null
+++ b/libcloud/test/compute/fixtures/nttcis/drs_delete_consistency_group.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<response xmlns="urn:didata.com:api:cloud:types" requestId="na_20181204T172637824-0500_811c25d4-69f6-4a33-a0fc-1594eb014d9f">
+    <operation>DELETE_CONSISTENCY_GROUP</operation>
+    <responseCode>IN_PROGRESS</responseCode>
+    <message>Request to Delete Consistency Group has been accepted. Please use appropriate Get or List API for status.</message>
+</response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/af20d390/libcloud/test/compute/fixtures/nttcis/drs_fail_create_cg_ineligible.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/nttcis/drs_fail_create_cg_ineligible.xml b/libcloud/test/compute/fixtures/nttcis/drs_fail_create_cg_ineligible.xml
new file mode 100644
index 0000000..75f51ac
--- /dev/null
+++ b/libcloud/test/compute/fixtures/nttcis/drs_fail_create_cg_ineligible.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<response xmlns="urn:didata.com:api:cloud:types" requestId="na_20181204T161623175-0500_9fd3e8ab-a3b2-4c7d-a00b-bba07141d22f">
+    <operation>CREATE_CONSISTENCY_GROUP</operation>
+    <responseCode>INCOMPATIBLE_OPERATION</responseCode>
+    <message>The drsEligible flag for target Server aee58575-38e2-495f-89d3-854e6a886411 must be set.</message>
+</response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/af20d390/libcloud/test/compute/fixtures/nttcis/drs_fail_create_cg_not_supported.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/nttcis/drs_fail_create_cg_not_supported.xml b/libcloud/test/compute/fixtures/nttcis/drs_fail_create_cg_not_supported.xml
new file mode 100644
index 0000000..b78b5c8
--- /dev/null
+++ b/libcloud/test/compute/fixtures/nttcis/drs_fail_create_cg_not_supported.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<response xmlns="urn:didata.com:api:cloud:types" requestId="na_20181204T160840695-0500_fef252f1-a72b-4674-85a6-076057f93e16">
+    <operation>CREATE_CONSISTENCY_GROUP</operation>
+    <responseCode>OPERATION_NOT_SUPPORTED</responseCode>
+    <message>DRS is not supported between source Data Center NA9 and target Data Center NA12.</message>
+</response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/libcloud/blob/af20d390/libcloud/test/compute/test_nttcis.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_nttcis.py b/libcloud/test/compute/test_nttcis.py
index 2187b97..b88b4e1 100644
--- a/libcloud/test/compute/test_nttcis.py
+++ b/libcloud/test/compute/test_nttcis.py
@@ -1934,6 +1934,42 @@ def test_initiate_drs_failover(driver):
     assert result is True
 
 
+def test_create_drs_fail_not_supported(driver):
+    NttCisMockHttp.type = "FAIL_NOT_SUPPORTED"
+    src_id = "032f3967-00e4-4780-b4ef-8587460f9dd4"
+    target_id = "aee58575-38e2-495f-89d3-854e6a886411"
+    with pytest.raises(NttCisAPIException) as excinfo:
+        result = driver.create_consistency_group(
+            "sdk_cg", "100", src_id, target_id, description="A test consistency group")
+    exception_msg = excinfo.value.msg
+    assert exception_msg == 'DRS is not supported between source Data Center NA9 and target Data Center NA12.'
+
+
+def test_create_drs_cg_fail_ineligble(driver):
+    NttCisMockHttp.type = "FAIL_INELIGIBLE"
+    src_id = "032f3967-00e4-4780-b4ef-8587460f9dd4"
+    target_id = "aee58575-38e2-495f-89d3-854e6a886411"
+    with pytest.raises(NttCisAPIException) as excinfo:
+        driver.create_consistency_group(
+            "sdk_test2_cg", "100", src_id, target_id, description="A test consistency group")
+    exception_msg = excinfo.value.msg
+    assert exception_msg == 'The drsEligible flag for target Server aee58575-38e2-495f-89d3-854e6a886411 must be set.'
+
+
+def test_create_drs_cg(driver):
+    src_id = "032f3967-00e4-4780-b4ef-8587460f9dd4"
+    target_id = "aee58575-38e2-495f-89d3-854e6a886411"
+    result = driver.create_consistency_group(
+        "sdk_test2_cg2", "100", src_id, target_id, description="A test consistency group")
+    assert result is True
+
+
+def test_delete_consistency_group(driver):
+    cg_id = "fad067be-6ca7-495d-99dc-7921c5f2ca5"
+    result = driver.delete_consistency_group(cg_id)
+    assert result is True
+
+
 class InvalidRequestError(Exception):
     def __init__(self, tag):
         super(InvalidRequestError, self).__init__("Invalid Request - %s" % tag)
@@ -1982,6 +2018,14 @@ class NttCisMockHttp(MockHttp):
         body = self.fixtures.load('oec_0_9_myaccount.xml')
         return (httplib.OK, body, {}, httplib.responses[httplib.OK])
 
+    def _oec_0_9_myaccount_FAIL_INELIGIBLE(self, method, url, body, headers):
+        body = self.fixtures.load('oec_0_9_myaccount.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+    def _oec_0_9_myaccount_FAIL_NOT_SUPPORTED(self, method, url, body, headers):
+        body = self.fixtures.load('oec_0_9_myaccount.xml')
+        return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
     def _caas_2_7_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_networkWithLocation(self, method, url, body, headers):
         body = self.fixtures.load(
             'networkWithLocation.xml')
@@ -3302,3 +3346,32 @@ class NttCisMockHttp(MockHttp):
             "drs_initiate_failover.xml"
         )
         return httplib.OK, body, {}, httplib.responses[httplib.OK]
+
+    def _caas_2_7_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_consistencyGroup_createConsistencyGroup_FAIL_INELIGIBLE(
+        self, method, url, body, headers):
+        body = self.fixtures.load(
+            "drs_fail_create_cg_ineligible.xml"
+        )
+        return httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK]
+
+    def _caas_2_7_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_consistencyGroup_createConsistencyGroup_FAIL_NOT_SUPPORTED(
+        self, method, url, body, headers):
+        body = self.fixtures.load(
+            "drs_fail_create_cg_not_supported.xml"
+        )
+        return httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK]
+
+    def _caas_2_7_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_consistencyGroup_createConsistencyGroup(
+        self, method, url, body, headers):
+        body = self.fixtures.load(
+            "drs_create_cg.xml"
+        )
+        return httplib.OK, body, {}, httplib.responses[httplib.OK]
+
+    def _caas_2_7_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_consistencyGroup_deleteConsistencyGroup(
+        self, method, url, body, headers):
+        body = self.fixtures.load(
+            "drs_delete_consistency_group.xml"
+        )
+        return httplib.OK, body, {}, httplib.responses[httplib.OK]
+