From b7bb9f3929a178675f47e5f9f4f0c2199017c53c Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 11:32:01 +0800 Subject: Add TC UT for capacity_check fail in hypervisor fail due to out of storage Change-Id: I65e345fa3d33a04e39f78ac1c2c6e298b662f045 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- .../titanium_cloud/resource/tests/test_capacity.py | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/windriver/titanium_cloud/resource/tests/test_capacity.py b/windriver/titanium_cloud/resource/tests/test_capacity.py index effbc75b..05359e3d 100644 --- a/windriver/titanium_cloud/resource/tests/test_capacity.py +++ b/windriver/titanium_cloud/resource/tests/test_capacity.py @@ -52,6 +52,15 @@ MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM = { } } +MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFSTORAGE = { + "hypervisor_statistics" : { + "vcpus_used" : 4, + "free_ram_mb" : 120*1024, + "vcpus" : 10, + "free_disk_gb" : 3 + } +} + MOCK_GET_STORAGE_RESPONSE = { "limits" : { "rate" : [], @@ -149,3 +158,26 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_hypervisor_outofstorage(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFSTORAGE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-titanium_cloud/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) + + -- cgit 1.2.3-korg From e036fae046cb359ac3e8d8402d86ac2ecf47771d Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:02:14 +0800 Subject: Add TC test_capacity_check_hypervisor_outofvcpu Change-Id: I870baa2222893f23c5226e5cb8a1ace3efca5532 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- .../titanium_cloud/resource/tests/test_capacity.py | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/windriver/titanium_cloud/resource/tests/test_capacity.py b/windriver/titanium_cloud/resource/tests/test_capacity.py index 05359e3d..5a967a53 100644 --- a/windriver/titanium_cloud/resource/tests/test_capacity.py +++ b/windriver/titanium_cloud/resource/tests/test_capacity.py @@ -43,6 +43,15 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU = { + "hypervisor_statistics": { + "vcpus_used": 9, + "free_ram_mb": 120 * 1024, + "vcpus": 10, + "free_disk_gb": 300 + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM = { "hypervisor_statistics" : { "vcpus_used" : 4, @@ -180,4 +189,24 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_hypervisor_outofvcpu(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-titanium_cloud/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) -- cgit 1.2.3-korg From 287e8006941824872efeff8b663fc2bf4301a980 Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:08:06 +0800 Subject: Add TC test_capacity_check_nova_limits_outofram Change-Id: I4c398e8446493df4fc1ea293c30adf64b0662b64 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- .../titanium_cloud/resource/tests/test_capacity.py | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/windriver/titanium_cloud/resource/tests/test_capacity.py b/windriver/titanium_cloud/resource/tests/test_capacity.py index 5a967a53..14840832 100644 --- a/windriver/titanium_cloud/resource/tests/test_capacity.py +++ b/windriver/titanium_cloud/resource/tests/test_capacity.py @@ -52,6 +52,18 @@ MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU = { } } +MOCK_GET_TENANT_LIMIT_RESPONSE_OUTOFRAM = { + "limits": { + "rate": [], + "absolute": { + "maxTotalRAMSize": 128 * 1024, + "totalRAMUsed": 1 * 1024, + "totalCoresUsed": 4, + "maxTotalCores": 20, + } + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM = { "hypervisor_statistics" : { "vcpus_used" : 4, @@ -210,3 +222,22 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_limits_outofram(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE_OUTOFRAM), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-titanium_cloud/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) -- cgit 1.2.3-korg From c72e0f4a8fc3886351291a169470217612641315 Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:14:09 +0800 Subject: Add TC capacity_check_volume_limits_outofstorage Change-Id: Ifdcf210cc49713bf6d183146a2da402238fde9ae Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- .../titanium_cloud/resource/tests/test_capacity.py | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/windriver/titanium_cloud/resource/tests/test_capacity.py b/windriver/titanium_cloud/resource/tests/test_capacity.py index 14840832..b112818f 100644 --- a/windriver/titanium_cloud/resource/tests/test_capacity.py +++ b/windriver/titanium_cloud/resource/tests/test_capacity.py @@ -43,6 +43,16 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_STORAGE_RESPONSE_OOS = { + "limits": { + "rate": [], + "absolute": { + "totalGigabytesUsed": 498, + "maxTotalVolumeGigabytes": 500, + } + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU = { "hypervisor_statistics": { "vcpus_used": 9, @@ -241,3 +251,26 @@ class TestCapacity(test_base.TestRequest): data=json.dumps(TEST_REQ_SUCCESS_SOURCE), content_type='application/json', HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_volume_limits_outofstorage(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE_OOS), + ] + }) + + response = self.client.post( + "/api/multicloud-titanium_cloud/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) + -- cgit 1.2.3-korg From e2af206ad46bc4dd7f1b6d607b7f33e89ddbfa5b Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:22:34 +0800 Subject: newton UT for capacity_check fail in hypervisor fail due to out of RAM Change-Id: I9ae1dbfb1398bfa1516e69396275f6ee8f7084a9 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- newton/newton/resource/tests/test_capacity.py | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/newton/newton/resource/tests/test_capacity.py b/newton/newton/resource/tests/test_capacity.py index fa585237..662325ad 100644 --- a/newton/newton/resource/tests/test_capacity.py +++ b/newton/newton/resource/tests/test_capacity.py @@ -13,6 +13,7 @@ # limitations under the License. import mock +import json from rest_framework import status @@ -42,6 +43,15 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM = { + "hypervisor_statistics" : { + "vcpus_used" : 4, + "free_ram_mb" : 1*1024, + "vcpus" : 10, + "free_disk_gb" : 300 + } +} + MOCK_GET_STORAGE_RESPONSE = { "limits" : { "rate" : [], @@ -116,3 +126,25 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_hypervisor_outofram(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) + -- cgit 1.2.3-korg From 5932bcb2b9c7fdbd66e3d8fea3928c1fec24527e Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:29:13 +0800 Subject: Newton UT for capacity_check fail in hypervisor fail due to out of storage Change-Id: Ia460b88047de823a13386282c25cc5172ff9d500 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- newton/newton/resource/tests/test_capacity.py | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/newton/newton/resource/tests/test_capacity.py b/newton/newton/resource/tests/test_capacity.py index 662325ad..90d88944 100644 --- a/newton/newton/resource/tests/test_capacity.py +++ b/newton/newton/resource/tests/test_capacity.py @@ -43,6 +43,15 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFSTORAGE = { + "hypervisor_statistics" : { + "vcpus_used" : 4, + "free_ram_mb" : 120*1024, + "vcpus" : 10, + "free_disk_gb" : 3 + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM = { "hypervisor_statistics" : { "vcpus_used" : 4, @@ -148,3 +157,24 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_hypervisor_outofstorage(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFSTORAGE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) -- cgit 1.2.3-korg From 330ccef9b10bc9dfa90dfeeaa334087f905d6082 Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:32:12 +0800 Subject: Netwon capacity_check_nova_hypervisor_outofvcpu Change-Id: I2b353dac77d1b580d6aa8fe02e8bcc958a027961 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- newton/newton/resource/tests/test_capacity.py | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/newton/newton/resource/tests/test_capacity.py b/newton/newton/resource/tests/test_capacity.py index 90d88944..7c6452b0 100644 --- a/newton/newton/resource/tests/test_capacity.py +++ b/newton/newton/resource/tests/test_capacity.py @@ -43,6 +43,15 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU = { + "hypervisor_statistics": { + "vcpus_used": 9, + "free_ram_mb": 120 * 1024, + "vcpus": 10, + "free_disk_gb": 300 + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFSTORAGE = { "hypervisor_statistics" : { "vcpus_used" : 4, @@ -178,3 +187,26 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_hypervisor_outofvcpu(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) + -- cgit 1.2.3-korg From 2165c7dd12c4e6447c875f8d261d9b802d1b4def Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:36:37 +0800 Subject: Newton test_capacity_check_nova_limits_outofram Change-Id: I6efe5583695b63849936a90e71f7b46eaa98f226 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- newton/newton/resource/tests/test_capacity.py | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/newton/newton/resource/tests/test_capacity.py b/newton/newton/resource/tests/test_capacity.py index 7c6452b0..3cdc8473 100644 --- a/newton/newton/resource/tests/test_capacity.py +++ b/newton/newton/resource/tests/test_capacity.py @@ -43,6 +43,18 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_TENANT_LIMIT_RESPONSE_OUTOFRAM = { + "limits": { + "rate": [], + "absolute": { + "maxTotalRAMSize": 128 * 1024, + "totalRAMUsed": 127 * 1024, + "totalCoresUsed": 4, + "maxTotalCores": 20, + } + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU = { "hypervisor_statistics": { "vcpus_used": 9, @@ -210,3 +222,25 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_limits_outofram(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE_OUTOFRAM), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) + -- cgit 1.2.3-korg From d9fed0d8ec902f8be6a223aed9548f6807878361 Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:42:25 +0800 Subject: Newton capacity_check_volume_limits_outofstorage Change-Id: I09af1f3c60d7b43090e67605281cbc7b94d57ede Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- newton/newton/resource/tests/test_capacity.py | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/newton/newton/resource/tests/test_capacity.py b/newton/newton/resource/tests/test_capacity.py index 3cdc8473..1c721b58 100644 --- a/newton/newton/resource/tests/test_capacity.py +++ b/newton/newton/resource/tests/test_capacity.py @@ -43,6 +43,16 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_STORAGE_RESPONSE_OOS = { + "limits": { + "rate": [], + "absolute": { + "totalGigabytesUsed": 498, + "maxTotalVolumeGigabytes": 500, + } + } +} + MOCK_GET_TENANT_LIMIT_RESPONSE_OUTOFRAM = { "limits": { "rate": [], @@ -243,4 +253,26 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_volume_limits_outofstorage(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE_OOS), + ] + }) + + response = self.client.post( + "/api/multicloud-newton/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) -- cgit 1.2.3-korg From 0f64005f2ea39680dcafa43cca65de2a1dc88563 Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:55:05 +0800 Subject: Ocata UT for capacity_check fail in hypervisor fail due to out of RAM Change-Id: I8fdc222fdcd915ec40b846b2e1570b1b6f875bc1 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- ocata/ocata/resource/tests/test_capacity.py | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/ocata/ocata/resource/tests/test_capacity.py b/ocata/ocata/resource/tests/test_capacity.py index f7892bd1..b0dc71e2 100644 --- a/ocata/ocata/resource/tests/test_capacity.py +++ b/ocata/ocata/resource/tests/test_capacity.py @@ -13,6 +13,7 @@ # limitations under the License. import mock +import json from rest_framework import status @@ -42,6 +43,15 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM = { + "hypervisor_statistics" : { + "vcpus_used" : 4, + "free_ram_mb" : 1*1024, + "vcpus" : 10, + "free_disk_gb" : 300 + } +} + MOCK_GET_STORAGE_RESPONSE = { "limits" : { "rate" : [], @@ -116,3 +126,24 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_hypervisor_outofram(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-ocata/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) -- cgit 1.2.3-korg From e6e2f4b75ff2bb00f9a89190cb31bfea988db68b Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 12:57:56 +0800 Subject: Ocata UT for capacity_check fail in hypervisor fail due to out of storage Change-Id: I82644ff666d3b9930e4536edd2730af04f2760f3 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- ocata/ocata/resource/tests/test_capacity.py | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/ocata/ocata/resource/tests/test_capacity.py b/ocata/ocata/resource/tests/test_capacity.py index b0dc71e2..a6b3caf4 100644 --- a/ocata/ocata/resource/tests/test_capacity.py +++ b/ocata/ocata/resource/tests/test_capacity.py @@ -43,6 +43,15 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFSTORAGE = { + "hypervisor_statistics" : { + "vcpus_used" : 4, + "free_ram_mb" : 120*1024, + "vcpus" : 10, + "free_disk_gb" : 3 + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFRAM = { "hypervisor_statistics" : { "vcpus_used" : 4, @@ -147,3 +156,25 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_hypervisor_outofstorage(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFSTORAGE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-ocata/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) -- cgit 1.2.3-korg From 3fd47421e72e8e97e1eaecf288f6d332a6bbf36f Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 13:01:10 +0800 Subject: Ocata capacity_check_nova_hypervisor_outofvcpu Change-Id: Ib603915bdc66cc8b905eae9d25df88473678f0f0 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- ocata/ocata/resource/tests/test_capacity.py | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/ocata/ocata/resource/tests/test_capacity.py b/ocata/ocata/resource/tests/test_capacity.py index a6b3caf4..3fb17f02 100644 --- a/ocata/ocata/resource/tests/test_capacity.py +++ b/ocata/ocata/resource/tests/test_capacity.py @@ -43,6 +43,15 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU = { + "hypervisor_statistics": { + "vcpus_used": 9, + "free_ram_mb": 120 * 1024, + "vcpus": 10, + "free_disk_gb": 300 + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFSTORAGE = { "hypervisor_statistics" : { "vcpus_used" : 4, @@ -178,3 +187,25 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_hypervisor_outofvcpu(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-ocata/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) -- cgit 1.2.3-korg From 2f56599f278527cad0ff3c4d00319cdf990924d4 Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 13:19:45 +0800 Subject: Ocata test_capacity_check_nova_limits_outofram Change-Id: I7ff4321cb3af69e66c09bc62fc9a94ae4134e71d Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- ocata/ocata/resource/tests/test_capacity.py | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/ocata/ocata/resource/tests/test_capacity.py b/ocata/ocata/resource/tests/test_capacity.py index 3fb17f02..ded870b8 100644 --- a/ocata/ocata/resource/tests/test_capacity.py +++ b/ocata/ocata/resource/tests/test_capacity.py @@ -43,6 +43,18 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_TENANT_LIMIT_RESPONSE_OUTOFRAM = { + "limits": { + "rate": [], + "absolute": { + "maxTotalRAMSize": 128 * 1024, + "totalRAMUsed": 1 * 1024, + "totalCoresUsed": 4, + "maxTotalCores": 20, + } + } +} + MOCK_GET_HYPER_STATATICS_RESPONSE_OUTOFVCPU = { "hypervisor_statistics": { "vcpus_used": 9, @@ -209,3 +221,22 @@ class TestCapacity(test_base.TestRequest): self.assertEquals(status.HTTP_200_OK, response.status_code) self.assertEqual({"result": False}, response.data) + + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_nova_limits_outofram(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE_OUTOFRAM), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE), + ] + }) + + response = self.client.post( + "/api/multicloud-ocata/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) -- cgit 1.2.3-korg From 5a4a7d74efb9a86823f7650a080d3b58e18c8078 Mon Sep 17 00:00:00 2001 From: Yun Huang Date: Wed, 28 Mar 2018 13:23:01 +0800 Subject: Ocata capacity_check_volume_limits_outofstorage Change-Id: I30528936349d45225217f8ee0df348aa24d73bb2 Issue-ID: MULTICLOUD-203 Signed-off-by: Yun Huang --- ocata/ocata/resource/tests/test_capacity.py | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/ocata/ocata/resource/tests/test_capacity.py b/ocata/ocata/resource/tests/test_capacity.py index ded870b8..0f1fc160 100644 --- a/ocata/ocata/resource/tests/test_capacity.py +++ b/ocata/ocata/resource/tests/test_capacity.py @@ -43,6 +43,16 @@ MOCK_GET_HYPER_STATATICS_RESPONSE = { } } +MOCK_GET_STORAGE_RESPONSE_OOS = { + "limits": { + "rate": [], + "absolute": { + "totalGigabytesUsed": 498, + "maxTotalVolumeGigabytes": 500, + } + } +} + MOCK_GET_TENANT_LIMIT_RESPONSE_OUTOFRAM = { "limits": { "rate": [], @@ -240,3 +250,26 @@ class TestCapacity(test_base.TestRequest): data=json.dumps(TEST_REQ_SUCCESS_SOURCE), content_type='application/json', HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + @mock.patch.object(VimDriverUtils, 'get_session') + @mock.patch.object(VimDriverUtils, 'get_vim_info') + def test_capacity_check_volume_limits_outofstorage(self, mock_get_vim_info, mock_get_session): + mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO + mock_get_session.return_value = test_base.get_mock_session( + ["get"], { + "side_effect": [ + self._get_mock_response(MOCK_GET_TENANT_LIMIT_RESPONSE), + self._get_mock_response(MOCK_GET_HYPER_STATATICS_RESPONSE), + self._get_mock_response(MOCK_GET_STORAGE_RESPONSE_OOS), + ] + }) + + response = self.client.post( + "/api/multicloud-ocata/v0/windriver-hudson-dc_RegionOne/capacity_check", + data=json.dumps(TEST_REQ_SUCCESS_SOURCE), + content_type='application/json', + HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID) + + self.assertEquals(status.HTTP_200_OK, response.status_code) + self.assertEqual({"result": False}, response.data) + -- cgit 1.2.3-korg