Merge "Add provider network options to osc network create"

This commit is contained in:
Jenkins 2016-04-06 19:23:45 +00:00 committed by Gerrit Code Review
commit bd7e1d3a3e
4 changed files with 63 additions and 0 deletions

View File

@ -18,6 +18,9 @@ Create new network
[--share | --no-share] [--share | --no-share]
[--availability-zone-hint <availability-zone>] [--availability-zone-hint <availability-zone>]
[--external [--default | --no-default] | --internal] [--external [--default | --no-default] | --internal]
[--provider-network-type <provider-network-type>]
[--provider-physical-network <provider-physical-network>]
[--provider-segmentation-id <provider-segmentation-id>]
<name> <name>
.. option:: --project <project> .. option:: --project <project>
@ -83,6 +86,22 @@ Create new network
By default, no network is set as an external network. By default, no network is set as an external network.
(Network v2 only) (Network v2 only)
.. option:: --provider-network-type <provider-network-type>
The physical mechanism by which the virtual network is implemented.
The supported options are: flat, gre, local, vlan, vxlan
(Network v2 only)
.. option:: --provider-physical-network <provider-physical-network>
Name of the physical network over which the virtual network is implemented
(Network v2 only)
.. option:: --provider-segmentation-id <provider-segmentation-id>
VLAN ID for VLAN networks or tunnel-id for GRE/VXLAN networks
(Network v2 only)
.. _network_create-name: .. _network_create-name:
.. describe:: <name> .. describe:: <name>

View File

@ -165,6 +165,26 @@ class CreateNetwork(common.NetworkAndComputeShowOne):
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.'
'By default, no network is set as an external network.') 'By default, no network is set as an external network.')
parser.add_argument(
'--provider-network-type',
metavar='<provider-network-type>',
choices=['flat', 'gre', 'local',
'vlan', 'vxlan'],
help='The physical mechanism by which the virtual network '
'is implemented. The supported options are: '
'flat, gre, local, vlan, vxlan')
parser.add_argument(
'--provider-physical-network',
metavar='<provider-physical-network>',
dest='physical_network',
help='Name of the physical network over which the virtual '
'network is implemented')
parser.add_argument(
'--provider-segmentation-id',
metavar='<provider-segmentation-id>',
dest='segmentation_id',
help='VLAN ID for VLAN networks or tunnel-id for GRE/VXLAN '
'networks')
return parser return parser
def update_parser_compute(self, parser): def update_parser_compute(self, parser):
@ -185,6 +205,12 @@ class CreateNetwork(common.NetworkAndComputeShowOne):
attrs['is_default'] = False attrs['is_default'] = False
if parsed_args.default: if parsed_args.default:
attrs['is_default'] = True attrs['is_default'] = True
if parsed_args.provider_network_type:
attrs['provider:network_type'] = parsed_args.provider_network_type
if parsed_args.physical_network:
attrs['provider:physical_network'] = parsed_args.physical_network
if parsed_args.segmentation_id:
attrs['provider:segmentation_id'] = parsed_args.segmentation_id
obj = client.create_network(**attrs) obj = client.create_network(**attrs)
columns = _get_columns(obj) columns = _get_columns(obj)
data = utils.get_item_properties(obj, columns, formatters=_formatters) data = utils.get_item_properties(obj, columns, formatters=_formatters)

View File

@ -142,6 +142,9 @@ class TestCreateNetworkIdentityV3(TestNetwork):
"--project-domain", identity_fakes_v3.domain_name, "--project-domain", identity_fakes_v3.domain_name,
"--availability-zone-hint", "nova", "--availability-zone-hint", "nova",
"--external", "--default", "--external", "--default",
"--provider-network-type", "vlan",
"--provider-physical-network", "physnet1",
"--provider-segmentation-id", "400",
self._network.name, self._network.name,
] ]
verifylist = [ verifylist = [
@ -152,6 +155,9 @@ class TestCreateNetworkIdentityV3(TestNetwork):
('availability_zone_hints', ["nova"]), ('availability_zone_hints', ["nova"]),
('external', True), ('external', True),
('default', True), ('default', True),
('provider_network_type', 'vlan'),
('physical_network', 'physnet1'),
('segmentation_id', '400'),
('name', self._network.name), ('name', self._network.name),
] ]
@ -166,6 +172,9 @@ class TestCreateNetworkIdentityV3(TestNetwork):
'tenant_id': identity_fakes_v3.project_id, 'tenant_id': identity_fakes_v3.project_id,
'is_default': True, 'is_default': True,
'router:external': True, 'router:external': True,
'provider:network_type': 'vlan',
'provider:physical_network': 'physnet1',
'provider:segmentation_id': '400',
}) })
self.assertEqual(self.columns, columns) self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data) self.assertEqual(self.data, data)

View File

@ -0,0 +1,9 @@
---
features:
- |
New options have been added to the ``network create`` command
to support provider network functionality.
These options are ``--provider-network-type``, ``--provider-physical-network``,
and ``--provider-segmentation-id``.
These options are available for Networkv2 only
[Bug `1545537 <https://bugs.launchpad.net/bugs/1545537>`_]