diff --git a/neutron/db/external_net_db.py b/neutron/db/external_net_db.py index 98c7b1171e7..70f4f47e9ae 100644 --- a/neutron/db/external_net_db.py +++ b/neutron/db/external_net_db.py @@ -45,12 +45,6 @@ _deprecate._moved_global('ExternalNetwork', new_module=ext_net_models) class External_net_db_mixin(object): """Mixin class to add external network methods to db_base_plugin_v2.""" - def _network_model_hook(self, context, original_model, query): - query = query.outerjoin(ext_net_models.ExternalNetwork, - (original_model.id == - ext_net_models.ExternalNetwork.network_id)) - return query - @staticmethod def _network_filter_hook(context, original_model, conditions): if conditions is not None and not hasattr(conditions, '__iter__'): @@ -73,10 +67,8 @@ class External_net_db_mixin(object): if not vals: return query if vals[0]: - return query.filter( - ext_net_models.ExternalNetwork.network_id != expr.null()) - return query.filter( - ext_net_models.ExternalNetwork.network_id == expr.null()) + return query.filter(models_v2.Network.external.has()) + return query.filter(~models_v2.Network.external.has()) # TODO(salvatore-orlando): Perform this operation without explicitly # referring to db_base_plugin_v2, as plugins that do not extend from it @@ -84,7 +76,7 @@ class External_net_db_mixin(object): db_base_plugin_v2.NeutronDbPluginV2.register_model_query_hook( models_v2.Network, "external_net", - '_network_model_hook', + None, '_network_filter_hook', '_network_result_filter_hook')