diff options
author | zengfagao <zengfa.gao@hp.com> | 2015-04-02 09:44:53 -0700 |
---|---|---|
committer | zengfagao <zengfa.gao@hp.com> | 2015-04-03 09:37:13 -0700 |
commit | 39a3c8aff262b6b8a1257b84ac2832d4d813b68a (patch) | |
tree | 60378f313885c7dff231a37a7dd208c6406323c6 | |
parent | 7904c9c969a7869788b4d21a8ed33d7ec693d077 (diff) | |
download | neutron-39a3c8aff262b6b8a1257b84ac2832d4d813b68a.tar.gz |
Add API tests for subnet-create with subnetpool
With subnetpool, we can create subnet with subnetpool.
User can specify CIDR or prefixlen for subnet allocation.
If neither is specified, CIDR will be chosen from the
pool using the default-prefixlen of the pool.
Change-Id: I2c4d81496e10826bed83a977ff0398f781d16c33
Partially-Implements: blueprint subnet-allocation
-rw-r--r-- | neutron/tests/api/test_subnetpools.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/neutron/tests/api/test_subnetpools.py b/neutron/tests/api/test_subnetpools.py index 9acc388928..73aad68061 100644 --- a/neutron/tests/api/test_subnetpools.py +++ b/neutron/tests/api/test_subnetpools.py @@ -181,6 +181,64 @@ class SubnetPoolsTest(base.BaseNetworkTest): self.assertEqual(name, subnetpool['name']) self.assertTrue(subnetpool['shared']) + def _create_subnet_from_pool(self, subnet_values=None, pool_values=None): + pool_name, pool_id = self._create_subnetpool(self.client, pool_values) + subnet_name = data_utils.rand_name(SUBNETPOOL_NAME) + network = self.create_network() + network_id = network['id'] + kwargs = {'name': subnet_name, + 'subnetpool_id': pool_id} + if subnet_values: + kwargs.update(subnet_values) + body = self.client.create_subnet( + network_id=network_id, + ip_version=self.ip_version, + **kwargs) + subnet = body['subnet'] + self.addCleanup(self.client.delete_subnetpool, pool_id) + self.addCleanup(self.client.delete_network, network_id) + return pool_id, subnet + + @test.attr(type='smoke') + @test.idempotent_id('1362ed7d-3089-42eb-b3a5-d6cb8398ee77') + def test_create_subnet_from_pool_with_prefixlen(self): + subnet_values = {"prefixlen": self.max_prefixlen} + pool_id, subnet = self._create_subnet_from_pool(subnet_values) + cidr = str(subnet['cidr']) + self.assertEqual(pool_id, subnet['subnetpool_id']) + self.assertTrue(cidr.endswith(str(self.max_prefixlen))) + + @test.attr(type='smoke') + @test.idempotent_id('86b86189-9789-4582-9c3b-7e2bfe5735ee') + def test_create_subnet_from_pool_with_subnet_cidr(self): + subnet_values = {"cidr": self.subnet_cidr} + pool_id, subnet = self._create_subnet_from_pool(subnet_values) + cidr = str(subnet['cidr']) + self.assertEqual(pool_id, subnet['subnetpool_id']) + self.assertEqual(cidr, self.subnet_cidr) + + @test.attr(type='smoke') + @test.idempotent_id('83f76e3a-9c40-40c2-a015-b7c5242178d8') + def test_create_subnet_from_pool_with_default_prefixlen(self): + # If neither cidr nor prefixlen is specified, + # subnet will use subnetpool default_prefixlen for cidr. + pool_id, subnet = self._create_subnet_from_pool() + cidr = str(subnet['cidr']) + self.assertEqual(pool_id, subnet['subnetpool_id']) + prefixlen = self._subnetpool_data['subnetpool']['min_prefixlen'] + self.assertTrue(cidr.endswith(str(prefixlen))) + + @test.attr(type='smoke') + @test.idempotent_id('a64af292-ec52-4bde-b654-a6984acaf477') + def test_create_subnet_from_pool_with_quota(self): + pool_values = {'default_quota': 4} + subnet_values = {"prefixlen": self.max_prefixlen} + pool_id, subnet = self._create_subnet_from_pool(subnet_values, + pool_values) + cidr = str(subnet['cidr']) + self.assertEqual(pool_id, subnet['subnetpool_id']) + self.assertTrue(cidr.endswith(str(self.max_prefixlen))) + class SubnetPoolsTestV6(SubnetPoolsTest): |