From d4d90fb6d725f9c4d5974945d02b8eb96c236848 Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Tue, 7 Sep 2021 08:48:03 +0000 Subject: [PATCH] Improve "get_collection_count" calls Reduce the object retrieval to one single field to improve the collection count. Bumped neutron-lib to 2.16.0. This version contains [1], needed for this patch. [1]https://review.opendev.org/c/openstack/neutron-lib/+/807686 Related-Bug: #1942863 Change-Id: I160e8084e97b23a2bacb49ceb40efbac2d0715be --- lower-constraints.txt | 2 +- neutron/db/db_base_plugin_v2.py | 5 +++-- neutron/db/l3_db.py | 5 +++-- requirements.txt | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lower-constraints.txt b/lower-constraints.txt index 0e02d68f39d..93423e4f03a 100644 --- a/lower-constraints.txt +++ b/lower-constraints.txt @@ -50,7 +50,7 @@ msgpack-python==0.4.0 munch==2.1.0 netaddr==0.7.18 netifaces==0.10.4 -neutron-lib==2.15.0 +neutron-lib==2.16.0 openstacksdk==0.31.2 os-client-config==1.28.0 os-ken==2.2.0 diff --git a/neutron/db/db_base_plugin_v2.py b/neutron/db/db_base_plugin_v2.py index 6ff09b670bb..6807d8082dc 100644 --- a/neutron/db/db_base_plugin_v2.py +++ b/neutron/db/db_base_plugin_v2.py @@ -563,8 +563,9 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon, @db_api.retry_if_session_inactive() def get_networks_count(self, context, filters=None): - return model_query.get_collection_count(context, models_v2.Network, - filters=filters) + return model_query.get_collection_count( + context, models_v2.Network, filters=filters, + query_field=models_v2.Network.id.key) @db_api.retry_if_session_inactive() def create_subnet_bulk(self, context, subnets): diff --git a/neutron/db/l3_db.py b/neutron/db/l3_db.py index 267d3af35be..725039c1524 100644 --- a/neutron/db/l3_db.py +++ b/neutron/db/l3_db.py @@ -615,8 +615,9 @@ class L3_NAT_dbonly_mixin(l3.RouterPluginBase, @db_api.retry_if_session_inactive() def get_routers_count(self, context, filters=None): - return model_query.get_collection_count(context, l3_models.Router, - filters=filters) + return model_query.get_collection_count( + context, l3_models.Router, filters=filters, + query_field=l3_models.Router.id.key) def _check_for_dup_router_subnets(self, context, router, network_id, new_subnets): diff --git a/requirements.txt b/requirements.txt index 008dc5d690d..4e5e7fec7d1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,7 +16,7 @@ Jinja2>=2.10 # BSD License (3 clause) keystonemiddleware>=5.1.0 # Apache-2.0 netaddr>=0.7.18 # BSD netifaces>=0.10.4 # MIT -neutron-lib>=2.15.0 # Apache-2.0 +neutron-lib>=2.16.0 # Apache-2.0 python-neutronclient>=6.7.0 # Apache-2.0 tenacity>=6.0.0 # Apache-2.0 SQLAlchemy>=1.4.23 # MIT