summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/network
diff options
context:
space:
mode:
authorKailun Qin <kailun.qin@intel.com>2019-02-27 23:02:52 +0800
committerDean Troyer <dtroyer@gmail.com>2019-03-07 19:39:17 +0000
commitd52920b3878479f7dd549cba1679870b4f00ee33 (patch)
treebdcd9dc1e1a17f93136923928a8eabef52ee853f /openstackclient/tests/functional/network
parent0a187905c01f6bc2b9855081ac0042f00715dedf (diff)
downloadpython-openstackclient-d52920b3878479f7dd549cba1679870b4f00ee33.tar.gz
Add network segment range command object
Add network segment range command object in support of network segment range management. This patch set includes documentation, unit tests and functional tests (currently skipped unit network segment range enabled in Neutron by default) for the following new commands: - "os network segment range create" - "os network segment range delete" - "os network segment range list" - "os network segment range set" - "os network segment range show" Co-authored-by: Allain Legacy <Allain.legacy@windriver.com> [depends on removed by dtroyer as those are all +W and trying to pass the gate, OSC has it's freeze dealine looming] Depends: https://review.openstack.org/624708 Depends: https://review.openstack.org/624709 Depends: https://review.openstack.org/638386 Partially-implements: blueprint network-segment-range-management Change-Id: I335692f2db5be07c1c164f09b13f1abb80b7ba33
Diffstat (limited to 'openstackclient/tests/functional/network')
-rw-r--r--openstackclient/tests/functional/network/v2/test_network_segment_range.py145
1 files changed, 145 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/network/v2/test_network_segment_range.py b/openstackclient/tests/functional/network/v2/test_network_segment_range.py
new file mode 100644
index 00000000..95402dcb
--- /dev/null
+++ b/openstackclient/tests/functional/network/v2/test_network_segment_range.py
@@ -0,0 +1,145 @@
+# Copyright (c) 2019, Intel Corporation.
+# All Rights Reserved.
+#
+# 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.
+#
+
+import json
+import uuid
+
+from openstackclient.tests.functional.network.v2 import common
+
+
+class NetworkSegmentRangeTests(common.NetworkTests):
+ """Functional tests for network segment range"""
+
+ def setUp(self):
+ super(NetworkSegmentRangeTests, self).setUp()
+ # Nothing in this class works with Nova Network
+ if not self.haz_network:
+ self.skipTest("No Network service present")
+ self.PROJECT_NAME = uuid.uuid4().hex
+
+ def test_network_segment_range_create_delete(self):
+ # Make a project
+ project_id = json.loads(self.openstack(
+ 'project create -f json ' + self.PROJECT_NAME))['id']
+ name = uuid.uuid4().hex
+ json_output = json.loads(self.openstack(
+ ' network segment range create -f json ' +
+ '--private ' +
+ "--project " + self.PROJECT_NAME + " " +
+ '--network-type vxlan ' +
+ '--minimum 2018 ' +
+ '--maximum 2055 ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ json_output["name"],
+ )
+ self.assertEqual(
+ project_id,
+ json_output["project_id"],
+ )
+
+ raw_output = self.openstack(
+ 'network segment range delete ' + name,
+ )
+ self.assertOutput('', raw_output)
+ raw_output_project = self.openstack(
+ 'project delete ' + self.PROJECT_NAME)
+ self.assertEqual('', raw_output_project)
+
+ def test_network_segment_range_list(self):
+ name = uuid.uuid4().hex
+ json_output = json.loads(self.openstack(
+ ' network segment range create -f json ' +
+ '--shared ' +
+ '--network-type geneve ' +
+ '--minimum 2018 ' +
+ '--maximum 2055 ' +
+ name
+ ))
+ network_segment_range_id = json_output.get('id')
+ network_segment_range_name = json_output.get('name')
+ self.addCleanup(
+ self.openstack,
+ 'network segment range delete ' + network_segment_range_id
+ )
+ self.assertEqual(
+ name,
+ json_output["name"],
+ )
+
+ json_output = json.loads(self.openstack(
+ 'network segment list -f json'
+ ))
+ item_map = {
+ item.get('ID'): item.get('Name') for item in json_output
+ }
+ self.assertIn(network_segment_range_id, item_map.keys())
+ self.assertIn(network_segment_range_name, item_map.values())
+
+ def test_network_segment_range_set_show(self):
+ project_id = json.loads(self.openstack(
+ 'project create -f json ' + self.PROJECT_NAME))['id']
+ name = uuid.uuid4().hex
+ json_output = json.loads(self.openstack(
+ ' network segment range create -f json ' +
+ '--private ' +
+ "--project " + self.PROJECT_NAME + " " +
+ '--network-type geneve ' +
+ '--minimum 2018 ' +
+ '--maximum 2055 ' +
+ name
+ ))
+ self.addCleanup(
+ self.openstack,
+ 'network segment range delete ' + name
+ )
+ self.assertEqual(
+ name,
+ json_output["name"],
+ )
+ self.assertEqual(
+ project_id,
+ json_output["project_id"],
+ )
+
+ new_minimum = '2010'
+ new_maximum = '2060'
+ cmd_output = self.openstack(
+ 'network segment range set ' +
+ '--minimum ' + new_minimum + ' ' +
+ '--maximum ' + new_maximum + ' ' +
+ name
+ )
+ self.assertOutput('', cmd_output)
+
+ json_output = json.loads(self.openstack(
+ 'network segment range show -f json ' +
+ name
+ ))
+ self.assertEqual(
+ new_minimum,
+ json_output["minimum"],
+ )
+ self.assertEqual(
+ new_maximum,
+ json_output["maximum"],
+ )
+
+ raw_output_project = self.openstack(
+ 'project delete ' + self.PROJECT_NAME)
+ self.assertEqual('', raw_output_project)