From 4f23a77de04bfdfafd4bf8f16b0365df7663e9e5 Mon Sep 17 00:00:00 2001 From: Richard Theis Date: Tue, 8 Mar 2016 15:18:16 -0600 Subject: Add network segment create, delete and set support Add network segment create, delete and set in support of routed networks. This patch set includes documentation, unit tests and functional tests for the following new commands: - "os network segment create" - "os network segment delete" - "os network segment set" This patch set also includes support for the name and description properties. These new commands are currently marked as beta commands. Change-Id: I86bc223c4adc5b5fe1b1ee5c9253e43ba52fb5ed Depends-On: Ib194125162057fccb4e951587c2fa4ec2e2f098c Partially-Implements: blueprint routed-networks --- .../functional/network/v2/test_network_segment.py | 84 ++++++++++++++++------ 1 file changed, 64 insertions(+), 20 deletions(-) (limited to 'openstackclient/tests/functional/network') diff --git a/openstackclient/tests/functional/network/v2/test_network_segment.py b/openstackclient/tests/functional/network/v2/test_network_segment.py index f871e88e..de5aef96 100644 --- a/openstackclient/tests/functional/network/v2/test_network_segment.py +++ b/openstackclient/tests/functional/network/v2/test_network_segment.py @@ -10,20 +10,18 @@ # License for the specific language governing permissions and limitations # under the License. -import testtools import uuid from openstackclient.tests.functional import base -# NOTE(rtheis): Routed networks is still a WIP and not enabled by default. -@testtools.skip("bp/routed-networks") class NetworkSegmentTests(base.TestCase): """Functional tests for network segment. """ NETWORK_NAME = uuid.uuid4().hex PHYSICAL_NETWORK_NAME = uuid.uuid4().hex NETWORK_SEGMENT_ID = None NETWORK_ID = None + NETWORK_SEGMENT_EXTENSION = None @classmethod def setUpClass(cls): @@ -32,29 +30,75 @@ class NetworkSegmentTests(base.TestCase): raw_output = cls.openstack('network create ' + cls.NETWORK_NAME + opts) cls.NETWORK_ID = raw_output.strip('\n') - # Get the segment for the network. - opts = cls.get_opts(['ID', 'Network']) - raw_output = cls.openstack('--os-beta-command ' - 'network segment list ' - ' --network ' + cls.NETWORK_NAME + - ' ' + opts) - raw_output_row = raw_output.split('\n')[0] - cls.NETWORK_SEGMENT_ID = raw_output_row.split(' ')[0] + # NOTE(rtheis): The segment extension is not yet enabled by default. + # Skip the tests if not enabled. + extensions = cls.get_openstack_extention_names() + if 'Segment' in extensions: + cls.NETWORK_SEGMENT_EXTENSION = 'Segment' + + if cls.NETWORK_SEGMENT_EXTENSION: + # Get the segment for the network. + opts = cls.get_opts(['ID', 'Network']) + raw_output = cls.openstack('--os-beta-command ' + 'network segment list ' + ' --network ' + cls.NETWORK_NAME + + ' ' + opts) + raw_output_row = raw_output.split('\n')[0] + cls.NETWORK_SEGMENT_ID = raw_output_row.split(' ')[0] @classmethod def tearDownClass(cls): raw_output = cls.openstack('network delete ' + cls.NETWORK_NAME) cls.assertOutput('', raw_output) + def test_network_segment_create_delete(self): + if self.NETWORK_SEGMENT_EXTENSION: + opts = self.get_opts(['id']) + raw_output = self.openstack( + '--os-beta-command' + + ' network segment create --network ' + self.NETWORK_ID + + ' --network-type geneve ' + + ' --segment 2055 test_segment ' + opts + ) + network_segment_id = raw_output.strip('\n') + raw_output = self.openstack('--os-beta-command ' + + 'network segment delete ' + + network_segment_id) + self.assertOutput('', raw_output) + else: + self.skipTest('Segment extension disabled') + def test_network_segment_list(self): - opts = self.get_opts(['ID']) - raw_output = self.openstack('--os-beta-command ' - 'network segment list' + opts) - self.assertIn(self.NETWORK_SEGMENT_ID, raw_output) + if self.NETWORK_SEGMENT_EXTENSION: + opts = self.get_opts(['ID']) + raw_output = self.openstack('--os-beta-command ' + 'network segment list' + opts) + self.assertIn(self.NETWORK_SEGMENT_ID, raw_output) + else: + self.skipTest('Segment extension disabled') + + def test_network_segment_set(self): + if self.NETWORK_SEGMENT_EXTENSION: + new_description = 'new_description' + raw_output = self.openstack('--os-beta-command ' + 'network segment set ' + + '--description ' + new_description + + ' ' + self.NETWORK_SEGMENT_ID) + self.assertOutput('', raw_output) + opts = self.get_opts(['description']) + raw_output = self.openstack('--os-beta-command ' + 'network segment show ' + + self.NETWORK_SEGMENT_ID + opts) + self.assertEqual(new_description + "\n", raw_output) + else: + self.skipTest('Segment extension disabled') def test_network_segment_show(self): - opts = self.get_opts(['network_id']) - raw_output = self.openstack('--os-beta-command ' - 'network segment show ' + - self.NETWORK_SEGMENT_ID + opts) - self.assertEqual(self.NETWORK_ID + "\n", raw_output) + if self.NETWORK_SEGMENT_EXTENSION: + opts = self.get_opts(['network_id']) + raw_output = self.openstack('--os-beta-command ' + 'network segment show ' + + self.NETWORK_SEGMENT_ID + opts) + self.assertEqual(self.NETWORK_ID + "\n", raw_output) + else: + self.skipTest('Segment extension disabled') -- cgit v1.2.1