9b353afde4
This patch removes all related DB code from the FWaaS service plugin v2 and creates service driver interfaces that can be used by different backend drivers. The default backend driver still based on the Neutron DB model and agent RPC interface (for l3 and l2 agents) and was moved to 'service_drivers.agents.agents.FwaasAgentDriver'. It inherits from the firewall backend driver DB interface 'service_drivers.driver_api.FwaasDriverDB' to maintain the DB. It is in charge to implement all RPC API and messages. If we need to implement a backend driver which depends on the Neutron DB but not on the agent RPC service, we just have to inherit from the DB interface and if we like to develop a backend driver which not depends on the Neutron DB model, we can inherit from the base driver interface 'service_driver.driver_api.FwaasDriver'. That patch only modifies the service plugin 'firewall_v2', it does not modify the Firewall v1 service plugin. The backend DB driver provides an interface composed to a pre and post commit hooks for each FWaaSv2 API actions which permits to the driver to be warn anytimes. All that commit hooks methods does not do anything by default and the backend driver needs to overide needed hooks. The driver does not needs to implements all of them, Closes-Bug: #1702312 Change-Id: I4ebd24f1b13eb823c4d63452fd37cace5bcf5481
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import neutron.conf.services.provider_configuration
|
|
|
|
import neutron_fwaas.services.firewall.service_drivers.agents.\
|
|
firewall_agent_api
|
|
import neutron_fwaas.extensions.firewall
|
|
|
|
|
|
def list_agent_opts():
|
|
return [
|
|
('fwaas',
|
|
neutron_fwaas.services.firewall.service_drivers.agents.
|
|
firewall_agent_api.FWaaSOpts),
|
|
]
|
|
|
|
|
|
def list_opts():
|
|
return [
|
|
('quotas',
|
|
neutron_fwaas.extensions.firewall.firewall_quota_opts),
|
|
('service_providers',
|
|
neutron.conf.services.provider_configuration.serviceprovider_opts),
|
|
]
|