From 1b351e16956563916cdf4f27071653e4b69569c2 Mon Sep 17 00:00:00 2001 From: reedip Date: Mon, 4 Apr 2016 11:17:29 +0900 Subject: Add provider network options to osc network create The following patch adds the provider network options to OSC "network create". Change-Id: Ib8449c00ee4b4285889588f03ddd7a686ce8f987 Partial-Bug: #1545537 --- openstackclient/network/v2/network.py | 26 ++++++++++++++++++++++++ openstackclient/tests/network/v2/test_network.py | 9 ++++++++ 2 files changed, 35 insertions(+) (limited to 'openstackclient') diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py index 6fd18efb..d3b20c0f 100644 --- a/openstackclient/network/v2/network.py +++ b/openstackclient/network/v2/network.py @@ -165,6 +165,26 @@ class CreateNetwork(common.NetworkAndComputeShowOne): action='store_true', help='Do not use the network as the default external network.' 'By default, no network is set as an external network.') + parser.add_argument( + '--provider-network-type', + metavar='', + 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='', + dest='physical_network', + help='Name of the physical network over which the virtual ' + 'network is implemented') + parser.add_argument( + '--provider-segmentation-id', + metavar='', + dest='segmentation_id', + help='VLAN ID for VLAN networks or tunnel-id for GRE/VXLAN ' + 'networks') return parser def update_parser_compute(self, parser): @@ -185,6 +205,12 @@ class CreateNetwork(common.NetworkAndComputeShowOne): attrs['is_default'] = False if parsed_args.default: 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) columns = _get_columns(obj) data = utils.get_item_properties(obj, columns, formatters=_formatters) diff --git a/openstackclient/tests/network/v2/test_network.py b/openstackclient/tests/network/v2/test_network.py index 572bc6ae..2493362e 100644 --- a/openstackclient/tests/network/v2/test_network.py +++ b/openstackclient/tests/network/v2/test_network.py @@ -142,6 +142,9 @@ class TestCreateNetworkIdentityV3(TestNetwork): "--project-domain", identity_fakes_v3.domain_name, "--availability-zone-hint", "nova", "--external", "--default", + "--provider-network-type", "vlan", + "--provider-physical-network", "physnet1", + "--provider-segmentation-id", "400", self._network.name, ] verifylist = [ @@ -152,6 +155,9 @@ class TestCreateNetworkIdentityV3(TestNetwork): ('availability_zone_hints', ["nova"]), ('external', True), ('default', True), + ('provider_network_type', 'vlan'), + ('physical_network', 'physnet1'), + ('segmentation_id', '400'), ('name', self._network.name), ] @@ -166,6 +172,9 @@ class TestCreateNetworkIdentityV3(TestNetwork): 'tenant_id': identity_fakes_v3.project_id, 'is_default': True, 'router:external': True, + 'provider:network_type': 'vlan', + 'provider:physical_network': 'physnet1', + 'provider:segmentation_id': '400', }) self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) -- cgit v1.2.1