New `network-ha
` API definition
This new network API field, that can be used during the network creation, will trigger the creation of a ``ha_router_networks`` database register. This register binds the project with the created network and defines it as the high availability network of the project, that is unique per project. The default value is "False". Related-Bug: #2016198 Change-Id: Id6e434060a7559026f9083904a91213b39361336
This commit is contained in:
parent
e52a9372f7
commit
d5884bb20b
@ -47,6 +47,14 @@ The ``floatingip-autodelete-internal`` shim extension signals that the
|
|||||||
update of a network's ``router:external`` attribute from ``true`` to
|
update of a network's ``router:external`` attribute from ``true`` to
|
||||||
``false`` autodeletes the unused Floating IPs of that network.
|
``false`` autodeletes the unused Floating IPs of that network.
|
||||||
|
|
||||||
|
HA extension
|
||||||
|
============
|
||||||
|
|
||||||
|
The ``network-ha`` extension allows to pass a boolean parameter during the
|
||||||
|
network creation. If ``true`` is passed, a ``ha_router_networks`` database
|
||||||
|
register will be created along with the ``network`` register. This field is
|
||||||
|
not visible and, initially, not meant to be supported in the CLI.
|
||||||
|
|
||||||
L2 adjacency extension
|
L2 adjacency extension
|
||||||
======================
|
======================
|
||||||
|
|
||||||
|
@ -4768,6 +4768,12 @@ network-admin_state_up-request:
|
|||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
network-ha:
|
||||||
|
description: |
|
||||||
|
The high availability input flag when creating a network.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
network-id:
|
network-id:
|
||||||
description: |
|
description: |
|
||||||
The ID of the network.
|
The ID of the network.
|
||||||
|
@ -80,6 +80,7 @@ from neutron_lib.api.definitions import multiprovidernet
|
|||||||
from neutron_lib.api.definitions import network
|
from neutron_lib.api.definitions import network
|
||||||
from neutron_lib.api.definitions import network_availability_zone
|
from neutron_lib.api.definitions import network_availability_zone
|
||||||
from neutron_lib.api.definitions import network_cascade_delete
|
from neutron_lib.api.definitions import network_cascade_delete
|
||||||
|
from neutron_lib.api.definitions import network_ha
|
||||||
from neutron_lib.api.definitions import network_ip_availability
|
from neutron_lib.api.definitions import network_ip_availability
|
||||||
from neutron_lib.api.definitions import network_mtu
|
from neutron_lib.api.definitions import network_mtu
|
||||||
from neutron_lib.api.definitions import network_mtu_writable
|
from neutron_lib.api.definitions import network_mtu_writable
|
||||||
@ -228,6 +229,7 @@ _ALL_API_DEFINITIONS = {
|
|||||||
network,
|
network,
|
||||||
network_availability_zone,
|
network_availability_zone,
|
||||||
network_cascade_delete,
|
network_cascade_delete,
|
||||||
|
network_ha,
|
||||||
network_ip_availability,
|
network_ip_availability,
|
||||||
network_mtu,
|
network_mtu,
|
||||||
network_mtu_writable,
|
network_mtu_writable,
|
||||||
|
43
neutron_lib/api/definitions/network_ha.py
Normal file
43
neutron_lib/api/definitions/network_ha.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# 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 l3
|
||||||
|
from neutron_lib.api.definitions import network
|
||||||
|
|
||||||
|
ALIAS = 'network_ha'
|
||||||
|
IS_SHIM_EXTENSION = False
|
||||||
|
IS_STANDARD_ATTR_EXTENSION = False
|
||||||
|
NAME = 'Network HA creation flag'
|
||||||
|
API_PREFIX = ''
|
||||||
|
DESCRIPTION = 'Network high availability creation flag.'
|
||||||
|
UPDATED_TIMESTAMP = '2023-04-27T10:00:00-00:00'
|
||||||
|
RESOURCE_NAME = network.RESOURCE_NAME
|
||||||
|
COLLECTION_NAME = network.COLLECTION_NAME
|
||||||
|
HA = 'ha'
|
||||||
|
RESOURCE_ATTRIBUTE_MAP = {
|
||||||
|
COLLECTION_NAME: {
|
||||||
|
HA: {
|
||||||
|
'allow_post': True,
|
||||||
|
'allow_put': False,
|
||||||
|
'is_visible': False,
|
||||||
|
'default': False,
|
||||||
|
'convert_to': converters.convert_to_boolean,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SUB_RESOURCE_ATTRIBUTE_MAP = {}
|
||||||
|
ACTION_MAP = {}
|
||||||
|
REQUIRED_EXTENSIONS = [l3.ALIAS]
|
||||||
|
OPTIONAL_EXTENSIONS = []
|
||||||
|
ACTION_STATUS = {}
|
@ -62,6 +62,14 @@ class HasProjectPrimaryKey(HasProject):
|
|||||||
nullable=False, primary_key=True)
|
nullable=False, primary_key=True)
|
||||||
|
|
||||||
|
|
||||||
|
class HasProjectPrimaryUniqueKey(HasProject):
|
||||||
|
"""Project mixin, add to subclasses that have a user."""
|
||||||
|
|
||||||
|
# NOTE: project_id is just a free form string
|
||||||
|
project_id = sa.Column(sa.String(db_const.PROJECT_ID_FIELD_SIZE),
|
||||||
|
nullable=False, primary_key=True, unique=True)
|
||||||
|
|
||||||
|
|
||||||
class HasId(object):
|
class HasId(object):
|
||||||
"""id mixin, add to subclasses that have an id."""
|
"""id mixin, add to subclasses that have an id."""
|
||||||
|
|
||||||
|
8
releasenotes/notes/network-ha-e6e0c3202b084762.yaml
Normal file
8
releasenotes/notes/network-ha-e6e0c3202b084762.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
New API definition: ``network-ha``. This boolean field can be used only
|
||||||
|
during the network creation. If enabled, the Neutron server will create
|
||||||
|
a ``ha_router_networks`` register, that binds the project with the network
|
||||||
|
and represents the only high availability network that can be created per
|
||||||
|
project.
|
Loading…
Reference in New Issue
Block a user