def delete_pool(self, context, id): # Check if the pool is in use vip = context.session.query(Vip).filter_by(pool_id=id).first() if vip: raise loadbalancer.PoolInUse(pool_id=id) with context.session.begin(subtransactions=True): self._delete_pool_stats(context, id) pool_db = self._get_resource(context, Pool, id) context.session.delete(pool_db)
def _handle_pool(self, context, pool, delete=False): vip_id = self.plugin.get_pool(context, pool['id']).get('vip_id', None) if vip_id: if delete: raise loadbalancer.PoolInUse(pool_id=pool['id']) else: vip = self.plugin.get_vip(context, vip_id) ext_vip = self._populate_vip_graph(context, vip) self._update_workflow(pool['id'], self.l4_action_name, ext_vip, context, delete, lb_db.Pool, pool['id']) else: if delete: self.plugin._delete_db_pool(context, pool['id']) else: # we keep the pool in PENDING_UPDATE # no point to modify it since it is not connected to vip yet pass
def _ensure_pool_delete_conditions(self, context, pool_id): if context.session.query(Vip).filter_by(pool_id=pool_id).first(): raise loadbalancer.PoolInUse(pool_id=pool_id)
def get_exception_inuse(self, id=None): return loadbalancer.PoolInUse(pool_id=id)