def test_sync_lbaas_members_svc_listener_port_edit(self, m_get_drv_lbaas, m_get_drv_project, m_get_drv_subnets): # REVISIT(ivc): test methods separately and verify ensure/release project_id = str(uuid.uuid4()) subnet_id = str(uuid.uuid4()) expected_ip = '1.2.3.4' crd = get_lb_crd() m_drv_lbaas = mock.Mock(wraps=FakeLBaaSDriver()) m_drv_project = mock.Mock() m_drv_project.get_project.return_value = project_id m_drv_subnets = mock.Mock() m_drv_subnets.get_subnets.return_value = { subnet_id: mock.sentinel.subnet } m_get_drv_lbaas.return_value = m_drv_lbaas m_get_drv_project.return_value = m_drv_project m_get_drv_subnets.return_value = m_drv_subnets handler = h_lb.KuryrLoadBalancerHandler() with mock.patch.object(handler, '_get_pod_subnet') as m_get_pod_subnet: m_get_pod_subnet.return_value = subnet_id handler._sync_lbaas_members(crd) self.assertEqual(expected_ip, str(crd['status']['loadbalancer']['ip']))
def _sync_lbaas_members_impl(self, m_get_drv_lbaas, m_get_drv_project, m_get_drv_subnets, subnet_id, project_id, crd): m_drv_lbaas = mock.Mock(wraps=FakeLBaaSDriver()) m_drv_project = mock.Mock() m_drv_project.get_project.return_value = project_id m_drv_subnets = mock.Mock() m_drv_subnets.get_subnets.return_value = { subnet_id: mock.sentinel.subnet } m_get_drv_lbaas.return_value = m_drv_lbaas m_get_drv_project.return_value = m_drv_project m_get_drv_subnets.return_value = m_drv_subnets handler = h_lb.KuryrLoadBalancerHandler() with mock.patch.object(handler, '_get_pod_subnet') as m_get_pod_subnet: m_get_pod_subnet.return_value = subnet_id handler._sync_lbaas_members(crd) lsnrs = {lsnr['id']: lsnr for lsnr in crd['status']['listeners']} pools = {pool['id']: pool for pool in crd['status']['pools']} observed_targets = sorted( (str(member['ip']), (lsnrs[pools[member['pool_id']]['listener_id']]['port'], member['port'])) for member in crd['status']['members']) return observed_targets
def test_init_provider_ovn(self, m_get_drv_lbaas, m_get_drv_project, m_get_drv_subnets, m_get_drv_service_pub_ip, m_cfg, m_get_svc_sg_drv, m_get_svc_drv_project): m_get_drv_lbaas.return_value = mock.sentinel.drv_lbaas m_get_drv_project.return_value = mock.sentinel.drv_project m_get_drv_subnets.return_value = mock.sentinel.drv_subnets m_get_drv_service_pub_ip.return_value = mock.sentinel.drv_lb_ip m_get_svc_drv_project.return_value = mock.sentinel.drv_svc_project m_get_svc_sg_drv.return_value = mock.sentinel.drv_sg handler = h_lb.KuryrLoadBalancerHandler() self.assertEqual(mock.sentinel.drv_lbaas, handler._drv_lbaas) self.assertEqual(mock.sentinel.drv_project, handler._drv_pod_project) self.assertEqual(mock.sentinel.drv_subnets, handler._drv_pod_subnets) self.assertEqual(mock.sentinel.drv_lb_ip, handler._drv_service_pub_ip)
def test_init(self, m_get_drv_lbaas, m_get_drv_project, m_get_drv_subnets, m_get_drv_service_pub_ip, m_cfg, m_get_svc_sg_drv, m_get_svc_drv_project): m_get_drv_lbaas.return_value = mock.sentinel.drv_lbaas m_get_drv_project.return_value = mock.sentinel.drv_project m_get_drv_subnets.return_value = mock.sentinel.drv_subnets m_get_drv_service_pub_ip.return_value = mock.sentinel.drv_lb_ip m_get_svc_drv_project.return_value = mock.sentinel.drv_svc_project m_get_svc_sg_drv.return_value = mock.sentinel.drv_sg m_cfg.kubernetes.endpoints_driver_octavia_provider = 'default' handler = h_lb.KuryrLoadBalancerHandler() self.assertEqual(mock.sentinel.drv_lbaas, handler._drv_lbaas) self.assertEqual(mock.sentinel.drv_project, handler._drv_pod_project) self.assertEqual(mock.sentinel.drv_subnets, handler._drv_pod_subnets) self.assertEqual(mock.sentinel.drv_lb_ip, handler._drv_service_pub_ip) self.assertIsNone(handler._lb_provider)
def test_init(self, m_get_drv_node_subnets, m_get_drv_lbaas, m_get_drv_project, m_get_drv_subnets, m_get_drv_service_pub_ip, m_cfg, m_get_svc_sg_drv, m_get_svc_drv_project, m_get_cidr): m_get_drv_lbaas.return_value = mock.sentinel.drv_lbaas m_get_drv_project.return_value = mock.sentinel.drv_project m_get_drv_subnets.return_value = mock.sentinel.drv_subnets m_get_cidr.return_value = '10.0.0.128/26' m_get_drv_service_pub_ip.return_value = mock.sentinel.drv_lb_ip m_get_svc_drv_project.return_value = mock.sentinel.drv_svc_project m_get_svc_sg_drv.return_value = mock.sentinel.drv_sg m_get_drv_node_subnets.return_value = mock.sentinel.drv_node_subnets handler = h_lb.KuryrLoadBalancerHandler() self.assertEqual(mock.sentinel.drv_lbaas, handler._drv_lbaas) self.assertEqual(mock.sentinel.drv_project, handler._drv_pod_project) self.assertEqual(mock.sentinel.drv_subnets, handler._drv_pod_subnets) self.assertEqual(mock.sentinel.drv_lb_ip, handler._drv_service_pub_ip) self.assertEqual(mock.sentinel.drv_node_subnets, handler._drv_nodes_subnets)
def test_add_new_members_udp(self, m_get_drv_lbaas, m_get_drv_project, m_get_drv_subnets): project_id = str(uuid.uuid4()) subnet_id = str(uuid.uuid4()) crd = get_lb_crd() m_drv_lbaas = mock.Mock(wraps=FakeLBaaSDriver()) m_drv_project = mock.Mock() m_drv_project.get_project.return_value = project_id m_drv_subnets = mock.Mock() m_drv_subnets.get_subnets.return_value = { subnet_id: mock.sentinel.subnet } m_get_drv_lbaas.return_value = m_drv_lbaas m_get_drv_project.return_value = m_drv_project m_get_drv_subnets.return_value = m_drv_subnets handler = h_lb.KuryrLoadBalancerHandler() member_added = handler._add_new_members(crd) self.assertEqual(member_added, False) m_drv_lbaas.ensure_member.assert_not_called()