fixed bug, wasn't detecting smaller subnet conflict properly added test for it
This commit is contained in:
@@ -313,7 +313,19 @@ class CommonNetworkTestCase(test.TestCase):
|
||||
self.assertTrue(exp_cidr + '/24' in cidrs)
|
||||
self.assertFalse('192.168.2.0/24' in cidrs)
|
||||
|
||||
def test__validate_cidrs_split_cidr_smaller_subnet_in_use(self):
|
||||
def test__validate_cidrs_smaller_subnet_in_use(self):
|
||||
manager = self.FakeNetworkManager()
|
||||
self.mox.StubOutWithMock(manager.db, 'network_get_all')
|
||||
ctxt = mox.IgnoreArg()
|
||||
manager.db.network_get_all(ctxt).AndReturn([{'id': 1,
|
||||
'cidr': '192.168.2.9/25'}])
|
||||
self.mox.ReplayAll()
|
||||
# ValueError: requested cidr (192.168.2.0/24) conflicts with
|
||||
# existing smaller cidr
|
||||
args = [None, '192.168.2.0/24', 1, 256]
|
||||
self.assertRaises(ValueError, manager._validate_cidrs, *args)
|
||||
|
||||
def test__validate_cidrs_split_smaller_cidr_in_use(self):
|
||||
manager = self.FakeNetworkManager()
|
||||
self.mox.StubOutWithMock(manager.db, 'network_get_all')
|
||||
ctxt = mox.IgnoreArg()
|
||||
@@ -329,6 +341,22 @@ class CommonNetworkTestCase(test.TestCase):
|
||||
self.assertTrue(exp_cidr + '/24' in cidrs)
|
||||
self.assertFalse('192.168.2.0/24' in cidrs)
|
||||
|
||||
def test__validate_cidrs_split_smaller_cidr_in_use2(self):
|
||||
manager = self.FakeNetworkManager()
|
||||
self.mox.StubOutWithMock(manager.db, 'network_get_all')
|
||||
ctxt = mox.IgnoreArg()
|
||||
manager.db.network_get_all(ctxt).AndReturn([{'id': 1,
|
||||
'cidr': '192.168.2.9/29'}])
|
||||
self.mox.ReplayAll()
|
||||
nets = manager._validate_cidrs(None, '192.168.2.0/24', 3, 32)
|
||||
self.assertEqual(3, len(nets))
|
||||
cidrs = [str(net) for net in nets]
|
||||
print cidrs
|
||||
exp_cidrs = ['192.168.2.32', '192.168.2.64', '192.168.2.96']
|
||||
for exp_cidr in exp_cidrs:
|
||||
self.assertTrue(exp_cidr + '/27' in cidrs)
|
||||
self.assertFalse('192.168.2.0/27' in cidrs)
|
||||
|
||||
def test__validate_cidrs_one_in_use(self):
|
||||
manager = self.FakeNetworkManager()
|
||||
args = [None, '192.168.0.0/24', 2, 256]
|
||||
|
||||
Reference in New Issue
Block a user