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