summaryrefslogtreecommitdiff
path: root/ceilometer/tests/unit/network/services/test_lbaas.py
diff options
context:
space:
mode:
Diffstat (limited to 'ceilometer/tests/unit/network/services/test_lbaas.py')
-rw-r--r--ceilometer/tests/unit/network/services/test_lbaas.py506
1 files changed, 0 insertions, 506 deletions
diff --git a/ceilometer/tests/unit/network/services/test_lbaas.py b/ceilometer/tests/unit/network/services/test_lbaas.py
deleted file mode 100644
index cc08ae98..00000000
--- a/ceilometer/tests/unit/network/services/test_lbaas.py
+++ /dev/null
@@ -1,506 +0,0 @@
-#
-# Copyright 2014 Cisco Systems,Inc.
-#
-# 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
-
-import fixtures
-from oslotest import base
-
-from ceilometer.network.services import discovery
-from ceilometer.network.services import lbaas
-from ceilometer.polling import manager
-from ceilometer.polling import plugin_base
-from ceilometer import service
-
-
-class _BaseTestLBPollster(base.BaseTestCase):
-
- def setUp(self):
- super(_BaseTestLBPollster, self).setUp()
- self.addCleanup(mock.patch.stopall)
- self.CONF = service.prepare_service([], [])
- self.manager = manager.AgentManager(0, self.CONF)
- self.CONF.set_override('neutron_lbaas_version',
- 'v1',
- group='service_types')
- plugin_base._get_keystone = mock.Mock()
- catalog = (plugin_base._get_keystone.session.auth.get_access.
- return_value.service_catalog)
- catalog.get_endpoints = mock.MagicMock(
- return_value={'network': mock.ANY})
-
-
-class TestLBPoolPollster(_BaseTestLBPollster):
-
- def setUp(self):
- super(TestLBPoolPollster, self).setUp()
- self.pollster = lbaas.LBPoolPollster(self.CONF)
- fake_pools = self.fake_get_pools()
- self.useFixture(fixtures.MockPatch('ceilometer.neutron_client.Client.'
- 'pool_get_all',
- return_value=fake_pools))
-
- @staticmethod
- def fake_get_pools():
- return [{'status': 'ACTIVE',
- 'lb_method': 'ROUND_ROBIN',
- 'protocol': 'HTTP',
- 'description': '',
- 'health_monitors': [],
- 'members': [],
- 'provider': 'haproxy',
- 'status_description': None,
- 'id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'vip_id': 'cd6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'mylb',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'health_monitors_status': []},
- {'status': 'INACTIVE',
- 'lb_method': 'ROUND_ROBIN',
- 'protocol': 'HTTP',
- 'description': '',
- 'health_monitors': [],
- 'members': [],
- 'provider': 'haproxy',
- 'status_description': None,
- 'id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'vip_id': 'cd6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'mylb02',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'health_monitors_status': []},
- {'status': 'PENDING_CREATE',
- 'lb_method': 'ROUND_ROBIN',
- 'protocol': 'HTTP',
- 'description': '',
- 'health_monitors': [],
- 'members': [],
- 'provider': 'haproxy',
- 'status_description': None,
- 'id': 'fe7rad36-437d-4c84-aee1-186027d3bdcd',
- 'vip_id': 'cd6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'mylb03',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'health_monitors_status': []},
- {'status': 'UNKNOWN',
- 'lb_method': 'ROUND_ROBIN',
- 'protocol': 'HTTP',
- 'description': '',
- 'health_monitors': [],
- 'members': [],
- 'provider': 'haproxy',
- 'status_description': None,
- 'id': 'fe7rad36-437d-4c84-aee1-186027d3bdcd',
- 'vip_id': 'cd6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'mylb03',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'health_monitors_status': []},
- {'status': 'error',
- 'lb_method': 'ROUND_ROBIN',
- 'protocol': 'HTTP',
- 'description': '',
- 'health_monitors': [],
- 'members': [],
- 'provider': 'haproxy',
- 'status_description': None,
- 'id': 'fe7rad36-437d-4c84-aee1-186027d3bdcd',
- 'vip_id': 'cd6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'mylb_error',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'health_monitors_status': []},
- ]
-
- def test_pool_get_samples(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- resources=self.fake_get_pools()))
- self.assertEqual(4, len(samples))
- for field in self.pollster.FIELDS:
- self.assertEqual(self.fake_get_pools()[0][field],
- samples[0].resource_metadata[field])
-
- def test_pool_volume(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- resources=self.fake_get_pools()))
- self.assertEqual(1, samples[0].volume)
- self.assertEqual(0, samples[1].volume)
- self.assertEqual(2, samples[2].volume)
-
- def test_get_pool_meter_names(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- resources=self.fake_get_pools()))
- self.assertEqual(set(['network.services.lb.pool']),
- set([s.name for s in samples]))
-
- def test_pool_discovery(self):
- discovered_pools = discovery.LBPoolsDiscovery(
- self.CONF).discover(self.manager)
- self.assertEqual(4, len(discovered_pools))
- for pool in self.fake_get_pools():
- if pool['status'] == 'error':
- self.assertNotIn(pool, discovered_pools)
- else:
- self.assertIn(pool, discovered_pools)
-
-
-class TestLBVipPollster(_BaseTestLBPollster):
-
- def setUp(self):
- super(TestLBVipPollster, self).setUp()
- self.pollster = lbaas.LBVipPollster(self.CONF)
- fake_vips = self.fake_get_vips()
- self.useFixture(fixtures.MockPatch('ceilometer.neutron_client.Client.'
- 'vip_get_all',
- return_value=fake_vips))
-
- @staticmethod
- def fake_get_vips():
- return [{'status': 'ACTIVE',
- 'status_description': None,
- 'protocol': 'HTTP',
- 'description': '',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'connection_limit': -1,
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'session_persistence': None,
- 'address': '10.0.0.2',
- 'protocol_port': 80,
- 'port_id': '3df3c4de-b32e-4ca1-a7f4-84323ba5f291',
- 'id': 'cd6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'myvip'},
- {'status': 'INACTIVE',
- 'status_description': None,
- 'protocol': 'HTTP',
- 'description': '',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'connection_limit': -1,
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'session_persistence': None,
- 'address': '10.0.0.3',
- 'protocol_port': 80,
- 'port_id': '3df3c4de-b32e-4ca1-a7f4-84323ba5f291',
- 'id': 'ba6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'myvip02'},
- {'status': 'PENDING_CREATE',
- 'status_description': None,
- 'protocol': 'HTTP',
- 'description': '',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'connection_limit': -1,
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'session_persistence': None,
- 'address': '10.0.0.4',
- 'protocol_port': 80,
- 'port_id': '3df3c4de-b32e-4ca1-a7f4-84323ba5f291',
- 'id': 'fg6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'myvip03'},
- {'status': 'UNKNOWN',
- 'status_description': None,
- 'protocol': 'HTTP',
- 'description': '',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'connection_limit': -1,
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'session_persistence': None,
- 'address': '10.0.0.8',
- 'protocol_port': 80,
- 'port_id': '3df3c4de-b32e-4ca1-a7f4-84323ba5f291',
- 'id': 'fg6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'myvip03'},
- {'status': 'error',
- 'status_description': None,
- 'protocol': 'HTTP',
- 'description': '',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'connection_limit': -1,
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'session_persistence': None,
- 'address': '10.0.0.8',
- 'protocol_port': 80,
- 'port_id': '3df3c4de-b32e-4ca1-a7f4-84323ba5f291',
- 'id': 'fg6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'myvip_error'},
- ]
-
- def test_vip_get_samples(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- resources=self.fake_get_vips()))
- self.assertEqual(4, len(samples))
- for field in self.pollster.FIELDS:
- self.assertEqual(self.fake_get_vips()[0][field],
- samples[0].resource_metadata[field])
-
- def test_pool_volume(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- resources=self.fake_get_vips()))
- self.assertEqual(1, samples[0].volume)
- self.assertEqual(0, samples[1].volume)
- self.assertEqual(2, samples[2].volume)
-
- def test_get_vip_meter_names(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- resources=self.fake_get_vips()))
- self.assertEqual(set(['network.services.lb.vip']),
- set([s.name for s in samples]))
-
- def test_vip_discovery(self):
- discovered_vips = discovery.LBVipsDiscovery(
- self.CONF).discover(self.manager)
- self.assertEqual(4, len(discovered_vips))
- for pool in self.fake_get_vips():
- if pool['status'] == 'error':
- self.assertNotIn(pool, discovered_vips)
- else:
- self.assertIn(pool, discovered_vips)
-
-
-class TestLBMemberPollster(_BaseTestLBPollster):
-
- def setUp(self):
- super(TestLBMemberPollster, self).setUp()
- self.pollster = lbaas.LBMemberPollster(self.CONF)
- fake_members = self.fake_get_members()
- self.useFixture(fixtures.MockPatch('ceilometer.neutron_client.Client.'
- 'member_get_all',
- return_value=fake_members))
-
- @staticmethod
- def fake_get_members():
- return [{'status': 'ACTIVE',
- 'protocol_port': 80,
- 'weight': 1,
- 'admin_state_up': True,
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'address': '10.0.0.3',
- 'status_description': None,
- 'id': '290b61eb-07bc-4372-9fbf-36459dd0f96b'},
- {'status': 'INACTIVE',
- 'protocol_port': 80,
- 'weight': 1,
- 'admin_state_up': True,
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'address': '10.0.0.5',
- 'status_description': None,
- 'id': '2456661eb-07bc-4372-9fbf-36459dd0f96b'},
- {'status': 'PENDING_CREATE',
- 'protocol_port': 80,
- 'weight': 1,
- 'admin_state_up': True,
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'address': '10.0.0.6',
- 'status_description': None,
- 'id': '45630b61eb-07bc-4372-9fbf-36459dd0f96b'},
- {'status': 'UNKNOWN',
- 'protocol_port': 80,
- 'weight': 1,
- 'admin_state_up': True,
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'address': '10.0.0.6',
- 'status_description': None,
- 'id': '45630b61eb-07bc-4372-9fbf-36459dd0f96b'},
- {'status': 'error',
- 'protocol_port': 80,
- 'weight': 1,
- 'admin_state_up': True,
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'pool_id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'address': '10.0.0.6',
- 'status_description': None,
- 'id': '45630b61eb-07bc-4372-9fbf-36459dd0f96b'},
- ]
-
- def test_get_samples_not_empty(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- self.fake_get_members()))
- self.assertEqual(4, len(samples))
- for field in self.pollster.FIELDS:
- self.assertEqual(self.fake_get_members()[0][field],
- samples[0].resource_metadata[field])
-
- def test_pool_volume(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- self.fake_get_members()))
- self.assertEqual(1, samples[0].volume)
- self.assertEqual(0, samples[1].volume)
- self.assertEqual(2, samples[2].volume)
-
- def test_get_meter_names(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- self.fake_get_members()))
- self.assertEqual(set(['network.services.lb.member']),
- set([s.name for s in samples]))
-
- def test_members_discovery(self):
- discovered_members = discovery.LBMembersDiscovery(
- self.CONF).discover(self.manager)
- self.assertEqual(4, len(discovered_members))
- for pool in self.fake_get_members():
- if pool['status'] == 'error':
- self.assertNotIn(pool, discovered_members)
- else:
- self.assertIn(pool, discovered_members)
-
-
-class TestLBHealthProbePollster(_BaseTestLBPollster):
-
- def setUp(self):
- super(TestLBHealthProbePollster, self).setUp()
- self.pollster = lbaas.LBHealthMonitorPollster(self.CONF)
- fake_health_monitor = self.fake_get_health_monitor()
- self.useFixture(fixtures.MockPatch('ceilometer.neutron_client.Client.'
- 'health_monitor_get_all',
- return_value=fake_health_monitor))
-
- @staticmethod
- def fake_get_health_monitor():
- return [{'id': '34ae33e1-0035-49e2-a2ca-77d5d3fab365',
- 'admin_state_up': True,
- 'tenant_id': "d5d2817dae6b42159be9b665b64beb0e",
- 'delay': 2,
- 'max_retries': 5,
- 'timeout': 5,
- 'pools': [],
- 'type': 'PING',
- }]
-
- def test_get_samples_not_empty(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- self.fake_get_health_monitor()))
- self.assertEqual(1, len(samples))
- for field in self.pollster.FIELDS:
- self.assertEqual(self.fake_get_health_monitor()[0][field],
- samples[0].resource_metadata[field])
-
- def test_get_meter_names(self):
- samples = list(self.pollster.get_samples(
- self.manager, {},
- self.fake_get_health_monitor()))
- self.assertEqual(set(['network.services.lb.health_monitor']),
- set([s.name for s in samples]))
-
- def test_probes_discovery(self):
- discovered_probes = discovery.LBHealthMonitorsDiscovery(
- self.CONF).discover(self.manager)
- self.assertEqual(discovered_probes, self.fake_get_health_monitor())
-
-
-class TestLBStatsPollster(_BaseTestLBPollster):
-
- def setUp(self):
- super(TestLBStatsPollster, self).setUp()
- fake_pool_stats = self.fake_pool_stats()
- self.useFixture(fixtures.MockPatch('ceilometer.neutron_client.Client.'
- 'pool_stats',
- return_value=fake_pool_stats))
-
- fake_pools = self.fake_get_pools()
- self.useFixture(fixtures.MockPatch('ceilometer.neutron_client.Client.'
- 'pool_get_all',
- return_value=fake_pools))
-
- @staticmethod
- def fake_get_pools():
- return [{'status': 'ACTIVE',
- 'lb_method': 'ROUND_ROBIN',
- 'protocol': 'HTTP',
- 'description': '',
- 'health_monitors': [],
- 'members': [],
- 'provider': 'haproxy',
- 'status_description': None,
- 'id': 'ce73ad36-437d-4c84-aee1-186027d3da9a',
- 'vip_id': 'cd6a6fee-e2fa-4e6c-b3c2-bfbe395752c1',
- 'name': 'mylb',
- 'admin_state_up': True,
- 'subnet_id': 'bbe3d818-bdcb-4e4b-b47f-5650dc8a9d7a',
- 'tenant_id': 'a4eb9f4938bb418bbc4f8eb31802fefa',
- 'health_monitors_status': []},
- ]
-
- @staticmethod
- def fake_pool_stats():
- return {'stats': {'active_connections': 2,
- 'bytes_in': 1,
- 'bytes_out': 3,
- 'total_connections': 4
- }
- }
-
- def _check_get_samples(self, factory, sample_name, expected_volume,
- expected_type):
- pollster = factory(self.CONF)
- cache = {}
- samples = list(pollster.get_samples(self.manager, cache,
- self.fake_get_pools()))
- self.assertEqual(1, len(samples))
- self.assertIsNotNone(samples)
- self.assertIn('lbstats', cache)
- self.assertEqual(set([sample_name]), set([s.name for s in samples]))
-
- match = [s for s in samples if s.name == sample_name]
- self.assertEqual(1, len(match), 'missing counter %s' % sample_name)
- self.assertEqual(expected_volume, match[0].volume)
- self.assertEqual(expected_type, match[0].type)
-
- def test_lb_total_connections(self):
- self._check_get_samples(lbaas.LBTotalConnectionsPollster,
- 'network.services.lb.total.connections',
- 4, 'cumulative')
-
- def test_lb_active_connections(self):
- self._check_get_samples(lbaas.LBActiveConnectionsPollster,
- 'network.services.lb.active.connections',
- 2, 'gauge')
-
- def test_lb_incoming_bytes(self):
- self._check_get_samples(lbaas.LBBytesInPollster,
- 'network.services.lb.incoming.bytes',
- 1, 'gauge')
-
- def test_lb_outgoing_bytes(self):
- self._check_get_samples(lbaas.LBBytesOutPollster,
- 'network.services.lb.outgoing.bytes',
- 3, 'gauge')