54444407f4
Commit I81748aa0e48b1275df3e1ea41b1d36a117d0097d added the l3 extension API definition to neutron-lib and commit I2324a3a02789c798248cab41c278a2d9981d24be rehomed the l3 exceptions, while Ifd79eb1a92853e49bd4ef028e7a7bd89811c6957 shims the l3 exceptions. This patch consumes the l3 api def by: - Removing the code from neutron that's now in lib. - Using lib's version of the code where applicable. - Tidying up the related unit tests as now that the l3 api def from lib is used the necessary fixture is already setup in the parent chain when setting up the unit test class. NeutronLibImpact Change-Id: If2e66e06b83e15ee2851ea2bc3b64ad366e675dd
104 lines
2.9 KiB
Python
104 lines
2.9 KiB
Python
# Copyright 2012 VMware, 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.
|
|
|
|
import abc
|
|
|
|
from neutron_lib.api.definitions import l3 as l3_apidef
|
|
from neutron_lib.api import extensions
|
|
from neutron_lib.plugins import constants
|
|
import six
|
|
|
|
from neutron.api.v2 import resource_helper
|
|
from neutron.conf import quota
|
|
|
|
|
|
# Register the configuration options
|
|
quota.register_quota_opts(quota.l3_quota_opts)
|
|
|
|
|
|
class L3(extensions.APIExtensionDescriptor):
|
|
api_definition = l3_apidef
|
|
|
|
@classmethod
|
|
def get_resources(cls):
|
|
"""Returns Ext Resources."""
|
|
plural_mappings = resource_helper.build_plural_mappings(
|
|
{}, l3_apidef.RESOURCE_ATTRIBUTE_MAP)
|
|
return resource_helper.build_resource_info(
|
|
plural_mappings, l3_apidef.RESOURCE_ATTRIBUTE_MAP,
|
|
constants.L3, action_map=l3_apidef.ACTION_MAP,
|
|
register_quota=True)
|
|
|
|
|
|
@six.add_metaclass(abc.ABCMeta)
|
|
class RouterPluginBase(object):
|
|
|
|
@abc.abstractmethod
|
|
def create_router(self, context, router):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def update_router(self, context, id, router):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def get_router(self, context, id, fields=None):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def delete_router(self, context, id):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def get_routers(self, context, filters=None, fields=None,
|
|
sorts=None, limit=None, marker=None, page_reverse=False):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def add_router_interface(self, context, router_id, interface_info=None):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def remove_router_interface(self, context, router_id, interface_info):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def create_floatingip(self, context, floatingip):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def update_floatingip(self, context, id, floatingip):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def get_floatingip(self, context, id, fields=None):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def delete_floatingip(self, context, id):
|
|
pass
|
|
|
|
@abc.abstractmethod
|
|
def get_floatingips(self, context, filters=None, fields=None,
|
|
sorts=None, limit=None, marker=None,
|
|
page_reverse=False):
|
|
pass
|
|
|
|
def get_routers_count(self, context, filters=None):
|
|
raise NotImplementedError()
|
|
|
|
def get_floatingips_count(self, context, filters=None):
|
|
raise NotImplementedError()
|