update the logic for calculating network sizes
This commit is contained in:
@@ -147,21 +147,42 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
|
|
||||||
def test_too_many_addresses(self):
|
def test_too_many_addresses(self):
|
||||||
"""
|
"""
|
||||||
Network size is 32, there are 5 addresses reserved for VPN.
|
Here, we test that a proper NoMoreAddresses exception is raised.
|
||||||
So we should get 23 usable addresses
|
|
||||||
|
However, the number of available IP addresses depends on the test
|
||||||
|
environment's setup.
|
||||||
|
|
||||||
|
Network size is set in test fixture's setUp method.
|
||||||
|
|
||||||
|
There are FLAGS.cnt_vpn_clients addresses reserved for VPN (NUM_RESERVED_VPN_IPS)
|
||||||
|
|
||||||
|
And there are NUM_STATIC_IPS that are always reserved by Nova for the necessary
|
||||||
|
services (gateway, CloudPipe, etc)
|
||||||
|
|
||||||
|
So we should get flags.network_size - (NUM_STATIC_IPS +
|
||||||
|
NUM_PREALLOCATED_IPS +
|
||||||
|
NUM_RESERVED_VPN_IPS)
|
||||||
|
usable addresses
|
||||||
"""
|
"""
|
||||||
net = network.get_project_network("project0", "default")
|
net = network.get_project_network("project0", "default")
|
||||||
|
|
||||||
|
# Determine expected number of available IP addresses
|
||||||
|
num_static_ips = net.num_static_ips
|
||||||
|
num_preallocated_ips = len(net.hosts.keys())
|
||||||
|
num_reserved_vpn_ips = flags.FLAGS.cnt_vpn_clients
|
||||||
|
num_available_ips = flags.FLAGS.network_size - (num_static_ips + num_preallocated_ips + num_reserved_vpn_ips)
|
||||||
|
|
||||||
hostname = "toomany-hosts"
|
hostname = "toomany-hosts"
|
||||||
macs = {}
|
macs = {}
|
||||||
addresses = {}
|
addresses = {}
|
||||||
for i in range(0, 22):
|
for i in range(0, (num_available_ips - 1)):
|
||||||
macs[i] = utils.generate_mac()
|
macs[i] = utils.generate_mac()
|
||||||
addresses[i] = network.allocate_ip("netuser", "project0", macs[i])
|
addresses[i] = network.allocate_ip("netuser", "project0", macs[i])
|
||||||
self.dnsmasq.issue_ip(macs[i], addresses[i], hostname, net.bridge_name)
|
self.dnsmasq.issue_ip(macs[i], addresses[i], hostname, net.bridge_name)
|
||||||
|
|
||||||
self.assertRaises(NoMoreAddresses, network.allocate_ip, "netuser", "project0", utils.generate_mac())
|
self.assertRaises(NoMoreAddresses, network.allocate_ip, "netuser", "project0", utils.generate_mac())
|
||||||
|
|
||||||
for i in range(0, 22):
|
for i in range(0, (num_available_ips - 1)):
|
||||||
rv = network.deallocate_ip(addresses[i])
|
rv = network.deallocate_ip(addresses[i])
|
||||||
self.dnsmasq.release_ip(macs[i], addresses[i], hostname, net.bridge_name)
|
self.dnsmasq.release_ip(macs[i], addresses[i], hostname, net.bridge_name)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user