def _generate_lbaas_spec(self, vip, targets, project_id, subnet_id):
     return obj_lbaas.LBaaSServiceSpec(
         ip=vip,
         project_id=project_id,
         subnet_id=subnet_id,
         ports=[
             obj_lbaas.LBaaSPortSpec(name=str(port),
                                     protocol='TCP',
                                     port=port)
             for port in set(t[0] for t in targets.values())
         ])
    def test_is_lbaas_spec_in_sync(self):
        names = ['a', 'b', 'c']
        endpoints = {'subsets': [{'ports': [{'name': n} for n in names]}]}
        lbaas_spec = obj_lbaas.LBaaSServiceSpec(
            ports=[obj_lbaas.LBaaSPortSpec(name=n) for n in reversed(names)])

        m_handler = mock.Mock(spec=h_lbaas.LoadBalancerHandler)
        ret = h_lbaas.LoadBalancerHandler._is_lbaas_spec_in_sync(
            m_handler, endpoints, lbaas_spec)

        self.assertEqual(True, ret)
Exemple #3
0
    def test_generate_lbaas_port_specs_udp(self, m_get_service_ports):
        m_handler = mock.Mock(spec=h_lbaas.LBaaSSpecHandler)
        m_get_service_ports.return_value = [{
            'port': 1,
            'name': 'X',
            'protocol': 'TCP'
        }, {
            'port': 2,
            'name': 'Y',
            'protocol': 'UDP'
        }]
        expected_ports = [
            obj_lbaas.LBaaSPortSpec(name='X', protocol='TCP', port=1),
            obj_lbaas.LBaaSPortSpec(name='Y', protocol='UDP', port=2),
        ]

        ret = h_lbaas.LBaaSSpecHandler._generate_lbaas_port_specs(
            m_handler, mock.sentinel.service)
        self.assertEqual(expected_ports, ret)
        m_get_service_ports.assert_called_once_with(mock.sentinel.service)
Exemple #4
0
    def test_has_port_changes(self):
        m_handler = mock.Mock(spec=h_lbaas.LBaaSSpecHandler)
        m_service = mock.MagicMock()
        m_handler._get_service_ports.return_value = [
            {
                'port': 1,
                'name': 'X',
                'protocol': 'TCP'
            },
        ]

        m_lbaas_spec = mock.MagicMock()
        m_lbaas_spec.ports = [
            obj_lbaas.LBaaSPortSpec(name='X', protocol='TCP', port=1),
            obj_lbaas.LBaaSPortSpec(name='Y', protocol='TCP', port=2),
        ]

        ret = h_lbaas.LBaaSSpecHandler._has_port_changes(
            m_handler, m_service, m_lbaas_spec)

        self.assertTrue(ret)
Exemple #5
0
 def _generate_lbaas_spec(self, vip, targets, project_id,
                          subnet_id, prot='TCP', lbaas_type='ClusterIP'):
     return obj_lbaas.LBaaSServiceSpec(
         ip=vip,
         project_id=project_id,
         subnet_id=subnet_id,
         ports=[obj_lbaas.LBaaSPortSpec(name=str(t[0]),
                                        protocol=prot,
                                        port=t[0],
                                        targetPort=t[1])
                for t in targets.values()],
         type=lbaas_type)
Exemple #6
0
 def _generate_lbaas_port_specs(self, service):
     return [
         obj_lbaas.LBaaSPortSpec(**port)
         for port in utils.get_service_ports(service)
     ]