def test__init__default(self, mock_wrap, mock_clients): context = lbaas_context.Lbaas(self.get_context()) self.assertEqual( context.config["pool"]["lb_method"], lbaas_context.Lbaas.DEFAULT_CONFIG["pool"]["lb_method"]) self.assertEqual( context.config["pool"]["protocol"], lbaas_context.Lbaas.DEFAULT_CONFIG["pool"]["protocol"]) self.assertEqual(context.config["lbaas_version"], lbaas_context.Lbaas.DEFAULT_CONFIG["lbaas_version"])
def test_setup_with_lbaas_version_not_one(self, mock_clients, mock_wrap): mock_create = mock.Mock(side_effect=lambda t, **kw: t + "-net") mock_wrap.return_value = mock.Mock(create_v1_pool=mock_create) fake_args = {"lbaas_version": 2} lb_context = lbaas_context.Lbaas(self.get_context(**fake_args)) lb_context._iterate_per_tenants = mock.MagicMock( return_value=[("bar_user", "bar_tenant")]) net_wrapper = mock_wrap(mock_clients.return_value) net_wrapper.supports_extension.return_value = (True, None) self.assertRaises(NotImplementedError, lb_context.setup)
def test_setup_with_lbaas(self, mock_clients, mock_wrap): foo_net = { "id": "foo_net", "tenant_id": "foo_tenant", "subnets": ["foo_subnet"], "lb_pools": [{ "pool": { "id": "foo_pool", "tenant_id": "foo_tenant" } }] } bar_net = { "id": "bar_net", "tenant_id": "bar_tenant", "subnets": ["bar_subnet"], "lb_pools": [{ "pool": { "id": "bar_pool", "tenant_id": "bar_tenant" } }] } expected_net = [bar_net, foo_net] mock_create = mock.Mock( side_effect=lambda t, s, **kw: {"pool": { "id": str(t.split("_")[0]) + "_pool", "tenant_id": t }}) actual_net = [] mock_wrap.return_value = mock.Mock(create_v1_pool=mock_create) net_wrapper = mock_wrap(mock_clients.return_value) net_wrapper.supports_extension.return_value = (True, None) fake_args = {"lbaas_version": 1} lb_context = lbaas_context.Lbaas(self.get_context(**fake_args)) lb_context._iterate_per_tenants = mock.MagicMock( return_value=[("foo_user", "foo_tenant"), ("bar_user", "bar_tenant")]) lb_context.setup() lb_context._iterate_per_tenants.assert_called_once_with() net_wrapper.supports_extension.assert_called_once_with("lbaas") for tenant_id, tenant_ctx in (sorted( lb_context.context["tenants"].items())): for network in tenant_ctx["networks"]: actual_net.append(network) self.assertEqual(expected_net, actual_net)
def test_cleanup_lbaas_version_not_one(self, mock_wrap, mock_clients): fakeargs = {"lbaas_version": 2} net_wrapper = mock_wrap(mock_clients.return_value) lb_context = lbaas_context.Lbaas(self.get_context(**fakeargs)) for tenant_id, tenant_ctx in lb_context.context["tenants"].items(): resultant_pool = { "pool": { "id": str(tenant_id.split("_")[0]) + "_pool" } } for network in ( lb_context.context["tenants"][tenant_id]["networks"]): network.setdefault("lb_pools", []).append(resultant_pool) lb_context.cleanup() assert not net_wrapper.delete_v1_pool.called
def test_setup_with_no_lbaas(self, mock_clients, mock_wrap): mock_create = mock.Mock(side_effect=lambda t, **kw: t + "-net") mock_wrap.return_value = mock.Mock(create_v1_pool=mock_create) fake_args = {"lbaas_version": 1} lb_context = lbaas_context.Lbaas(self.get_context(**fake_args)) net_wrapper = mock_wrap(mock_clients.return_value) net_wrapper.supports_extension.return_value = (False, None) lb_context._iterate_per_tenants = mock.MagicMock( return_value=[("bar_user", "bar_tenant")]) lb_context.setup() lb_context._iterate_per_tenants.assert_not_called() net_wrapper.supports_extension.assert_called_once_with("lbaas") assert not net_wrapper.create_v1_pool.called
def test_cleanup(self, mock_wrap, mock_clients): net_wrapper = mock_wrap(mock_clients.return_value) lb_context = lbaas_context.Lbaas(self.get_context()) expected_pools = [] for tenant_id, tenant_ctx in lb_context.context["tenants"].items(): resultant_pool = { "pool": { "id": str(tenant_id.split("_")[0]) + "_pool" } } expected_pools.append(resultant_pool) for network in ( lb_context.context["tenants"][tenant_id]["networks"]): network.setdefault("lb_pools", []).append(resultant_pool) lb_context.cleanup() net_wrapper.delete_v1_pool.assert_has_calls( [mock.call(pool["pool"]["id"]) for pool in expected_pools])
def test__init__explicit(self, mock_wrap, mock_clients): context = lbaas_context.Lbaas( self.get_context(pool={"lb_method": "LEAST_CONNECTIONS"})) self.assertEqual(context.config["pool"]["lb_method"], "LEAST_CONNECTIONS")