Exemplo n.º 1
0
 def on_deleted(self, endpoints):
     lbaas_state = self._get_lbaas_state(endpoints)
     if not lbaas_state:
         return
     # NOTE(ivc): deleting pool deletes its members
     lbaas_state.members = []
     self._sync_lbaas_members(endpoints, lbaas_state,
                              obj_lbaas.LBaaSServiceSpec())
Exemplo n.º 2
0
 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())])
Exemplo n.º 3
0
    def on_deleted(self, endpoints):
        if not self._l7_router:
            LOG.info("No L7 router found - do nothing")
            return

        lbaas_route_state = self._get_lbaas_route_state(endpoints)
        if not lbaas_route_state:
            return
        self._remove_unused_route_members(endpoints, lbaas_route_state,
                                          obj_lbaas.LBaaSServiceSpec())
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    def _generate_lbaas_spec(self, service):
        project_id = self._drv_project.get_project(service)
        ip = self._get_service_ip(service)
        subnet_id = self._get_subnet_id(service, project_id, ip)
        ports = self._generate_lbaas_port_specs(service)
        sg_ids = self._drv_sg.get_security_groups(service, project_id)

        return obj_lbaas.LBaaSServiceSpec(ip=ip,
                                          project_id=project_id,
                                          subnet_id=subnet_id,
                                          ports=ports,
                                          security_groups_ids=sg_ids)
Exemplo n.º 6
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)
Exemplo n.º 7
0
    def _generate_lbaas_spec(self, service):
        project_id = self._drv_project.get_project(service)
        ip = self._get_service_ip(service)
        subnet_id = self._get_subnet_id(service, project_id, ip)
        ports = self._generate_lbaas_port_specs(service)
        sg_ids = self._drv_sg.get_security_groups(service, project_id)
        spec_type = service['spec'].get('type')
        spec_lb_ip = service['spec'].get('loadBalancerIP')

        return obj_lbaas.LBaaSServiceSpec(ip=ip,
                                          project_id=project_id,
                                          subnet_id=subnet_id,
                                          ports=ports,
                                          security_groups_ids=sg_ids,
                                          type=spec_type,
                                          lb_ip=spec_lb_ip)
Exemplo n.º 8
0
 def on_deleted(self, endpoints, lbaas_state=None):
     if lbaas_state is None:
         lbaas_state = self._get_lbaas_state(endpoints)
     if not lbaas_state:
         return
     # NOTE(ivc): deleting pool deletes its members
     if self._drv_lbaas.cascading_capable:
         self._drv_lbaas.release_loadbalancer(
             loadbalancer=lbaas_state.loadbalancer)
         if lbaas_state.service_pub_ip_info:
             self._drv_service_pub_ip.release_pub_ip(
                 lbaas_state.service_pub_ip_info)
     else:
         lbaas_state.members = []
         self._sync_lbaas_members(endpoints, lbaas_state,
                                  obj_lbaas.LBaaSServiceSpec())