added tests for fail create and fail failover with invalid status
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/4cdc28d0 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/4cdc28d0 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/4cdc28d0 Branch: refs/heads/trunk Commit: 4cdc28d0c55c64cde3c5e9acbb71781bc593b025 Parents: facbea2 Author: mitch <[email protected]> Authored: Sun Dec 2 18:44:59 2018 -0500 Committer: mitch <[email protected]> Committed: Sun Dec 2 18:44:59 2018 -0500 ---------------------------------------------------------------------- .../drs_fail_create_consistency_group.xml | 6 ++++ .../fixtures/nttcis/drs_initiate_failover.xml | 6 ++++ .../fixtures/nttcis/drs_invalid_status.xml | 6 ++++ libcloud/test/compute/test_nttcis.py | 32 ++++++++++++++++++++ 4 files changed, 50 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/4cdc28d0/libcloud/test/compute/fixtures/nttcis/drs_fail_create_consistency_group.xml ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/fixtures/nttcis/drs_fail_create_consistency_group.xml b/libcloud/test/compute/fixtures/nttcis/drs_fail_create_consistency_group.xml new file mode 100644 index 0000000..6ab6fa6 --- /dev/null +++ b/libcloud/test/compute/fixtures/nttcis/drs_fail_create_consistency_group.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<response xmlns="urn:didata.com:api:cloud:types" requestId="na_20181202T181715908-0500_f5fe1a96-ba61-449a-a33f-36b7d92375c1"> + <operation>CREATE_CONSISTENCY_GROUP</operation> + <responseCode>NAME_NOT_UNIQUE</responseCode> + <message>Another Consistency Group named 'sdk_test2_cg' already exists.</message> +</response> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/libcloud/blob/4cdc28d0/libcloud/test/compute/fixtures/nttcis/drs_initiate_failover.xml ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/fixtures/nttcis/drs_initiate_failover.xml b/libcloud/test/compute/fixtures/nttcis/drs_initiate_failover.xml new file mode 100644 index 0000000..28f52e8 --- /dev/null +++ b/libcloud/test/compute/fixtures/nttcis/drs_initiate_failover.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<response xmlns="urn:didata.com:api:cloud:types" requestId="na_20181202T123146961-0500_c16e0e02-1ba2-4baf-9adb-55e850cfa2d8"> + <operation>INITIATE_FAILOVER</operation> + <responseCode>IN_PROGRESS</responseCode> + <message>Request to Initiate Failover 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/4cdc28d0/libcloud/test/compute/fixtures/nttcis/drs_invalid_status.xml ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/fixtures/nttcis/drs_invalid_status.xml b/libcloud/test/compute/fixtures/nttcis/drs_invalid_status.xml new file mode 100644 index 0000000..e707d85 --- /dev/null +++ b/libcloud/test/compute/fixtures/nttcis/drs_invalid_status.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<response xmlns="urn:didata.com:api:cloud:types" requestId="na_20181202T120424113-0500_b4d3b67b-08f4-432b-8e88-48625180ff32"> + <operation>INITIATE_FAILOVER</operation> + <responseCode>INVALID_STATUS</responseCode> + <message>You cannot Initiate Failover because Consistency Group with id 195a426b-4559-4c79-849e-f22cdf2bfb6e is not in PREVIEWING_SNAPSHOT Operation Status.</message> +</response> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/libcloud/blob/4cdc28d0/libcloud/test/compute/test_nttcis.py ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/test_nttcis.py b/libcloud/test/compute/test_nttcis.py index cbc4fdb..2187b97 100644 --- a/libcloud/test/compute/test_nttcis.py +++ b/libcloud/test/compute/test_nttcis.py @@ -1920,6 +1920,20 @@ def test_stop_drs_snapshot_preivew(driver): assert result is True +def test_start_drs_failover_invalid_status(driver): + NttCisMockHttp.type = "INVALID_STATUS" + cg_id = "195a426b-4559-4c79-849e-f22cdf2bfb6e" + with pytest.raises(NttCisAPIException) as excinfo: + result = driver.initiate_drs_failover(cg_id) + assert "INVALID_STATUS" in excinfo.value.code + + +def test_initiate_drs_failover(driver): + cg_id = "195a426b-4559-4c79-849e-f22cdf2bfb6e" + result = driver.initiate_drs_failover(cg_id) + assert result is True + + class InvalidRequestError(Exception): def __init__(self, tag): super(InvalidRequestError, self).__init__("Invalid Request - %s" % tag) @@ -1964,6 +1978,10 @@ 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_INVALID_STATUS(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') @@ -3270,3 +3288,17 @@ class NttCisMockHttp(MockHttp): "drs_stop_failover_preview.xml" ) return httplib.OK, body, {}, httplib.responses[httplib.OK] + + def _caas_2_7_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_consistencyGroup_initiateFailover_INVALID_STATUS( + self, method, url, body, headers): + body = self.fixtures.load( + "drs_invalid_status.xml" + ) + return httplib.BAD_REQUEST, body, {}, httplib.responses[httplib.OK] + + def _caas_2_7_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_consistencyGroup_initiateFailover( + self, method, url, body, headers): + body = self.fixtures.load( + "drs_initiate_failover.xml" + ) + return httplib.OK, body, {}, httplib.responses[httplib.OK]
