f1a50db9d9
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
44 lines
1.4 KiB
Python
44 lines
1.4 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 neutron_vpnaas.services.vpn import vpn_service
|
|
|
|
|
|
class VyattaVPNService(vpn_service.VPNService):
|
|
"""Vyatta VPN Service handler."""
|
|
|
|
def __init__(self, l3_agent):
|
|
"""Creates a Vyatta VPN Service instance.
|
|
|
|
NOTE: Directly accessing l3_agent here is an interim solution
|
|
until we move to have a router object given down to device drivers
|
|
to access router related methods
|
|
"""
|
|
super(VyattaVPNService, self).__init__(l3_agent)
|
|
self.l3_agent = l3_agent
|
|
|
|
def get_router_client(self, router_id):
|
|
"""
|
|
Get Router RESTapi client
|
|
"""
|
|
return self.l3_agent.get_router_client(router_id)
|
|
|
|
def get_router(self, router_id):
|
|
"""
|
|
Get Router Object
|
|
"""
|
|
return self.l3_agent.get_router(router_id)
|