![Paul Michali](/assets/img/avatar_default.png)
This is part 2 of the refactoering that goes along with the changes in Neutron from review 164466. For this to run, it depends on that patch. The change does several things. First, it uses the new callback mechanism. Note: This mechanism doesn't currently support defining cass methods as callbacks, so standalone methods are used. Second, it attempts to remove the need (as much as possible) for the device drivers to be accepting the VpnService object in __init__(). The idea is to totally remove the argument. However, the Vyatta driver, as currently implemented, needs it. Hopefully a follow-up can remove this arg, and instead, will just pass down a config object, so that tests can override config settings. This also fixes naming of places that had agent, which are really using vpn_service. Third, the AdvancedService ABC is removed as a base class for the VPNService class. Without the L3 agent being saved, and not using the L3 agent config, the class is not needed. After this commit, the final step will be to remove the event observer callback mechanism and AdvancedService class from neutron (once FWaaS is updated too). Change-Id: If5040a827a6903cc7cb5e59cdb7fb95f61b13d47 Partial-Bug: #1433552 Depends-On: If134947957fd671aa99a0b2d2b37f7ec65e37766
47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
# Copyright 2015 Brocade Communications System, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# 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.
|
|
#
|
|
|
|
from networking_brocade.vyatta.common import l3_agent as vyatta_l3
|
|
from neutron.agent import l3_agent as entry
|
|
from oslo_config import cfg
|
|
from oslo_log import log as logging
|
|
|
|
from neutron_vpnaas.services.vpn import vyatta_vpn_service
|
|
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
vpn_agent_opts = [
|
|
cfg.MultiStrOpt(
|
|
'vpn_device_driver',
|
|
default=['neutron_vpnaas.services.vpn.device_drivers.'
|
|
'vyatta_ipsec.VyattaIPSecDriver'],
|
|
help=_("The vpn device drivers Neutron will use")),
|
|
]
|
|
cfg.CONF.register_opts(vpn_agent_opts, 'vpnagent')
|
|
|
|
|
|
class VyattaVPNAgent(vyatta_l3.L3AgentMiddleware):
|
|
def __init__(self, host, conf=None):
|
|
super(VyattaVPNAgent, self).__init__(host, conf)
|
|
self.service = vyatta_vpn_service.VyattaVPNService(self)
|
|
self.device_drivers = self.service.load_device_drivers(host)
|
|
|
|
|
|
def main():
|
|
entry.main(
|
|
manager='neutron_vpnaas.services.vpn.vyatta_agent.VyattaVPNAgent')
|