def _validate_listener_data(self, context, listener):
     pool_id = listener.get('default_pool_id')
     lb_id = listener.get('loadbalancer_id')
     if lb_id:
         if not self._resource_exists(context, models.LoadBalancer, lb_id):
             raise loadbalancerv2.EntityNotFound(
                 name=models.LoadBalancer.NAME, id=lb_id)
     if pool_id:
         if not self._resource_exists(context, models.PoolV2, pool_id):
             raise loadbalancerv2.EntityNotFound(name=models.PoolV2.NAME,
                                                 id=pool_id)
         pool = self._get_resource(context, models.PoolV2, pool_id)
         if ((pool.protocol, listener.get('protocol'))
                 not in lb_const.LISTENER_POOL_COMPATIBLE_PROTOCOLS):
             raise loadbalancerv2.ListenerPoolProtocolMismatch(
                 listener_proto=listener['protocol'],
                 pool_proto=pool.protocol)
     if lb_id and pool_id:
         pool = self._get_resource(context, models.PoolV2, pool_id)
         if pool.loadbalancer_id != lb_id:
             raise sharedpools.ListenerPoolLoadbalancerMismatch(
                 pool_id=pool_id, lb_id=pool.loadbalancer_id)
Beispiel #2
0
 def _validate_listener_data(self, context, listener):
     pool_id = listener.get('default_pool_id')
     lb_id = listener.get('loadbalancer_id')
     if lb_id:
         if not self._resource_exists(context, models.LoadBalancer, lb_id):
             raise loadbalancerv2.EntityNotFound(
                 name=models.LoadBalancer.NAME, id=lb_id)
     if pool_id:
         pool = self._get_resource(context, models.PoolV2, pool_id)
         if ((pool.protocol, listener.get('protocol'))
                 not in lb_const.LISTENER_POOL_COMPATIBLE_PROTOCOLS):
             raise loadbalancerv2.ListenerPoolProtocolMismatch(
                 listener_proto=listener['protocol'],
                 pool_proto=pool.protocol)
         filters = {'default_pool_id': [pool_id]}
         listenerpools = self._get_resources(context,
                                             models.Listener,
                                             filters=filters)
         if listenerpools:
             raise loadbalancerv2.EntityInUse(
                 entity_using=models.Listener.NAME,
                 id=listenerpools[0].id,
                 entity_in_use=models.PoolV2.NAME)