Merge "Nova net functional tests round 3"
This commit is contained in:
		| @@ -18,25 +18,66 @@ import json | ||||
| from openstackclient.tests.functional import base | ||||
|  | ||||
|  | ||||
| class TestExtension(base.TestCase): | ||||
|     """Functional tests for extension.""" | ||||
| class ExtensionTests(base.TestCase): | ||||
|     """Functional tests for extension""" | ||||
|  | ||||
|     def test_extension_list(self): | ||||
|         """Test extension list.""" | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         # super(NetworkTests, cls).setUp() | ||||
|         cls.haz_network = base.is_service_enabled('network') | ||||
|  | ||||
|     def test_extension_list_compute(self): | ||||
|         """Test compute extension list""" | ||||
|         json_output = json.loads(self.openstack( | ||||
|             'extension list -f json ' + '--network') | ||||
|         ) | ||||
|         self.assertEqual( | ||||
|             'Default Subnetpools', | ||||
|             json_output[0]['Name'], | ||||
|             'extension list -f json ' + | ||||
|             '--compute' | ||||
|         )) | ||||
|         name_list = [item.get('Name') for item in json_output] | ||||
|         self.assertIn( | ||||
|             'ImageSize', | ||||
|             name_list, | ||||
|         ) | ||||
|  | ||||
|     def test_extension_show(self): | ||||
|         """Test extension show.""" | ||||
|     def test_extension_list_network(self): | ||||
|         """Test network extension list""" | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|         json_output = json.loads(self.openstack( | ||||
|             'extension list -f json ' + | ||||
|             '--network' | ||||
|         )) | ||||
|         name_list = [item.get('Name') for item in json_output] | ||||
|         self.assertIn( | ||||
|             'Default Subnetpools', | ||||
|             name_list, | ||||
|         ) | ||||
|  | ||||
|     # NOTE(dtroyer): Only network extensions are currently supported but | ||||
|     #                I am going to leave this here anyway as a reminder | ||||
|     #                fix that. | ||||
|     # def test_extension_show_compute(self): | ||||
|     #     """Test compute extension show""" | ||||
|     #     json_output = json.loads(self.openstack( | ||||
|     #         'extension show -f json ' + | ||||
|     #         'ImageSize' | ||||
|     #     )) | ||||
|     #     self.assertEqual( | ||||
|     #         'OS-EXT-IMG-SIZE', | ||||
|     #         json_output.get('Alias'), | ||||
|     #     ) | ||||
|  | ||||
|     def test_extension_show_network(self): | ||||
|         """Test network extension show""" | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|         name = 'agent' | ||||
|         json_output = json.loads(self.openstack( | ||||
|             'extension show -f json ' + name) | ||||
|         ) | ||||
|             'extension show -f json ' + | ||||
|             name | ||||
|         )) | ||||
|         self.assertEqual( | ||||
|             name, | ||||
|             json_output.get('Alias')) | ||||
|             json_output.get('Alias'), | ||||
|         ) | ||||
|   | ||||
| @@ -15,6 +15,7 @@ import uuid | ||||
|  | ||||
| from tempest.lib import exceptions | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.compute.v2 import common | ||||
| from openstackclient.tests.functional.volume.v2 import test_volume | ||||
|  | ||||
| @@ -22,6 +23,10 @@ from openstackclient.tests.functional.volume.v2 import test_volume | ||||
| class ServerTests(common.ComputeTestCase): | ||||
|     """Functional tests for openstack server commands""" | ||||
|  | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         cls.haz_network = base.is_service_enabled('network') | ||||
|  | ||||
|     def test_server_list(self): | ||||
|         """Test server list, set""" | ||||
|         cmd_output = self.server_create() | ||||
| @@ -202,6 +207,15 @@ class ServerTests(common.ComputeTestCase): | ||||
|         name = cmd_output['name'] | ||||
|         self.wait_for_status(name, "ACTIVE") | ||||
|  | ||||
|         if not self.haz_network: | ||||
|             # nova-net needs a public subnet | ||||
|             cmd_output = json.loads(self.openstack( | ||||
|                 'network create -f json ' + | ||||
|                 '--subnet 8.6.7.5/28 ' + | ||||
|                 'public' | ||||
|             )) | ||||
|             self.addCleanup(self.openstack, 'network delete public') | ||||
|  | ||||
|         # attach ip | ||||
|         cmd_output = json.loads(self.openstack( | ||||
|             'floating ip create -f json ' + | ||||
|   | ||||
| @@ -17,7 +17,7 @@ from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class AddressScopeTests(common.NetworkTests): | ||||
|     """Functional tests for address scope. """ | ||||
|     """Functional tests for address scope""" | ||||
|  | ||||
|     # NOTE(dtroyer): Do not normalize the setup and teardown of the resource | ||||
|     #                creation and deletion.  Little is gained when each test | ||||
|   | ||||
| @@ -17,32 +17,47 @@ from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class IPAvailabilityTests(common.NetworkTests): | ||||
|     """Functional tests for IP availability. """ | ||||
|     """Functional tests for IP availability""" | ||||
|  | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if not cls.haz_network: | ||||
|             common.NetworkTests.skipTest(cls, "No Network service present") | ||||
|  | ||||
|         if cls.haz_network: | ||||
|             # Create a network for the subnet. | ||||
|             cls.NAME = uuid.uuid4().hex | ||||
|             cls.NETWORK_NAME = uuid.uuid4().hex | ||||
|         cls.openstack('network create ' + cls.NETWORK_NAME) | ||||
|             cls.openstack( | ||||
|                 'network create ' + | ||||
|                 cls.NETWORK_NAME | ||||
|             ) | ||||
|             cmd_output = json.loads(cls.openstack( | ||||
|             'subnet create -f json --network ' + cls.NETWORK_NAME + | ||||
|             ' --subnet-range 10.10.10.0/24 ' + | ||||
|                 'subnet create -f json ' + | ||||
|                 '--network ' + cls.NETWORK_NAME + ' ' + | ||||
|                 '--subnet-range 10.10.10.0/24 ' + | ||||
|                 cls.NAME | ||||
|             )) | ||||
|             cls.assertOutput(cls.NAME, cmd_output['name']) | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         raw_subnet = cls.openstack('subnet delete ' + cls.NAME) | ||||
|         raw_network = cls.openstack('network delete ' + cls.NETWORK_NAME) | ||||
|         if cls.haz_network: | ||||
|             raw_subnet = cls.openstack( | ||||
|                 'subnet delete ' + | ||||
|                 cls.NAME | ||||
|             ) | ||||
|             raw_network = cls.openstack( | ||||
|                 'network delete ' + | ||||
|                 cls.NETWORK_NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_subnet) | ||||
|             cls.assertOutput('', raw_network) | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(IPAvailabilityTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_ip_availability_list(self): | ||||
|         """Test ip availability list""" | ||||
|         cmd_output = json.loads(self.openstack( | ||||
|   | ||||
| @@ -13,17 +13,17 @@ | ||||
| import json | ||||
| import uuid | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class NetworkTests(base.TestCase): | ||||
| class NetworkTests(common.NetworkTests): | ||||
|     """Functional tests for network""" | ||||
|  | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         cls.haz_network = base.is_service_enabled('network') | ||||
|         cls.PROJECT_NAME =\ | ||||
|             cls.get_openstack_configuration_value('auth.project_name') | ||||
|     def setUp(self): | ||||
|         super(NetworkTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_network_create_compute(self): | ||||
|         """Test Nova-net create options, delete""" | ||||
|   | ||||
| @@ -31,7 +31,8 @@ class TestMeterRule(common.NetworkTests): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             json_output = json.loads(cls.openstack( | ||||
|                 'network meter create -f json ' + cls.METER_NAME | ||||
|                 'network meter create -f json ' + | ||||
|                 cls.METER_NAME | ||||
|             )) | ||||
|             cls.METER_ID = json_output.get('id') | ||||
|  | ||||
| @@ -39,7 +40,10 @@ class TestMeterRule(common.NetworkTests): | ||||
|     def tearDownClass(cls): | ||||
|         common.NetworkTests.tearDownClass() | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack('network meter delete ' + cls.METER_ID) | ||||
|             raw_output = cls.openstack( | ||||
|                 'network meter delete ' + | ||||
|                 cls.METER_ID | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def setUp(self): | ||||
|   | ||||
| @@ -27,22 +27,30 @@ class NetworkQosPolicyTests(common.NetworkTests): | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             opts = cls.get_opts(cls.FIELDS) | ||||
|         raw_output = cls.openstack('network qos policy create ' + cls.NAME + | ||||
|                                    opts) | ||||
|             raw_output = cls.openstack( | ||||
|                 'network qos policy create ' + | ||||
|                 cls.NAME + | ||||
|                 opts | ||||
|             ) | ||||
|             cls.assertOutput(cls.NAME + "\n", raw_output) | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack( | ||||
|                 'network qos policy delete ' + | ||||
|                 cls.NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(NetworkQosPolicyTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         raw_output = cls.openstack('network qos policy delete ' + cls.NAME) | ||||
|         cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def test_qos_policy_list(self): | ||||
|         opts = self.get_opts(self.HEADERS) | ||||
|         raw_output = self.openstack('network qos policy list' + opts) | ||||
|   | ||||
| @@ -19,7 +19,7 @@ from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class NetworkQosRuleTestsMinimumBandwidth(common.NetworkTests): | ||||
|     """Functional tests for QoS minimum bandwidth rule.""" | ||||
|     """Functional tests for QoS minimum bandwidth rule""" | ||||
|     RULE_ID = None | ||||
|     QOS_POLICY_NAME = 'qos_policy_' + uuid.uuid4().hex | ||||
|     MIN_KBPS = 2800 | ||||
| @@ -32,19 +32,34 @@ class NetworkQosRuleTestsMinimumBandwidth(common.NetworkTests): | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             opts = cls.get_opts(cls.FIELDS) | ||||
|         cls.openstack('network qos policy create ' + cls.QOS_POLICY_NAME) | ||||
|         cls.RULE_ID = cls.openstack('network qos rule create --type ' + | ||||
|                                     cls.TYPE + ' --min-kbps ' + | ||||
|                                     str(cls.MIN_KBPS) + ' ' + cls.DIRECTION + | ||||
|                                     ' ' + cls.QOS_POLICY_NAME + opts) | ||||
|             cls.openstack( | ||||
|                 'network qos policy create ' + | ||||
|                 cls.QOS_POLICY_NAME | ||||
|             ) | ||||
|             cls.RULE_ID = cls.openstack( | ||||
|                 'network qos rule create ' + | ||||
|                 '--type ' + cls.TYPE + ' ' + | ||||
|                 '--min-kbps ' + str(cls.MIN_KBPS) + ' ' + | ||||
|                 cls.DIRECTION + ' ' + | ||||
|                 cls.QOS_POLICY_NAME + | ||||
|                 opts | ||||
|             ) | ||||
|             cls.assertsOutputNotNone(cls.RULE_ID) | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         raw_output = cls.openstack('network qos rule delete ' + | ||||
|                                    cls.QOS_POLICY_NAME + ' ' + cls.RULE_ID) | ||||
|         cls.openstack('network qos policy delete ' + cls.QOS_POLICY_NAME) | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack( | ||||
|                 'network qos rule delete ' + | ||||
|                 cls.QOS_POLICY_NAME + ' ' + | ||||
|                 cls.RULE_ID | ||||
|             ) | ||||
|             cls.openstack( | ||||
|                 'network qos policy delete ' + | ||||
|                 cls.QOS_POLICY_NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def setUp(self): | ||||
| @@ -78,7 +93,7 @@ class NetworkQosRuleTestsMinimumBandwidth(common.NetworkTests): | ||||
|  | ||||
|  | ||||
| class NetworkQosRuleTestsDSCPMarking(common.NetworkTests): | ||||
|     """Functional tests for QoS DSCP marking rule.""" | ||||
|     """Functional tests for QoS DSCP marking rule""" | ||||
|     RULE_ID = None | ||||
|     QOS_POLICY_NAME = 'qos_policy_' + uuid.uuid4().hex | ||||
|     DSCP_MARK = 8 | ||||
| @@ -90,18 +105,29 @@ class NetworkQosRuleTestsDSCPMarking(common.NetworkTests): | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             opts = cls.get_opts(cls.FIELDS) | ||||
|         cls.openstack('network qos policy create ' + cls.QOS_POLICY_NAME) | ||||
|         cls.RULE_ID = cls.openstack('network qos rule create --type ' + | ||||
|                                     cls.TYPE + ' --dscp-mark ' + | ||||
|                                     str(cls.DSCP_MARK) + ' ' + | ||||
|                                     cls.QOS_POLICY_NAME + opts) | ||||
|             cls.openstack( | ||||
|                 'network qos policy create ' + | ||||
|                 cls.QOS_POLICY_NAME | ||||
|             ) | ||||
|             cls.RULE_ID = cls.openstack( | ||||
|                 'network qos rule create ' + | ||||
|                 '--type ' + cls.TYPE + ' ' + | ||||
|                 '--dscp-mark ' + str(cls.DSCP_MARK) + ' ' + | ||||
|                 cls.QOS_POLICY_NAME + | ||||
|                 opts | ||||
|             ) | ||||
|             cls.assertsOutputNotNone(cls.RULE_ID) | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         raw_output = cls.openstack('network qos rule delete ' + | ||||
|                                    cls.QOS_POLICY_NAME + ' ' + cls.RULE_ID) | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack( | ||||
|                 'network qos rule delete ' + | ||||
|                 cls.QOS_POLICY_NAME + ' ' + | ||||
|                 cls.RULE_ID | ||||
|             ) | ||||
|             cls.openstack('network qos policy delete ' + cls.QOS_POLICY_NAME) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
| @@ -136,7 +162,7 @@ class NetworkQosRuleTestsDSCPMarking(common.NetworkTests): | ||||
|  | ||||
|  | ||||
| class NetworkQosRuleTestsBandwidthLimit(common.NetworkTests): | ||||
|     """Functional tests for QoS bandwidth limit rule.""" | ||||
|     """Functional tests for QoS bandwidth limit rule""" | ||||
|     RULE_ID = None | ||||
|     QOS_POLICY_NAME = 'qos_policy_' + uuid.uuid4().hex | ||||
|     MAX_KBPS = 10000 | ||||
| @@ -150,19 +176,30 @@ class NetworkQosRuleTestsBandwidthLimit(common.NetworkTests): | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             opts = cls.get_opts(cls.FIELDS) | ||||
|         cls.openstack('network qos policy create ' + cls.QOS_POLICY_NAME) | ||||
|         cls.RULE_ID = cls.openstack('network qos rule create --type ' + | ||||
|                                     cls.TYPE + ' --max-kbps ' + | ||||
|                                     str(cls.MAX_KBPS) + ' --max-burst-kbits ' + | ||||
|                                     str(cls.MAX_BURST_KBITS) + ' ' + | ||||
|                                     cls.QOS_POLICY_NAME + opts) | ||||
|             cls.openstack( | ||||
|                 'network qos policy create ' + | ||||
|                 cls.QOS_POLICY_NAME | ||||
|             ) | ||||
|             cls.RULE_ID = cls.openstack( | ||||
|                 'network qos rule create ' + | ||||
|                 '--type ' + cls.TYPE + ' ' + | ||||
|                 '--max-kbps ' + str(cls.MAX_KBPS) + ' ' + | ||||
|                 '--max-burst-kbits ' + str(cls.MAX_BURST_KBITS) + ' ' + | ||||
|                 cls.QOS_POLICY_NAME + | ||||
|                 opts | ||||
|             ) | ||||
|             cls.assertsOutputNotNone(cls.RULE_ID) | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         raw_output = cls.openstack('network qos rule delete ' + | ||||
|                                    cls.QOS_POLICY_NAME + ' ' + cls.RULE_ID) | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack( | ||||
|                 'network qos rule delete ' + | ||||
|                 cls.QOS_POLICY_NAME + ' ' + | ||||
|                 cls.RULE_ID | ||||
|             ) | ||||
|             cls.openstack('network qos policy delete ' + cls.QOS_POLICY_NAME) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|   | ||||
| @@ -12,11 +12,11 @@ | ||||
|  | ||||
| import uuid | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class NetworkSegmentTests(base.TestCase): | ||||
|     """Functional tests for network segment. """ | ||||
| class NetworkSegmentTests(common.NetworkTests): | ||||
|     """Functional tests for network segment""" | ||||
|     NETWORK_NAME = uuid.uuid4().hex | ||||
|     PHYSICAL_NETWORK_NAME = uuid.uuid4().hex | ||||
|     NETWORK_SEGMENT_ID = None | ||||
| @@ -25,12 +25,17 @@ class NetworkSegmentTests(base.TestCase): | ||||
|  | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             # Create a network for the segment. | ||||
|             opts = cls.get_opts(['id']) | ||||
|         raw_output = cls.openstack('network create ' + cls.NETWORK_NAME + opts) | ||||
|             raw_output = cls.openstack( | ||||
|                 'network create ' + cls.NETWORK_NAME + opts | ||||
|             ) | ||||
|             cls.NETWORK_ID = raw_output.strip('\n') | ||||
|  | ||||
|         # NOTE(rtheis): The segment extension is not yet enabled by default. | ||||
|             # 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: | ||||
| @@ -39,17 +44,28 @@ class NetworkSegmentTests(base.TestCase): | ||||
|             if cls.NETWORK_SEGMENT_EXTENSION: | ||||
|                 # Get the segment for the network. | ||||
|                 opts = cls.get_opts(['ID', 'Network']) | ||||
|             raw_output = cls.openstack('network segment list ' | ||||
|                                        ' --network ' + cls.NETWORK_NAME + | ||||
|                                        ' ' + opts) | ||||
|                 raw_output = cls.openstack( | ||||
|                     '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) | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack( | ||||
|                 'network delete ' + cls.NETWORK_NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(NetworkSegmentTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_network_segment_create_delete(self): | ||||
|         if self.NETWORK_SEGMENT_EXTENSION: | ||||
|             opts = self.get_opts(['id']) | ||||
|   | ||||
| @@ -13,14 +13,20 @@ | ||||
| #    License for the specific language governing permissions and limitations | ||||
| #    under the License. | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class TestNetworkServiceProvider(base.TestCase): | ||||
| class TestNetworkServiceProvider(common.NetworkTests): | ||||
|     """Functional tests for network service provider""" | ||||
|  | ||||
|     SERVICE_TYPE = 'L3_ROUTER_NAT' | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(TestNetworkServiceProvider, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_network_service_provider_list(self): | ||||
|         raw_output = self.openstack('network service provider list') | ||||
|         self.assertIn(self.SERVICE_TYPE, raw_output) | ||||
|   | ||||
| @@ -13,24 +13,37 @@ | ||||
| import json | ||||
| import uuid | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class PortTests(base.TestCase): | ||||
|     """Functional tests for port. """ | ||||
| class PortTests(common.NetworkTests): | ||||
|     """Functional tests for port""" | ||||
|     NAME = uuid.uuid4().hex | ||||
|     NETWORK_NAME = uuid.uuid4().hex | ||||
|  | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             # Create a network for the port | ||||
|         cls.openstack('network create ' + cls.NETWORK_NAME) | ||||
|             cls.openstack( | ||||
|                 'network create ' + cls.NETWORK_NAME | ||||
|             ) | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         raw_output = cls.openstack('network delete ' + cls.NETWORK_NAME) | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack( | ||||
|                 'network delete ' + cls.NETWORK_NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(PortTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_port_delete(self): | ||||
|         """Test create, delete multiple""" | ||||
|         json_output = json.loads(self.openstack( | ||||
|   | ||||
| @@ -13,11 +13,17 @@ | ||||
| import json | ||||
| import uuid | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class RouterTests(base.TestCase): | ||||
|     """Functional tests for router. """ | ||||
| class RouterTests(common.NetworkTests): | ||||
|     """Functional tests for router""" | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(RouterTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_router_create_and_delete(self): | ||||
|         """Test create options, delete multiple""" | ||||
|   | ||||
| @@ -12,11 +12,11 @@ | ||||
|  | ||||
| import uuid | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class SecurityGroupTests(base.TestCase): | ||||
|     """Functional tests for security group. """ | ||||
| class SecurityGroupTests(common.NetworkTests): | ||||
|     """Functional tests for security group""" | ||||
|     NAME = uuid.uuid4().hex | ||||
|     OTHER_NAME = uuid.uuid4().hex | ||||
|     HEADERS = ['Name'] | ||||
| @@ -24,21 +24,40 @@ class SecurityGroupTests(base.TestCase): | ||||
|  | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             opts = cls.get_opts(cls.FIELDS) | ||||
|         raw_output = cls.openstack('security group create ' + cls.NAME + opts) | ||||
|             raw_output = cls.openstack( | ||||
|                 'security group create ' + | ||||
|                 cls.NAME + | ||||
|                 opts | ||||
|             ) | ||||
|             expected = cls.NAME + '\n' | ||||
|             cls.assertOutput(expected, raw_output) | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         if cls.haz_network: | ||||
|             # Rename test | ||||
|         raw_output = cls.openstack('security group set --name ' + | ||||
|                                    cls.OTHER_NAME + ' ' + cls.NAME) | ||||
|             raw_output = cls.openstack( | ||||
|                 'security group set --name ' + | ||||
|                 cls.OTHER_NAME + ' ' + | ||||
|                 cls.NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|             # Delete test | ||||
|         raw_output = cls.openstack('security group delete ' + cls.OTHER_NAME) | ||||
|             raw_output = cls.openstack( | ||||
|                 'security group delete ' + | ||||
|                 cls.OTHER_NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(SecurityGroupTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_security_group_list(self): | ||||
|         opts = self.get_opts(self.HEADERS) | ||||
|         raw_output = self.openstack('security group list' + opts) | ||||
|   | ||||
| @@ -12,11 +12,11 @@ | ||||
|  | ||||
| import uuid | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class SecurityGroupRuleTests(base.TestCase): | ||||
|     """Functional tests for security group rule. """ | ||||
| class SecurityGroupRuleTests(common.NetworkTests): | ||||
|     """Functional tests for security group rule""" | ||||
|     SECURITY_GROUP_NAME = uuid.uuid4().hex | ||||
|     SECURITY_GROUP_RULE_ID = None | ||||
|     NAME_FIELD = ['name'] | ||||
| @@ -25,33 +25,50 @@ class SecurityGroupRuleTests(base.TestCase): | ||||
|  | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             # Create the security group to hold the rule. | ||||
|             opts = cls.get_opts(cls.NAME_FIELD) | ||||
|         raw_output = cls.openstack('security group create ' + | ||||
|             raw_output = cls.openstack( | ||||
|                 'security group create ' + | ||||
|                 cls.SECURITY_GROUP_NAME + | ||||
|                                    opts) | ||||
|                 opts | ||||
|             ) | ||||
|             expected = cls.SECURITY_GROUP_NAME + '\n' | ||||
|             cls.assertOutput(expected, raw_output) | ||||
|  | ||||
|             # Create the security group rule. | ||||
|             opts = cls.get_opts(cls.ID_FIELD) | ||||
|         raw_output = cls.openstack('security group rule create ' + | ||||
|                                    cls.SECURITY_GROUP_NAME + | ||||
|                                    ' --protocol tcp --dst-port 80:80' + | ||||
|                                    ' --ingress --ethertype IPv4' + | ||||
|                                    opts) | ||||
|             raw_output = cls.openstack( | ||||
|                 'security group rule create ' + | ||||
|                 cls.SECURITY_GROUP_NAME + ' ' + | ||||
|                 '--protocol tcp --dst-port 80:80 ' + | ||||
|                 '--ingress --ethertype IPv4 ' + | ||||
|                 opts | ||||
|             ) | ||||
|             cls.SECURITY_GROUP_RULE_ID = raw_output.strip('\n') | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         raw_output = cls.openstack('security group rule delete ' + | ||||
|                                    cls.SECURITY_GROUP_RULE_ID) | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack( | ||||
|                 'security group rule delete ' + | ||||
|                 cls.SECURITY_GROUP_RULE_ID | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|         raw_output = cls.openstack('security group delete ' + | ||||
|                                    cls.SECURITY_GROUP_NAME) | ||||
|             raw_output = cls.openstack( | ||||
|                 'security group delete ' + | ||||
|                 cls.SECURITY_GROUP_NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(SecurityGroupRuleTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_security_group_rule_list(self): | ||||
|         opts = self.get_opts(self.ID_HEADER) | ||||
|         raw_output = self.openstack('security group rule list ' + | ||||
|   | ||||
| @@ -14,15 +14,17 @@ import json | ||||
| import random | ||||
| import uuid | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class SubnetTests(base.TestCase): | ||||
|     """Functional tests for subnet. """ | ||||
| class SubnetTests(common.NetworkTests): | ||||
|     """Functional tests for subnet""" | ||||
|  | ||||
|     @classmethod | ||||
|     def setUpClass(cls): | ||||
|         # Create a network for the all subnet tests. | ||||
|         common.NetworkTests.setUpClass() | ||||
|         if cls.haz_network: | ||||
|             # Create a network for the all subnet tests | ||||
|             cls.NETWORK_NAME = uuid.uuid4().hex | ||||
|             cmd_output = json.loads(cls.openstack( | ||||
|                 'network create -f json ' + | ||||
| @@ -33,9 +35,19 @@ class SubnetTests(base.TestCase): | ||||
|  | ||||
|     @classmethod | ||||
|     def tearDownClass(cls): | ||||
|         raw_output = cls.openstack('network delete ' + cls.NETWORK_NAME) | ||||
|         if cls.haz_network: | ||||
|             raw_output = cls.openstack( | ||||
|                 'network delete ' + | ||||
|                 cls.NETWORK_NAME | ||||
|             ) | ||||
|             cls.assertOutput('', raw_output) | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(SubnetTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_subnet_create_and_delete(self): | ||||
|         """Test create, delete multiple""" | ||||
|         name1 = uuid.uuid4().hex | ||||
|   | ||||
| @@ -14,12 +14,18 @@ import json | ||||
| import random | ||||
| import uuid | ||||
|  | ||||
| from openstackclient.tests.functional import base | ||||
| from openstackclient.tests.functional.network.v2 import common | ||||
|  | ||||
|  | ||||
| class SubnetPoolTests(base.TestCase): | ||||
| class SubnetPoolTests(common.NetworkTests): | ||||
|     """Functional tests for subnet pool""" | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(SubnetPoolTests, self).setUp() | ||||
|         # Nothing in this class works with Nova Network | ||||
|         if not self.haz_network: | ||||
|             self.skipTest("No Network service present") | ||||
|  | ||||
|     def test_subnet_pool_create_delete(self): | ||||
|         """Test create, delete""" | ||||
|         name1 = uuid.uuid4().hex | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jenkins
					Jenkins