From 792f2c65ec34b63ae8037a5328b7622320c4e1c4 Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Tue, 28 Feb 2023 09:34:05 +0000 Subject: [PATCH] [sqlalchemy-20] Add reader context to ``VPNPluginDb`` get methods The following methods are now called from inside a reader context: * ``VPNPluginDb.get_ikepolicy`` * ``VPNPluginDb.get_ikepolicies`` * ``VPNPluginDb.get_ipsecpolicy`` * ``VPNPluginDb.get_ipsecpolicies`` * ``VPNPluginDb._get_vpnservice`` * ``VPNPluginDb.get_vpnservice`` * ``VPNPluginDb.get_vpnservices`` * ``VPNPluginDb.get_endpoint_group`` * ``VPNPluginDb.get_endpoint_groups`` This patch is also adding the writer context to ``BaseIPsecVPNDriver.create_vpnservice``. Closes-Bug: #2008767 Closes-Bug: #2008001 Change-Id: Ic22eb356c3157713a53cd71a366b946aa57ab042 --- neutron_vpnaas/db/vpn/vpn_db.py | 9 +++++++++ .../services/vpn/service_drivers/base_ipsec.py | 1 + 2 files changed, 10 insertions(+) diff --git a/neutron_vpnaas/db/vpn/vpn_db.py b/neutron_vpnaas/db/vpn/vpn_db.py index 12c39c73a..1834e8202 100644 --- a/neutron_vpnaas/db/vpn/vpn_db.py +++ b/neutron_vpnaas/db/vpn/vpn_db.py @@ -368,11 +368,13 @@ class VPNPluginDb(vpnaas.VPNPluginBase, context, vpn_models.IKEPolicy, ikepolicy_id) context.session.delete(ike_db) + @db_api.CONTEXT_READER def get_ikepolicy(self, context, ikepolicy_id, fields=None): ike_db = self._get_resource( context, vpn_models.IKEPolicy, ikepolicy_id) return self._make_ikepolicy_dict(ike_db, fields) + @db_api.CONTEXT_READER def get_ikepolicies(self, context, filters=None, fields=None): return model_query.get_collection(context, vpn_models.IKEPolicy, self._make_ikepolicy_dict, @@ -452,11 +454,13 @@ class VPNPluginDb(vpnaas.VPNPluginBase, context, vpn_models.IPsecPolicy, ipsecpolicy_id) context.session.delete(ipsec_db) + @db_api.CONTEXT_READER def get_ipsecpolicy(self, context, ipsecpolicy_id, fields=None): ipsec_db = self._get_resource( context, vpn_models.IPsecPolicy, ipsecpolicy_id) return self._make_ipsecpolicy_dict(ipsec_db, fields) + @db_api.CONTEXT_READER def get_ipsecpolicies(self, context, filters=None, fields=None): return model_query.get_collection(context, vpn_models.IPsecPolicy, self._make_ipsecpolicy_dict, @@ -526,15 +530,18 @@ class VPNPluginDb(vpnaas.VPNPluginBase, vpnservice_id) context.session.delete(vpns_db) + @db_api.CONTEXT_READER def _get_vpnservice(self, context, vpnservice_id): return self._get_resource(context, vpn_models.VPNService, vpnservice_id) + @db_api.CONTEXT_READER def get_vpnservice(self, context, vpnservice_id, fields=None): vpns_db = self._get_resource(context, vpn_models.VPNService, vpnservice_id) return self._make_vpnservice_dict(vpns_db, fields) + @db_api.CONTEXT_READER def get_vpnservices(self, context, filters=None, fields=None): return model_query.get_collection(context, vpn_models.VPNService, self._make_vpnservice_dict, @@ -648,11 +655,13 @@ class VPNPluginDb(vpnaas.VPNPluginBase, context, vpn_models.VPNEndpointGroup, endpoint_group_id) context.session.delete(endpoint_group_db) + @db_api.CONTEXT_READER def get_endpoint_group(self, context, endpoint_group_id, fields=None): endpoint_group_db = self._get_resource( context, vpn_models.VPNEndpointGroup, endpoint_group_id) return self._make_endpoint_group_dict(endpoint_group_db, fields) + @db_api.CONTEXT_READER def get_endpoint_groups(self, context, filters=None, fields=None): return model_query.get_collection(context, vpn_models.VPNEndpointGroup, self._make_endpoint_group_dict, diff --git a/neutron_vpnaas/services/vpn/service_drivers/base_ipsec.py b/neutron_vpnaas/services/vpn/service_drivers/base_ipsec.py index 0f09260dd..13ef9910d 100644 --- a/neutron_vpnaas/services/vpn/service_drivers/base_ipsec.py +++ b/neutron_vpnaas/services/vpn/service_drivers/base_ipsec.py @@ -163,6 +163,7 @@ class BaseIPsecVPNDriver(service_drivers.VpnDriver, metaclass=abc.ABCMeta): v6_ip = addr return v4_ip, v6_ip + @db_api.CONTEXT_WRITER def create_vpnservice(self, context, vpnservice_dict): """Get the gateway IP(s) and save for later use.