[1254818] Neutron IP ranges check error
"CIDR size for network 'public' is less than required". Fixed. Now public network_size is calculated in Nailgun. Closes-Bug: #1254818 Change-Id: Ic70eaeccdcf314b2823622b8d6b28ea409e93f0b
This commit is contained in:
parent
71bb3cbc6a
commit
91630e8158
|
@ -75,6 +75,7 @@ class NeutronNetworkConfiguration(NetworkConfiguration):
|
|||
'netmask': ng['netmask']})
|
||||
if cidr:
|
||||
ng_db.cidr = str(cidr)
|
||||
ng_db.network_size = cidr.size
|
||||
|
||||
|
||||
class NeutronConfig(Base):
|
||||
|
|
|
@ -254,7 +254,8 @@ class NetworkCheck(object):
|
|||
def neutron_check_network_group_sizes(self):
|
||||
# check network groups sizes
|
||||
for ng in self.networks:
|
||||
if ng['name'] != 'private':
|
||||
# network_size is calculated in case of public
|
||||
if ng['name'] not in ('private', 'public'):
|
||||
# ng['amount'] is always equal 1 for Neutron
|
||||
if netaddr.IPNetwork(ng['cidr']).size < ng['network_size']:
|
||||
self.err_msgs.append(
|
||||
|
|
|
@ -182,6 +182,11 @@ class TestNeutronHandlersGre(BaseIntegrationTest):
|
|||
resp = self.env.neutron_networks_get(self.cluster.id)
|
||||
self.nets = json.loads(resp.body)
|
||||
|
||||
def find_net_by_name(self, name):
|
||||
for net in self.nets['networks']:
|
||||
if net['name'] == name:
|
||||
return net
|
||||
|
||||
def test_network_checking(self):
|
||||
resp = self.env.neutron_networks_put(self.cluster.id, self.nets)
|
||||
self.assertEquals(resp.status, 202)
|
||||
|
@ -390,6 +395,27 @@ class TestNeutronHandlersGre(BaseIntegrationTest):
|
|||
"is less than required"
|
||||
)
|
||||
|
||||
def test_network_checking_public_network_cidr_became_smaller(self):
|
||||
self.assertEquals(self.find_net_by_name('public')['network_size'], 256)
|
||||
|
||||
self.find_net_by_name('public')['netmask'] = '255.255.255.128'
|
||||
self.find_net_by_name('public')['gateway'] = '172.16.0.1'
|
||||
self.find_net_by_name('public')['ip_ranges'] = [['172.16.0.2',
|
||||
'172.16.0.77']]
|
||||
virt_nets = self.nets['neutron_parameters']['predefined_networks']
|
||||
virt_nets['net04_ext']['L3']['floating'] = ['172.16.0.99',
|
||||
'172.16.0.111']
|
||||
|
||||
resp = self.env.neutron_networks_put(self.cluster.id, self.nets)
|
||||
self.assertEquals(resp.status, 202)
|
||||
task = json.loads(resp.body)
|
||||
self.assertEquals(task['status'], 'ready')
|
||||
resp = self.env.neutron_networks_get(self.cluster.id)
|
||||
self.nets = json.loads(resp.body)
|
||||
self.assertEquals(self.find_net_by_name('public')['cidr'],
|
||||
'172.16.0.0/25')
|
||||
self.assertEquals(self.find_net_by_name('public')['network_size'], 128)
|
||||
|
||||
def test_network_checking_fails_on_network_vlan_match(self):
|
||||
for n in self.nets['networks']:
|
||||
if n['name'] in ('management', 'storage'):
|
||||
|
|
Loading…
Reference in New Issue