d5896025b7
This patch enables the adoption of existing subnets into a subnetpool. Adoption of a subnet is done by passing the ID of the hosting network and the address family (ip_version) which causes all subnets in the specified address family on the given network to be adopted by the subnet pool. This continues to work within the constraints on subnet pool membership of subnets on the same network. This also ensures prefix uniqueness across an address scope before comitting the adoption of subnets. Change-Id: I5d3c07beb7f109142d2e3633e69f86ca39edc450 Partially-Implements: blueprint subnet-onboard Co-Authored-By: Ryan Tidwell <rtidwell@suse.com> Co-Authored-By: Reedip <reedip.banerjee@nectechnologies.in> Co-Authored-By: Trevor McCasland <TM2086@att.com> Co-Authored-By: Bernard Caffarelli <bcafarel@redhat.com>
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
# (c) Copyright 2017 Hewlett Packard Enterprise Development LP
|
|
#
|
|
# 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_lib.api.definitions import subnet_onboard as subnet_onboard_def
|
|
from neutron_lib.api.definitions import subnetpool as subnetpool_def
|
|
from neutron_lib.api import extensions
|
|
|
|
from neutron.api.v2 import resource_helper
|
|
|
|
|
|
class Subnet_onboard(extensions.APIExtensionDescriptor):
|
|
"""API extension for subnet onboard."""
|
|
|
|
api_definition = subnet_onboard_def
|
|
|
|
@classmethod
|
|
def get_resources(cls):
|
|
"""Returns Ext Resources."""
|
|
plural_mappings = resource_helper.build_plural_mappings(
|
|
{}, subnetpool_def.RESOURCE_ATTRIBUTE_MAP)
|
|
return resource_helper.build_resource_info(
|
|
plural_mappings,
|
|
subnetpool_def.RESOURCE_ATTRIBUTE_MAP,
|
|
None,
|
|
action_map=subnet_onboard_def.ACTION_MAP,
|
|
register_quota=True)
|