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())
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 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())
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)
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)
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)
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)
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())