Add VLAN Transparent option to `osc network
`
osc network set and network create now support --transparent-vlan|--no-transparent-vlan options to add/remove vlan transparency from the network. Change-Id: I845eb8f541cd32a4c4b28f929a63b205e7e31756 Closes-Bug: 1545537
This commit is contained in:
parent
4639148b1d
commit
00c149a28f
doc/source/command-objects
openstackclient
releasenotes/notes
@ -21,6 +21,7 @@ Create new network
|
|||||||
[--provider-network-type <provider-network-type>]
|
[--provider-network-type <provider-network-type>]
|
||||||
[--provider-physical-network <provider-physical-network>]
|
[--provider-physical-network <provider-physical-network>]
|
||||||
[--provider-segment <provider-segment>]
|
[--provider-segment <provider-segment>]
|
||||||
|
[--transparent-vlan | --no-transparent-vlan]
|
||||||
<name>
|
<name>
|
||||||
|
|
||||||
.. option:: --project <project>
|
.. option:: --project <project>
|
||||||
@ -116,6 +117,18 @@ Create new network
|
|||||||
|
|
||||||
*Network version 2 only*
|
*Network version 2 only*
|
||||||
|
|
||||||
|
.. option:: --transparent-vlan
|
||||||
|
|
||||||
|
Make the network VLAN transparent
|
||||||
|
|
||||||
|
*Network version 2 only*
|
||||||
|
|
||||||
|
.. option:: --no-transparent-vlan
|
||||||
|
|
||||||
|
Do not make the network VLAN transparent
|
||||||
|
|
||||||
|
*Network version 2 only*
|
||||||
|
|
||||||
.. _network_create-name:
|
.. _network_create-name:
|
||||||
.. describe:: <name>
|
.. describe:: <name>
|
||||||
|
|
||||||
@ -175,6 +188,7 @@ Set network properties
|
|||||||
[--provider-network-type <provider-network-type>]
|
[--provider-network-type <provider-network-type>]
|
||||||
[--provider-physical-network <provider-physical-network>]
|
[--provider-physical-network <provider-physical-network>]
|
||||||
[--provider-segment <provider-segment>]
|
[--provider-segment <provider-segment>]
|
||||||
|
[--transparent-vlan | --no-transparent-vlan]
|
||||||
<network>
|
<network>
|
||||||
|
|
||||||
.. option:: --name <name>
|
.. option:: --name <name>
|
||||||
@ -227,6 +241,14 @@ Set network properties
|
|||||||
|
|
||||||
VLAN ID for VLAN networks or Tunnel ID for GRE/VXLAN networks
|
VLAN ID for VLAN networks or Tunnel ID for GRE/VXLAN networks
|
||||||
|
|
||||||
|
.. option:: --transparent-vlan
|
||||||
|
|
||||||
|
Make the network VLAN transparent
|
||||||
|
|
||||||
|
.. option:: --no-transparent-vlan
|
||||||
|
|
||||||
|
Do not make the network VLAN transparent
|
||||||
|
|
||||||
.. _network_set-network:
|
.. _network_set-network:
|
||||||
.. describe:: <network>
|
.. describe:: <network>
|
||||||
|
|
||||||
|
@ -93,11 +93,17 @@ def _get_attrs(client_manager, parsed_args):
|
|||||||
attrs['provider:physical_network'] = parsed_args.physical_network
|
attrs['provider:physical_network'] = parsed_args.physical_network
|
||||||
if parsed_args.segmentation_id:
|
if parsed_args.segmentation_id:
|
||||||
attrs['provider:segmentation_id'] = parsed_args.segmentation_id
|
attrs['provider:segmentation_id'] = parsed_args.segmentation_id
|
||||||
|
# Update VLAN Transparency for networks
|
||||||
|
if parsed_args.transparent_vlan:
|
||||||
|
attrs['vlan_transparent'] = True
|
||||||
|
if parsed_args.no_transparent_vlan:
|
||||||
|
attrs['vlan_transparent'] = False
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
||||||
def _add_provider_network_options(parser):
|
def _add_additional_network_options(parser):
|
||||||
# Add provider network options
|
# Add additional network options
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--provider-network-type',
|
'--provider-network-type',
|
||||||
metavar='<provider-network-type>',
|
metavar='<provider-network-type>',
|
||||||
@ -119,6 +125,16 @@ def _add_provider_network_options(parser):
|
|||||||
help=_("VLAN ID for VLAN networks or Tunnel ID for GRE/VXLAN "
|
help=_("VLAN ID for VLAN networks or Tunnel ID for GRE/VXLAN "
|
||||||
"networks"))
|
"networks"))
|
||||||
|
|
||||||
|
vlan_transparent_grp = parser.add_mutually_exclusive_group()
|
||||||
|
vlan_transparent_grp.add_argument(
|
||||||
|
'--transparent-vlan',
|
||||||
|
action='store_true',
|
||||||
|
help=_("Make the network VLAN transparent"))
|
||||||
|
vlan_transparent_grp.add_argument(
|
||||||
|
'--no-transparent-vlan',
|
||||||
|
action='store_true',
|
||||||
|
help=_("Do not make the network VLAN transparent"))
|
||||||
|
|
||||||
|
|
||||||
def _get_attrs_compute(client_manager, parsed_args):
|
def _get_attrs_compute(client_manager, parsed_args):
|
||||||
attrs = {}
|
attrs = {}
|
||||||
@ -209,7 +225,7 @@ class CreateNetwork(common.NetworkAndComputeShowOne):
|
|||||||
help=_("Do not use the network as the default external network. "
|
help=_("Do not use the network as the default external network. "
|
||||||
"(default)")
|
"(default)")
|
||||||
)
|
)
|
||||||
_add_provider_network_options(parser)
|
_add_additional_network_options(parser)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def update_parser_compute(self, parser):
|
def update_parser_compute(self, parser):
|
||||||
@ -413,7 +429,7 @@ class SetNetwork(command.Command):
|
|||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Do not use the network as the default external network")
|
help=_("Do not use the network as the default external network")
|
||||||
)
|
)
|
||||||
_add_provider_network_options(parser)
|
_add_additional_network_options(parser)
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
|
@ -149,6 +149,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
|
|||||||
"--provider-network-type", "vlan",
|
"--provider-network-type", "vlan",
|
||||||
"--provider-physical-network", "physnet1",
|
"--provider-physical-network", "physnet1",
|
||||||
"--provider-segment", "400",
|
"--provider-segment", "400",
|
||||||
|
"--transparent-vlan",
|
||||||
self._network.name,
|
self._network.name,
|
||||||
]
|
]
|
||||||
verifylist = [
|
verifylist = [
|
||||||
@ -162,6 +163,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
|
|||||||
('provider_network_type', 'vlan'),
|
('provider_network_type', 'vlan'),
|
||||||
('physical_network', 'physnet1'),
|
('physical_network', 'physnet1'),
|
||||||
('segmentation_id', '400'),
|
('segmentation_id', '400'),
|
||||||
|
('transparent_vlan', True),
|
||||||
('name', self._network.name),
|
('name', self._network.name),
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -179,6 +181,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
|
|||||||
'provider:network_type': 'vlan',
|
'provider:network_type': 'vlan',
|
||||||
'provider:physical_network': 'physnet1',
|
'provider:physical_network': 'physnet1',
|
||||||
'provider:segmentation_id': '400',
|
'provider:segmentation_id': '400',
|
||||||
|
'vlan_transparent': True,
|
||||||
})
|
})
|
||||||
self.assertEqual(self.columns, columns)
|
self.assertEqual(self.columns, columns)
|
||||||
self.assertEqual(self.data, data)
|
self.assertEqual(self.data, data)
|
||||||
@ -487,6 +490,7 @@ class TestSetNetwork(TestNetwork):
|
|||||||
'--provider-network-type', 'vlan',
|
'--provider-network-type', 'vlan',
|
||||||
'--provider-physical-network', 'physnet1',
|
'--provider-physical-network', 'physnet1',
|
||||||
'--provider-segment', '400',
|
'--provider-segment', '400',
|
||||||
|
'--no-transparent-vlan',
|
||||||
]
|
]
|
||||||
verifylist = [
|
verifylist = [
|
||||||
('network', self._network.name),
|
('network', self._network.name),
|
||||||
@ -498,6 +502,7 @@ class TestSetNetwork(TestNetwork):
|
|||||||
('provider_network_type', 'vlan'),
|
('provider_network_type', 'vlan'),
|
||||||
('physical_network', 'physnet1'),
|
('physical_network', 'physnet1'),
|
||||||
('segmentation_id', '400'),
|
('segmentation_id', '400'),
|
||||||
|
('no_transparent_vlan', True),
|
||||||
]
|
]
|
||||||
|
|
||||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||||
@ -512,6 +517,7 @@ class TestSetNetwork(TestNetwork):
|
|||||||
'provider:network_type': 'vlan',
|
'provider:network_type': 'vlan',
|
||||||
'provider:physical_network': 'physnet1',
|
'provider:physical_network': 'physnet1',
|
||||||
'provider:segmentation_id': '400',
|
'provider:segmentation_id': '400',
|
||||||
|
'vlan_transparent': False,
|
||||||
}
|
}
|
||||||
self.network.update_network.assert_called_once_with(
|
self.network.update_network.assert_called_once_with(
|
||||||
self._network, **attrs)
|
self._network, **attrs)
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
``network create`` and ``network set`` now support
|
||||||
|
``--transparent-vlan`` and ``--no-transparent-vlan``
|
||||||
|
options to add/remove VLAN transparency attributes
|
||||||
|
from networks.
|
||||||
|
This option is available in Network V2 only.
|
||||||
|
[Bug `1545537 <https://bugs.launchpad.net/bugs/1545537>`_]
|
Loading…
x
Reference in New Issue
Block a user