Add 'project_default' attribute to Network
Add a new attribute ``project_default`` into ``network`` resource. This attribute will be used to indicate if a network is a project default network. Neutron patch: https://review.openstack.org/#/c/511983/ Change-Id: I1371fc0b47c0015423e4346ffd43d39c8264b1a3 Partial-Bug: #1690439
This commit is contained in:
parent
34af1e37bb
commit
7fa92e37b4
@ -66,6 +66,7 @@ from neutron_lib.api.definitions import port_mac_address_regenerate
|
|||||||
from neutron_lib.api.definitions import port_security
|
from neutron_lib.api.definitions import port_security
|
||||||
from neutron_lib.api.definitions import portbindings
|
from neutron_lib.api.definitions import portbindings
|
||||||
from neutron_lib.api.definitions import portbindings_extended
|
from neutron_lib.api.definitions import portbindings_extended
|
||||||
|
from neutron_lib.api.definitions import project_default_networks
|
||||||
from neutron_lib.api.definitions import project_id
|
from neutron_lib.api.definitions import project_id
|
||||||
from neutron_lib.api.definitions import provider_net
|
from neutron_lib.api.definitions import provider_net
|
||||||
from neutron_lib.api.definitions import qos
|
from neutron_lib.api.definitions import qos
|
||||||
@ -155,6 +156,7 @@ _ALL_API_DEFINITIONS = {
|
|||||||
port_security,
|
port_security,
|
||||||
portbindings,
|
portbindings,
|
||||||
portbindings_extended,
|
portbindings_extended,
|
||||||
|
project_default_networks,
|
||||||
project_id,
|
project_id,
|
||||||
provider_net,
|
provider_net,
|
||||||
qos,
|
qos,
|
||||||
|
@ -81,6 +81,7 @@ KNOWN_EXTENSIONS = (
|
|||||||
'availability_zone',
|
'availability_zone',
|
||||||
'binding',
|
'binding',
|
||||||
'data-plane-status',
|
'data-plane-status',
|
||||||
|
'project-default-networks',
|
||||||
'default-subnetpools',
|
'default-subnetpools',
|
||||||
'dhcp_agent_scheduler',
|
'dhcp_agent_scheduler',
|
||||||
'dns-domain-ports',
|
'dns-domain-ports',
|
||||||
|
79
neutron_lib/api/definitions/project_default_networks.py
Normal file
79
neutron_lib/api/definitions/project_default_networks.py
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
# 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 import converters
|
||||||
|
from neutron_lib.api.definitions import network
|
||||||
|
|
||||||
|
|
||||||
|
PROJECT_DEFAULT = 'project_default'
|
||||||
|
|
||||||
|
# The alias of the extension.
|
||||||
|
ALIAS = 'project-default-networks'
|
||||||
|
|
||||||
|
# Whether or not this extension is simply signaling behavior to the user
|
||||||
|
# or it actively modifies the attribute map.
|
||||||
|
IS_SHIM_EXTENSION = False
|
||||||
|
|
||||||
|
# Whether the extension is marking the adoption of standardattr model for
|
||||||
|
# legacy resources, or introducing new standardattr attributes. False or
|
||||||
|
# None if the standardattr model is adopted since the introduction of
|
||||||
|
# resource extension.
|
||||||
|
# If this is True, the alias for the extension should be prefixed with
|
||||||
|
# 'standard-attr-'.
|
||||||
|
IS_STANDARD_ATTR_EXTENSION = False
|
||||||
|
|
||||||
|
# The name of the extension.
|
||||||
|
NAME = 'Default network for project'
|
||||||
|
|
||||||
|
# The description of the extension.
|
||||||
|
DESCRIPTION = "Support specifying networks as default networks for projects"
|
||||||
|
|
||||||
|
# A timestamp of when the extension was introduced.
|
||||||
|
UPDATED_TIMESTAMP = "2018-07-03T10:00:00-00:00"
|
||||||
|
|
||||||
|
# The name of the resource introduced or being extended.
|
||||||
|
RESOURCE_NAME = network.RESOURCE_NAME
|
||||||
|
|
||||||
|
# The plural for the resource introduced or being extended.
|
||||||
|
COLLECTION_NAME = network.COLLECTION_NAME
|
||||||
|
|
||||||
|
# The resource attribute map for the extension.
|
||||||
|
RESOURCE_ATTRIBUTE_MAP = {
|
||||||
|
COLLECTION_NAME: {
|
||||||
|
PROJECT_DEFAULT: {
|
||||||
|
'allow_post': True, 'allow_put': True,
|
||||||
|
'default': False,
|
||||||
|
'convert_to': converters.convert_to_boolean,
|
||||||
|
'is_visible': True
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# The subresource attribute map for the extension.
|
||||||
|
SUB_RESOURCE_ATTRIBUTE_MAP = {
|
||||||
|
}
|
||||||
|
|
||||||
|
# The action map.
|
||||||
|
ACTION_MAP = {
|
||||||
|
}
|
||||||
|
|
||||||
|
# The action status.
|
||||||
|
ACTION_STATUS = {
|
||||||
|
}
|
||||||
|
|
||||||
|
# The list of required extensions.
|
||||||
|
REQUIRED_EXTENSIONS = [
|
||||||
|
]
|
||||||
|
|
||||||
|
# The list of optional extensions.
|
||||||
|
OPTIONAL_EXTENSIONS = [
|
||||||
|
]
|
@ -0,0 +1,21 @@
|
|||||||
|
# Copyright (c) 2017 NEC Corporation. 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 project_default_networks as dn
|
||||||
|
from neutron_lib.tests.unit.api.definitions import base
|
||||||
|
|
||||||
|
|
||||||
|
class DefaultNetworksDefinitionTestCase(base.DefinitionBaseTestCase):
|
||||||
|
extension_module = dn
|
||||||
|
extension_attributes = (dn.PROJECT_DEFAULT,)
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The ``project-default-networks`` extension is now available and adds a new
|
||||||
|
attribute ``project_default`` into the ``network`` resource.
|
||||||
|
This attribute will be used to indicate if a network is a project
|
||||||
|
default network.
|
Loading…
Reference in New Issue
Block a user