summaryrefslogtreecommitdiff
path: root/ceilometer/tests/unit/test_neutronclient_lbaas_v2.py
diff options
context:
space:
mode:
Diffstat (limited to 'ceilometer/tests/unit/test_neutronclient_lbaas_v2.py')
-rw-r--r--ceilometer/tests/unit/test_neutronclient_lbaas_v2.py339
1 files changed, 0 insertions, 339 deletions
diff --git a/ceilometer/tests/unit/test_neutronclient_lbaas_v2.py b/ceilometer/tests/unit/test_neutronclient_lbaas_v2.py
deleted file mode 100644
index 64020139..00000000
--- a/ceilometer/tests/unit/test_neutronclient_lbaas_v2.py
+++ /dev/null
@@ -1,339 +0,0 @@
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-from unittest import mock
-
-from neutronclient.v2_0 import client
-from oslotest import base
-
-from ceilometer import neutron_client
-from ceilometer import service
-
-
-class TestNeutronClientLBaaSV2(base.BaseTestCase):
-
- def setUp(self):
- super(TestNeutronClientLBaaSV2, self).setUp()
- conf = service.prepare_service([], [])
- self.nc = neutron_client.Client(conf)
-
- @staticmethod
- def fake_list_lbaas_pools():
- return {
- 'pools': [{
- 'lb_algorithm': 'ROUND_ROBIN',
- 'protocol': 'HTTP',
- 'description': 'simple pool',
- 'admin_state_up': True,
- 'tenant_id': '1a3e005cf9ce40308c900bcb08e5320c',
- 'healthmonitor_id': None,
- 'listeners': [{
- 'id': "35cb8516-1173-4035-8dae-0dae3453f37f"
- }
- ],
- 'members': [{
- 'id': 'fcf23bde-8cf9-4616-883f-208cebcbf858'}
- ],
- 'id': '4c0a0a5f-cf8f-44b7-b912-957daa8ce5e5',
- 'name': 'pool1'
- }]
- }
-
- @staticmethod
- def fake_list_lbaas_members():
- return {
- 'members': [{
- 'weight': 1,
- 'admin_state_up': True,
- 'subnet_id': '013d3059-87a4-45a5-91e9-d721068ae0b2',
- 'tenant_id': '1a3e005cf9ce40308c900bcb08e5320c',
- 'address': '10.0.0.8',
- 'protocol_port': 80,
- 'id': 'fcf23bde-8cf9-4616-883f-208cebcbf858'
- }]
- }
-
- @staticmethod
- def fake_list_lbaas_healthmonitors():
- return {
- 'healthmonitors': [{
- 'admin_state_up': True,
- 'tenant_id': '6f3584d5754048a18e30685362b88411',
- 'delay': 1,
- 'expected_codes': '200,201,202',
- 'max_retries': 5,
- 'http_method': 'GET',
- 'timeout': 1,
- 'pools': [{
- 'id': '74aa2010-a59f-4d35-a436-60a6da882819'
- }],
- 'url_path': '/index.html',
- 'type': 'HTTP',
- 'id': '0a9ac99d-0a09-4b18-8499-a0796850279a'
- }]
- }
-
- @staticmethod
- def fake_show_listener():
- return {
- 'listener': {
- 'default_pool_id': None,
- 'protocol': 'HTTP',
- 'description': '',
- 'admin_state_up': True,
- 'loadbalancers': [{
- 'id': 'a9729389-6147-41a3-ab22-a24aed8692b2'
- }],
- 'tenant_id': '3e4d8bec50a845fcb09e03a4375c691d',
- 'connection_limit': 100,
- 'protocol_port': 80,
- 'id': '35cb8516-1173-4035-8dae-0dae3453f37f',
- 'name': ''
- }
- }
-
- @staticmethod
- def fake_retrieve_loadbalancer_status():
- return {
- 'statuses': {
- 'loadbalancer': {
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE',
- 'listeners': [{
- 'id': '35cb8516-1173-4035-8dae-0dae3453f37f',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE',
- 'pools': [{
- 'id': '4c0a0a5f-cf8f-44b7-b912-957daa8ce5e5',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE',
- 'members': [{
- 'id': 'fcf23bde-8cf9-4616-883f-208cebcbf858',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE'
- }],
- 'healthmonitor': {
- 'id': '785131d2-8f7b-4fee-a7e7-3196e11b4518',
- 'provisioning_status': 'ACTIVE'
- }
- }]
- }]
- }
- }
- }
-
- @staticmethod
- def fake_retrieve_loadbalancer_status_complex():
- return {
- 'statuses': {
- 'loadbalancer': {
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE',
- 'listeners': [{
- 'id': '35cb8516-1173-4035-8dae-0dae3453f37f',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE',
- 'pools': [{
- 'id': '4c0a0a5f-cf8f-44b7-b912-957daa8ce5e5',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE',
- 'members': [{
- 'id': 'fcf23bde-8cf9-4616-883f-208cebcbf858',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE'
- },
- {
- 'id': 'fcf23bde-8cf9-4616-883f-208cebcbf969',
- 'operating_status': 'OFFLINE',
- 'provisioning_status': 'ACTIVE'
- }],
- 'healthmonitor': {
- 'id': '785131d2-8f7b-4fee-a7e7-3196e11b4518',
- 'provisioning_status': 'ACTIVE'
- }
- },
- {
- 'id': '4c0a0a5f-cf8f-44b7-b912-957daa8ce6f6',
- 'operating_status': 'OFFLINE',
- 'provisioning_status': 'ACTIVE',
- 'members': [{
- 'id': 'fcf23bde-8cf9-4616-883f-208cebcbfa7a',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE'
- }],
- 'healthmonitor': {
- 'id': '785131d2-8f7b-4fee-a7e7-3196e11b4629',
- 'provisioning_status': 'ACTIVE'
- }
- }]
- },
- {
- 'id': '35cb8516-1173-4035-8dae-0dae3453f48e',
- 'operating_status': 'OFFLINE',
- 'provisioning_status': 'ACTIVE',
- 'pools': [{
- 'id': '4c0a0a5f-cf8f-44b7-b912-957daa8ce7g7',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE',
- 'members': [{
- 'id': 'fcf23bde-8cf9-4616-883f-208cebcbfb8b',
- 'operating_status': 'ONLINE',
- 'provisioning_status': 'ACTIVE'
- }],
- 'healthmonitor': {
- 'id': '785131d2-8f7b-4fee-a7e7-3196e11b473a',
- 'provisioning_status': 'ACTIVE'
- }
- }]
- }]
- }
- }
- }
-
- @staticmethod
- def fake_list_lbaas_listeners():
- return {
- 'listeners': [{
- 'default_pool_id': None,
- 'protocol': 'HTTP',
- 'description': '',
- 'admin_state_up': True,
- 'loadbalancers': [{
- 'id': 'a9729389-6147-41a3-ab22-a24aed8692b2'
- }],
- 'tenant_id': '3e4d8bec50a845fcb09e03a4375c691d',
- 'connection_limit': 100,
- 'protocol_port': 80,
- 'id': '35cb8516-1173-4035-8dae-0dae3453f37f',
- 'name': 'listener_one'
- }]}
-
- @mock.patch.object(client.Client,
- 'list_lbaas_pools')
- @mock.patch.object(client.Client,
- 'show_listener')
- @mock.patch.object(neutron_client.Client,
- '_retrieve_loadbalancer_status_tree')
- def test_list_pools_v2(self, mock_status, mock_show, mock_list):
- mock_status.return_value = self.fake_retrieve_loadbalancer_status()
- mock_show.return_value = self.fake_show_listener()
- mock_list.return_value = self.fake_list_lbaas_pools()
- pools = self.nc.list_pools_v2()
- self.assertEqual(1, len(pools))
- for pool in pools:
- self.assertEqual('ONLINE', pool['status'])
- self.assertEqual('ROUND_ROBIN', pool['lb_method'])
-
- @mock.patch.object(client.Client,
- 'list_lbaas_pools')
- @mock.patch.object(client.Client,
- 'list_lbaas_members')
- @mock.patch.object(client.Client,
- 'show_listener')
- @mock.patch.object(neutron_client.Client,
- '_retrieve_loadbalancer_status_tree')
- def test_list_members_v2(self, mock_status, mock_show, mock_list_members,
- mock_list_pools):
- mock_status.return_value = self.fake_retrieve_loadbalancer_status()
- mock_show.return_value = self.fake_show_listener()
- mock_list_pools.return_value = self.fake_list_lbaas_pools()
- mock_list_members.return_value = self.fake_list_lbaas_members()
- members = self.nc.list_members_v2()
- self.assertEqual(1, len(members))
- for member in members:
- self.assertEqual('ONLINE', member['status'])
- self.assertEqual('4c0a0a5f-cf8f-44b7-b912-957daa8ce5e5',
- member['pool_id'])
-
- @mock.patch.object(client.Client,
- 'list_lbaas_healthmonitors')
- def test_list_health_monitors_v2(self, mock_list_healthmonitors):
- mock_list_healthmonitors.return_value = (
- self.fake_list_lbaas_healthmonitors())
- healthmonitors = self.nc.list_health_monitors_v2()
- self.assertEqual(1, len(healthmonitors))
- for healthmonitor in healthmonitors:
- self.assertEqual(5, healthmonitor['max_retries'])
-
- @mock.patch.object(neutron_client.Client,
- '_retrieve_loadbalancer_status_tree')
- def test_get_member_status(self, mock_status):
- mock_status.return_value = (
- self.fake_retrieve_loadbalancer_status_complex())
- loadbalancer_id = '5b1b1b6e-cf8f-44b7-b912-957daa8ce5e5'
- listener_id = '35cb8516-1173-4035-8dae-0dae3453f37f'
- pool_id = '4c0a0a5f-cf8f-44b7-b912-957daa8ce5e5'
- parent_id = [listener_id, pool_id]
- result_status = self.nc._get_member_status(loadbalancer_id,
- parent_id)
- expected_keys = ['fcf23bde-8cf9-4616-883f-208cebcbf858',
- 'fcf23bde-8cf9-4616-883f-208cebcbf969']
- excepted_status = {
- 'fcf23bde-8cf9-4616-883f-208cebcbf858': 'ONLINE',
- 'fcf23bde-8cf9-4616-883f-208cebcbf969': 'OFFLINE'}
-
- for key in result_status:
- self.assertIn(key, expected_keys)
- self.assertEqual(excepted_status[key], result_status[key])
-
- @mock.patch.object(neutron_client.Client,
- '_retrieve_loadbalancer_status_tree')
- def test_get_pool_status(self, mock_status):
- mock_status.return_value = (
- self.fake_retrieve_loadbalancer_status_complex())
- loadbalancer_id = '5b1b1b6e-cf8f-44b7-b912-957daa8ce5e5'
- parent_id = '35cb8516-1173-4035-8dae-0dae3453f37f'
- result_status = self.nc._get_pool_status(loadbalancer_id,
- parent_id)
- expected_keys = ['4c0a0a5f-cf8f-44b7-b912-957daa8ce5e5',
- '4c0a0a5f-cf8f-44b7-b912-957daa8ce6f6']
- excepted_status = {
- '4c0a0a5f-cf8f-44b7-b912-957daa8ce5e5': 'ONLINE',
- '4c0a0a5f-cf8f-44b7-b912-957daa8ce6f6': 'OFFLINE'}
-
- for key in result_status:
- self.assertIn(key, expected_keys)
- self.assertEqual(excepted_status[key], result_status[key])
-
- @mock.patch.object(neutron_client.Client,
- '_retrieve_loadbalancer_status_tree')
- def test_get_listener_status(self, mock_status):
- mock_status.return_value = (
- self.fake_retrieve_loadbalancer_status_complex())
- loadbalancer_id = '5b1b1b6e-cf8f-44b7-b912-957daa8ce5e5'
- result_status = self.nc._get_listener_status(loadbalancer_id)
- expected_keys = ['35cb8516-1173-4035-8dae-0dae3453f37f',
- '35cb8516-1173-4035-8dae-0dae3453f48e']
- excepted_status = {
- '35cb8516-1173-4035-8dae-0dae3453f37f': 'ONLINE',
- '35cb8516-1173-4035-8dae-0dae3453f48e': 'OFFLINE'}
-
- for key in result_status:
- self.assertIn(key, expected_keys)
- self.assertEqual(excepted_status[key], result_status[key])
-
- @mock.patch.object(client.Client,
- 'list_listeners')
- @mock.patch.object(neutron_client.Client,
- '_retrieve_loadbalancer_status_tree')
- def test_list_listener(self, mock_status, mock_list_listeners):
- mock_list_listeners.return_value = (
- self.fake_list_lbaas_listeners())
- mock_status.return_value = (
- self.fake_retrieve_loadbalancer_status())
- listeners = self.nc.list_listener()
- expected_key = '35cb8516-1173-4035-8dae-0dae3453f37f'
- expected_status = 'ONLINE'
- self.assertEqual(1, len(listeners))
- self.assertEqual(expected_key, listeners[0]['id'])
- self.assertEqual(expected_status, listeners[0]['operating_status'])