def get_all(self, tenant_id=None, project_id=None): """Lists all load balancers.""" # NOTE(blogan): tenant_id and project_id are optional query parameters # tenant_id and project_id are the same thing. tenant_id will be kept # around for a long amount of time. context = pecan.request.context.get('octavia_context') project_id = context.project_id or project_id or tenant_id load_balancers = self.repositories.load_balancer.get_all( context.session, project_id=project_id) result = self._convert_db_to_type(load_balancers, [lb_types.LoadBalancerResponse]) return lb_types.LoadBalancersRootResponse(loadbalancers=result)
def get_all(self, project_id=None, fields=None): """Lists all load balancers.""" pcontext = pecan.request.context context = pcontext.get('octavia_context') query_filter = self._auth_get_all(context, project_id) load_balancers, links = self.repositories.load_balancer.get_all( context.session, show_deleted=False, pagination_helper=pcontext.get(constants.PAGINATION_HELPER), **query_filter) result = self._convert_db_to_type( load_balancers, [lb_types.LoadBalancerResponse]) if fields is not None: result = self._filter_fields(result, fields) return lb_types.LoadBalancersRootResponse( loadbalancers=result, loadbalancers_links=links)
def get_all(self, tenant_id=None, project_id=None): """Lists all load balancers.""" # NOTE(blogan): tenant_id and project_id are optional query parameters # tenant_id and project_id are the same thing. tenant_id will be kept # around for a long amount of time. context = pecan.request.context.get('octavia_context') if context.is_admin or CONF.auth_strategy == constants.NOAUTH: if project_id or tenant_id: project_id = {'project_id': project_id or tenant_id} else: project_id = {} else: project_id = {'project_id': context.project_id} load_balancers = self.repositories.load_balancer.get_all( context.session, **project_id) result = self._convert_db_to_type(load_balancers, [lb_types.LoadBalancerResponse]) return lb_types.LoadBalancersRootResponse(loadbalancers=result)
def _delete(self, id, cascade=False): """Deletes a load balancer.""" context = pecan.request.context.get('octavia_context') db_lb = self._get_db_lb(context.session, id) self._test_lb_status(context.session, id, lb_status=constants.PENDING_DELETE) try: LOG.info(_LI("Sending deleted Load Balancer %s to the handler"), db_lb.id) self.handler.delete(db_lb, cascade) except Exception: with excutils.save_and_reraise_exception(reraise=False): self.repositories.load_balancer.update( context.session, db_lb.id, provisioning_status=constants.ERROR) result = self._convert_db_to_type(db_lb, lb_types.LoadBalancerResponse) return lb_types.LoadBalancersRootResponse(loadbalancer=result)