Merge "Subnet filter by "router:external" needs to be changed to "external""
This commit is contained in:
commit
7c0aac975a
@ -51,6 +51,15 @@ def _network_result_filter_hook(query, filters):
|
||||
return query.filter(~models_v2.Network.external.has())
|
||||
|
||||
|
||||
def _subnet_result_filter_hook(query, filters):
|
||||
vals = filters and filters.get(extnet_apidef.EXTERNAL, [])
|
||||
if not vals:
|
||||
return query
|
||||
if vals[0]:
|
||||
return query.filter(models_v2.Subnet.external.has())
|
||||
return query.filter(~models_v2.Subnet.external.has())
|
||||
|
||||
|
||||
@resource_extend.has_resource_extenders
|
||||
@registry.has_registry_receivers
|
||||
class External_net_db_mixin:
|
||||
@ -70,7 +79,7 @@ class External_net_db_mixin:
|
||||
"external_subnet",
|
||||
query_hook=None,
|
||||
filter_hook=None,
|
||||
result_filters=None,
|
||||
result_filters=_subnet_result_filter_hook,
|
||||
rbac_actions=EXTERNAL_NETWORK_RBAC_ACTIONS,
|
||||
)
|
||||
return super().__new__(cls, *args, **kwargs)
|
||||
|
@ -11,7 +11,6 @@
|
||||
# under the License.
|
||||
|
||||
import netaddr
|
||||
from neutron_lib.api.definitions import external_net
|
||||
from neutron_lib.api import validators
|
||||
from neutron_lib import constants as const
|
||||
from neutron_lib.db import model_query
|
||||
@ -319,21 +318,6 @@ class Subnet(base.NeutronDbObject):
|
||||
setattr(self, 'external', external_network)
|
||||
self.obj_reset_changes(['external'])
|
||||
|
||||
@classmethod
|
||||
def get_objects(cls, context, _pager=None, validate_filters=True,
|
||||
fields=None, return_db_obj=False, **kwargs):
|
||||
external = kwargs.pop(external_net.EXTERNAL, None)
|
||||
if isinstance(external, list):
|
||||
external = external[0]
|
||||
subnets = super().get_objects(
|
||||
context, _pager=_pager, validate_filters=validate_filters,
|
||||
fields=fields, return_db_obj=return_db_obj, **kwargs)
|
||||
|
||||
if external is not None:
|
||||
return [subnet for subnet in subnets if
|
||||
subnet.external == external]
|
||||
return subnets
|
||||
|
||||
def from_db_object(self, db_obj):
|
||||
super().from_db_object(db_obj)
|
||||
self._load_dns_publish_fixed_ip(db_obj)
|
||||
|
Loading…
x
Reference in New Issue
Block a user