rm hardcoded cidr in test_create_server_multi_nic
Now, We have some hard code in here, but some VPC are limited to
some specific address ranges by default in some cloud.
So, we need change these hard code to configuration, it can
meet the user specific requirement flexibly and reasonably.
closes-bug: #1743742
Signed-off-by: Pragadeeswaran Sathyanarayanan <psathyan@redhat.com>
Change-Id: Ia201c0520b8d2df17664b84bd61755d7c2d68258
diff --git a/tempest/api/compute/servers/test_create_server_multi_nic.py b/tempest/api/compute/servers/test_create_server_multi_nic.py
index bd3f58d..6ec058d 100644
--- a/tempest/api/compute/servers/test_create_server_multi_nic.py
+++ b/tempest/api/compute/servers/test_create_server_multi_nic.py
@@ -23,6 +23,28 @@
CONF = config.CONF
+def get_subnets(count=2):
+ """Returns a list of requested subnets from project_network_cidr block.
+
+ Args:
+ count (int): Number of blocks required.
+
+ Returns:
+ CIDRs as a list of strings
+ e.g. ['19.80.0.0/24', '19.86.0.0/24']
+ """
+ default_rtn = ['19.80.0.0/24', '19.86.0.0/24']
+ _net = netaddr.IPNetwork(CONF.network.project_network_cidr)
+
+ # Split the subnet into the requested number of smaller subnets.
+ sub_prefix_len = (32 - _net.prefixlen) // count
+ if sub_prefix_len < 1:
+ return default_rtn
+
+ _new_cidr = _net.prefixlen + sub_prefix_len
+ return [str(net) for _, net in zip(range(count), _net.subnet(_new_cidr))]
+
+
class ServersTestMultiNic(base.BaseV2ComputeTest):
"""Test multiple networks in servers"""
@@ -65,8 +87,9 @@
The networks order given at the server creation is preserved within
the server.
"""
- net1 = self._create_net_subnet_ret_net_from_cidr('19.80.0.0/24')
- net2 = self._create_net_subnet_ret_net_from_cidr('19.86.0.0/24')
+ _cidrs = get_subnets()
+ net1 = self._create_net_subnet_ret_net_from_cidr(_cidrs[0])
+ net2 = self._create_net_subnet_ret_net_from_cidr(_cidrs[1])
networks = [{'uuid': net1['network']['id']},
{'uuid': net2['network']['id']}]
@@ -86,14 +109,12 @@
['addresses'])
# We can't predict the ip addresses assigned to the server on networks.
- # Sometimes the assigned addresses are ['19.80.0.2', '19.86.0.2'], at
- # other times ['19.80.0.3', '19.86.0.3']. So we check if the first
- # address is in first network, similarly second address is in second
- # network.
+ # So we check if the first address is in first network, similarly
+ # second address is in second network.
addr = [addresses[net1['network']['name']][0]['addr'],
addresses[net2['network']['name']][0]['addr']]
- networks = [netaddr.IPNetwork('19.80.0.0/24'),
- netaddr.IPNetwork('19.86.0.0/24')]
+ networks = [netaddr.IPNetwork(_cidrs[0]),
+ netaddr.IPNetwork(_cidrs[1])]
for address, network in zip(addr, networks):
self.assertIn(address, network)
@@ -107,8 +128,9 @@
"""
# Verify that server creation does not fail when more than one nic
# is created on the same network.
- net1 = self._create_net_subnet_ret_net_from_cidr('19.80.0.0/24')
- net2 = self._create_net_subnet_ret_net_from_cidr('19.86.0.0/24')
+ _cidrs = get_subnets()
+ net1 = self._create_net_subnet_ret_net_from_cidr(_cidrs[0])
+ net2 = self._create_net_subnet_ret_net_from_cidr(_cidrs[1])
networks = [{'uuid': net1['network']['id']},
{'uuid': net2['network']['id']},
@@ -124,8 +146,8 @@
addr = [addresses[net1['network']['name']][0]['addr'],
addresses[net2['network']['name']][0]['addr'],
addresses[net1['network']['name']][1]['addr']]
- networks = [netaddr.IPNetwork('19.80.0.0/24'),
- netaddr.IPNetwork('19.86.0.0/24'),
- netaddr.IPNetwork('19.80.0.0/24')]
+ networks = [netaddr.IPNetwork(_cidrs[0]),
+ netaddr.IPNetwork(_cidrs[1]),
+ netaddr.IPNetwork(_cidrs[0])]
for address, network in zip(addr, networks):
self.assertIn(address, network)