last few test fixes
This commit is contained in:
@@ -44,7 +44,9 @@ def add_lease(_mac, ip, _hostname, _interface):
|
|||||||
"""Set the IP that was assigned by the DHCP server."""
|
"""Set the IP that was assigned by the DHCP server."""
|
||||||
if FLAGS.fake_rabbit:
|
if FLAGS.fake_rabbit:
|
||||||
logging.debug("leasing_ip")
|
logging.debug("leasing_ip")
|
||||||
print FLAGS.redis_db
|
from nova import models
|
||||||
|
print models.FixedIp.count()
|
||||||
|
print models.Network.count()
|
||||||
print FLAGS.sql_connection
|
print FLAGS.sql_connection
|
||||||
service.VlanNetworkService().lease_ip(ip)
|
service.VlanNetworkService().lease_ip(ip)
|
||||||
else:
|
else:
|
||||||
@@ -81,7 +83,6 @@ def main():
|
|||||||
utils.default_flagfile(flagfile)
|
utils.default_flagfile(flagfile)
|
||||||
argv = FLAGS(sys.argv)
|
argv = FLAGS(sys.argv)
|
||||||
interface = os.environ.get('DNSMASQ_INTERFACE', 'br0')
|
interface = os.environ.get('DNSMASQ_INTERFACE', 'br0')
|
||||||
sqlfile = os.environ.get('SQL_DB', '')
|
|
||||||
if int(os.environ.get('TESTING', '0')):
|
if int(os.environ.get('TESTING', '0')):
|
||||||
FLAGS.fake_rabbit = True
|
FLAGS.fake_rabbit = True
|
||||||
FLAGS.redis_db = 8
|
FLAGS.redis_db = 8
|
||||||
@@ -90,8 +91,13 @@ def main():
|
|||||||
FLAGS.fake_network = True
|
FLAGS.fake_network = True
|
||||||
FLAGS.auth_driver = 'nova.auth.ldapdriver.FakeLdapDriver'
|
FLAGS.auth_driver = 'nova.auth.ldapdriver.FakeLdapDriver'
|
||||||
FLAGS.num_networks = 5
|
FLAGS.num_networks = 5
|
||||||
FLAGS.sql_connection = 'mysql://root@localhost/test'
|
path = os.path.abspath(os.path.join(os.path.dirname(__file__),
|
||||||
#FLAGS.sql_connection = 'sqlite:///%s' % sqlfile
|
'..',
|
||||||
|
'_trial_temp',
|
||||||
|
'nova.sqlite'))
|
||||||
|
print path
|
||||||
|
FLAGS.sql_connection = 'sqlite:///%s' % path
|
||||||
|
#FLAGS.sql_connection = 'mysql://root@localhost/test'
|
||||||
action = argv[1]
|
action = argv[1]
|
||||||
if action in ['add', 'del', 'old']:
|
if action in ['add', 'del', 'old']:
|
||||||
mac = argv[2]
|
mac = argv[2]
|
||||||
|
|||||||
@@ -26,4 +26,5 @@ FLAGS.fake_rabbit = True
|
|||||||
FLAGS.fake_network = True
|
FLAGS.fake_network = True
|
||||||
FLAGS.auth_driver = 'nova.auth.ldapdriver.FakeLdapDriver'
|
FLAGS.auth_driver = 'nova.auth.ldapdriver.FakeLdapDriver'
|
||||||
FLAGS.verbose = True
|
FLAGS.verbose = True
|
||||||
FLAGS.sql_connection = 'sqlite:///:memory:'
|
FLAGS.sql_connection = 'sqlite:///nova.sqlite'
|
||||||
|
#FLAGS.sql_connection = 'mysql://root@localhost/test'
|
||||||
|
|||||||
@@ -41,10 +41,7 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
super(NetworkTestCase, self).setUp()
|
super(NetworkTestCase, self).setUp()
|
||||||
# NOTE(vish): if you change these flags, make sure to change the
|
# NOTE(vish): if you change these flags, make sure to change the
|
||||||
# flags in the corresponding section in nova-dhcpbridge
|
# flags in the corresponding section in nova-dhcpbridge
|
||||||
self.sqlfile = 'test.sqlite'
|
|
||||||
self.flags(connection_type='fake',
|
self.flags(connection_type='fake',
|
||||||
#sql_connection='sqlite:///%s' % self.sqlfile,
|
|
||||||
sql_connection='mysql://root@localhost/test',
|
|
||||||
fake_storage=True,
|
fake_storage=True,
|
||||||
fake_network=True,
|
fake_network=True,
|
||||||
auth_driver='nova.auth.ldapdriver.FakeLdapDriver',
|
auth_driver='nova.auth.ldapdriver.FakeLdapDriver',
|
||||||
@@ -54,7 +51,6 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
self.manager = manager.AuthManager()
|
self.manager = manager.AuthManager()
|
||||||
self.user = self.manager.create_user('netuser', 'netuser', 'netuser')
|
self.user = self.manager.create_user('netuser', 'netuser', 'netuser')
|
||||||
self.projects = []
|
self.projects = []
|
||||||
print FLAGS.sql_connection
|
|
||||||
self.service = service.VlanNetworkService()
|
self.service = service.VlanNetworkService()
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
name = 'project%s' % i
|
name = 'project%s' % i
|
||||||
@@ -105,17 +101,13 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
self.instance_id)
|
self.instance_id)
|
||||||
net = service.get_network_for_project(self.projects[0].id)
|
net = service.get_network_for_project(self.projects[0].id)
|
||||||
self.assertTrue(is_allocated_in_project(address, self.projects[0].id))
|
self.assertTrue(is_allocated_in_project(address, self.projects[0].id))
|
||||||
print 'I just got allocated'
|
issue_ip(address, net.bridge)
|
||||||
issue_ip(address, net.bridge, self.sqlfile)
|
|
||||||
obj = models.FixedIp.find_by_ip_str(address)
|
|
||||||
obj.refresh()
|
|
||||||
print obj.leased
|
|
||||||
self.service.deallocate_fixed_ip(address)
|
self.service.deallocate_fixed_ip(address)
|
||||||
|
|
||||||
# Doesn't go away until it's dhcp released
|
# Doesn't go away until it's dhcp released
|
||||||
self.assertTrue(is_allocated_in_project(address, self.projects[0].id))
|
self.assertTrue(is_allocated_in_project(address, self.projects[0].id))
|
||||||
|
|
||||||
release_ip(address, net.bridge, self.sqlfile)
|
release_ip(address, net.bridge)
|
||||||
self.assertFalse(is_allocated_in_project(address, self.projects[0].id))
|
self.assertFalse(is_allocated_in_project(address, self.projects[0].id))
|
||||||
|
|
||||||
def test_side_effects(self):
|
def test_side_effects(self):
|
||||||
@@ -133,19 +125,19 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
self.assertFalse(is_allocated_in_project(address, self.projects[1].id))
|
self.assertFalse(is_allocated_in_project(address, self.projects[1].id))
|
||||||
|
|
||||||
# Addresses are allocated before they're issued
|
# Addresses are allocated before they're issued
|
||||||
issue_ip(address, net.bridge, self.sqlfile)
|
issue_ip(address, net.bridge)
|
||||||
issue_ip(address2, net2.bridge, self.sqlfile)
|
issue_ip(address2, net2.bridge)
|
||||||
|
|
||||||
self.service.deallocate_fixed_ip(address)
|
self.service.deallocate_fixed_ip(address)
|
||||||
release_ip(address, net.bridge, self.sqlfile)
|
release_ip(address, net.bridge)
|
||||||
self.assertFalse(is_allocated_in_project(address, self.projects[0].id))
|
self.assertFalse(is_allocated_in_project(address, self.projects[0].id))
|
||||||
|
|
||||||
# First address release shouldn't affect the second
|
# First address release shouldn't affect the second
|
||||||
self.assertTrue(is_allocated_in_project(address2, self.projects[1].id))
|
self.assertTrue(is_allocated_in_project(address2, self.projects[1].id))
|
||||||
|
|
||||||
self.service.deallocate_fixed_ip(address2)
|
self.service.deallocate_fixed_ip(address2)
|
||||||
issue_ip(address2, net.bridge, self.sqlfile)
|
issue_ip(address2, net.bridge)
|
||||||
release_ip(address2, net2.bridge, self.sqlfile)
|
release_ip(address2, net2.bridge)
|
||||||
self.assertFalse(is_allocated_in_project(address2, self.projects[1].id))
|
self.assertFalse(is_allocated_in_project(address2, self.projects[1].id))
|
||||||
|
|
||||||
def test_subnet_edge(self):
|
def test_subnet_edge(self):
|
||||||
@@ -158,9 +150,9 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
address2 = self.service.allocate_fixed_ip(project_id, self.instance_id)
|
address2 = self.service.allocate_fixed_ip(project_id, self.instance_id)
|
||||||
address3 = self.service.allocate_fixed_ip(project_id, self.instance_id)
|
address3 = self.service.allocate_fixed_ip(project_id, self.instance_id)
|
||||||
net = service.get_network_for_project(project_id)
|
net = service.get_network_for_project(project_id)
|
||||||
issue_ip(address, net.bridge, self.sqlfile)
|
issue_ip(address, net.bridge)
|
||||||
issue_ip(address2, net.bridge, self.sqlfile)
|
issue_ip(address2, net.bridge)
|
||||||
issue_ip(address3, net.bridge, self.sqlfile)
|
issue_ip(address3, net.bridge)
|
||||||
self.assertFalse(is_allocated_in_project(address,
|
self.assertFalse(is_allocated_in_project(address,
|
||||||
self.projects[0].id))
|
self.projects[0].id))
|
||||||
self.assertFalse(is_allocated_in_project(address2,
|
self.assertFalse(is_allocated_in_project(address2,
|
||||||
@@ -170,9 +162,9 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
self.service.deallocate_fixed_ip(address)
|
self.service.deallocate_fixed_ip(address)
|
||||||
self.service.deallocate_fixed_ip(address2)
|
self.service.deallocate_fixed_ip(address2)
|
||||||
self.service.deallocate_fixed_ip(address3)
|
self.service.deallocate_fixed_ip(address3)
|
||||||
release_ip(address, net.bridge, self.sqlfile)
|
release_ip(address, net.bridge)
|
||||||
release_ip(address2, net.bridge, self.sqlfile)
|
release_ip(address2, net.bridge)
|
||||||
release_ip(address3, net.bridge, self.sqlfile)
|
release_ip(address3, net.bridge)
|
||||||
net = service.get_network_for_project(self.projects[0].id)
|
net = service.get_network_for_project(self.projects[0].id)
|
||||||
self.service.deallocate_fixed_ip(first)
|
self.service.deallocate_fixed_ip(first)
|
||||||
|
|
||||||
@@ -205,9 +197,9 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
address = self.service.allocate_fixed_ip(self.projects[0].id,
|
address = self.service.allocate_fixed_ip(self.projects[0].id,
|
||||||
self.instance_id)
|
self.instance_id)
|
||||||
net = service.get_network_for_project(self.projects[0].id)
|
net = service.get_network_for_project(self.projects[0].id)
|
||||||
issue_ip(address, net.bridge, self.sqlfile)
|
issue_ip(address, net.bridge)
|
||||||
self.service.deallocate_fixed_ip(address)
|
self.service.deallocate_fixed_ip(address)
|
||||||
release_ip(address, net.bridge, self.sqlfile)
|
release_ip(address, net.bridge)
|
||||||
|
|
||||||
address2 = self.service.allocate_fixed_ip(self.projects[0].id,
|
address2 = self.service.allocate_fixed_ip(self.projects[0].id,
|
||||||
self.instance_id)
|
self.instance_id)
|
||||||
@@ -245,7 +237,7 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
project_id = self.projects[0].id
|
project_id = self.projects[0].id
|
||||||
addresses.append(self.service.allocate_fixed_ip(project_id,
|
addresses.append(self.service.allocate_fixed_ip(project_id,
|
||||||
self.instance_id))
|
self.instance_id))
|
||||||
issue_ip(addresses[i],network.bridge, self.sqlfile)
|
issue_ip(addresses[i],network.bridge)
|
||||||
|
|
||||||
self.assertEqual(available_ips(network), 0)
|
self.assertEqual(available_ips(network), 0)
|
||||||
self.assertRaises(NoMoreAddresses,
|
self.assertRaises(NoMoreAddresses,
|
||||||
@@ -255,7 +247,7 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
|
|
||||||
for i in range(len(addresses)):
|
for i in range(len(addresses)):
|
||||||
self.service.deallocate_fixed_ip(addresses[i])
|
self.service.deallocate_fixed_ip(addresses[i])
|
||||||
release_ip(addresses[i],network.bridge, self.sqlfile)
|
release_ip(addresses[i],network.bridge)
|
||||||
self.assertEqual(available_ips(network), num_available_ips)
|
self.assertEqual(available_ips(network), num_available_ips)
|
||||||
|
|
||||||
|
|
||||||
@@ -291,22 +283,20 @@ def binpath(script):
|
|||||||
return os.path.abspath(os.path.join(__file__, "../../../bin", script))
|
return os.path.abspath(os.path.join(__file__, "../../../bin", script))
|
||||||
|
|
||||||
|
|
||||||
def issue_ip(private_ip, interface, sqlfile):
|
def issue_ip(private_ip, interface):
|
||||||
"""Run add command on dhcpbridge"""
|
"""Run add command on dhcpbridge"""
|
||||||
cmd = "%s add fake %s fake" % (binpath('nova-dhcpbridge'), private_ip)
|
cmd = "%s add fake %s fake" % (binpath('nova-dhcpbridge'), private_ip)
|
||||||
env = {'DNSMASQ_INTERFACE': interface,
|
env = {'DNSMASQ_INTERFACE': interface,
|
||||||
'TESTING': '1',
|
'TESTING': '1',
|
||||||
'SQL_DB': sqlfile,
|
|
||||||
'FLAGFILE': FLAGS.dhcpbridge_flagfile}
|
'FLAGFILE': FLAGS.dhcpbridge_flagfile}
|
||||||
(out, err) = utils.execute(cmd, addl_env=env)
|
(out, err) = utils.execute(cmd, addl_env=env)
|
||||||
logging.debug("ISSUE_IP: %s, %s ", out, err)
|
logging.debug("ISSUE_IP: %s, %s ", out, err)
|
||||||
|
|
||||||
|
|
||||||
def release_ip(private_ip, interface, sqlfile):
|
def release_ip(private_ip, interface):
|
||||||
"""Run del command on dhcpbridge"""
|
"""Run del command on dhcpbridge"""
|
||||||
cmd = "%s del fake %s fake" % (binpath('nova-dhcpbridge'), private_ip)
|
cmd = "%s del fake %s fake" % (binpath('nova-dhcpbridge'), private_ip)
|
||||||
env = {'DNSMASQ_INTERFACE': interface,
|
env = {'DNSMASQ_INTERFACE': interface,
|
||||||
'SQL_DB': sqlfile,
|
|
||||||
'TESTING': '1',
|
'TESTING': '1',
|
||||||
'FLAGFILE': FLAGS.dhcpbridge_flagfile}
|
'FLAGFILE': FLAGS.dhcpbridge_flagfile}
|
||||||
(out, err) = utils.execute(cmd, addl_env=env)
|
(out, err) = utils.execute(cmd, addl_env=env)
|
||||||
|
|||||||
Reference in New Issue
Block a user