summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzengfagao <zengfa.gao@hp.com>2015-04-02 09:44:53 -0700
committerzengfagao <zengfa.gao@hp.com>2015-04-03 09:37:13 -0700
commit39a3c8aff262b6b8a1257b84ac2832d4d813b68a (patch)
tree60378f313885c7dff231a37a7dd208c6406323c6
parent7904c9c969a7869788b4d21a8ed33d7ec693d077 (diff)
downloadneutron-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.py58
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):