summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-08-17 19:41:17 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-08-17 19:41:17 -0700
commitc41d9601555c78e3c91fb481fdfb3d50ffdf440b (patch)
tree99b36699753acc67e144380e7ca0f18133db02c7 /nova/tests
parentf9214212f1aed4e574f6be6c32a6002a3621625e (diff)
progress on tests passing
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/fake_flags.py1
-rw-r--r--nova/tests/network_unittest.py67
2 files changed, 39 insertions, 29 deletions
diff --git a/nova/tests/fake_flags.py b/nova/tests/fake_flags.py
index a7310fb26..ecbc65937 100644
--- a/nova/tests/fake_flags.py
+++ b/nova/tests/fake_flags.py
@@ -26,3 +26,4 @@ FLAGS.fake_rabbit = True
FLAGS.fake_network = True
FLAGS.auth_driver = 'nova.auth.ldapdriver.FakeLdapDriver'
FLAGS.verbose = True
+FLAGS.sql_connection = 'sqlite:///:memory:'
diff --git a/nova/tests/network_unittest.py b/nova/tests/network_unittest.py
index 72dc88f27..8b7730d87 100644
--- a/nova/tests/network_unittest.py
+++ b/nova/tests/network_unittest.py
@@ -23,6 +23,7 @@ import os
import logging
from nova import flags
+from nova import models
from nova import test
from nova import utils
from nova.auth import manager
@@ -47,16 +48,20 @@ class NetworkTestCase(test.TrialTestCase):
self.manager = manager.AuthManager()
self.user = self.manager.create_user('netuser', 'netuser', 'netuser')
self.projects = []
- self.projects.append(self.manager.create_project('netuser',
- 'netuser',
- 'netuser'))
+ self.service = service.VlanNetworkService()
for i in range(0, 6):
name = 'project%s' % i
self.projects.append(self.manager.create_project(name,
'netuser',
name))
- vpn.NetworkData.create(self.projects[i].id)
- self.service = service.VlanNetworkService()
+ # create the necessary network data for the project
+ self.service.set_network_host(self.projects[i].id)
+ instance = models.Instance()
+ instance.mac_address = utils.generate_mac()
+ instance.hostname = 'fake'
+ instance.image_id = 'fake'
+ instance.save()
+ self.instance = instance
def tearDown(self): # pylint: disable=C0103
super(NetworkTestCase, self).tearDown()
@@ -67,32 +72,34 @@ class NetworkTestCase(test.TrialTestCase):
def test_public_network_allocation(self):
"""Makes sure that we can allocaate a public ip"""
pubnet = IPy.IP(flags.FLAGS.public_range)
- address = self.service.allocate_elastic_ip(self.user.id,
- self.projects[0].id)
+ address = self.service.allocate_elastic_ip(self.projects[0].id)
self.assertTrue(IPy.IP(address) in pubnet)
def test_allocate_deallocate_fixed_ip(self):
"""Makes sure that we can allocate and deallocate a fixed ip"""
- result = self.service.allocate_fixed_ip(
- self.user.id, self.projects[0].id)
- address = result['private_dns_name']
- mac = result['mac_address']
- net = model.get_project_network(self.projects[0].id, "default")
+ address = self.service.allocate_fixed_ip(self.projects[0].id,
+ self.instance.id)
+ net = service.get_project_network(self.projects[0].id)
self.assertEqual(True, is_in_project(address, self.projects[0].id))
- hostname = "test-host"
- issue_ip(mac, address, hostname, net.bridge_name)
+ issue_ip(self.instance.mac_address,
+ address,
+ self.instance.hostname,
+ net.bridge)
self.service.deallocate_fixed_ip(address)
# Doesn't go away until it's dhcp released
self.assertEqual(True, is_in_project(address, self.projects[0].id))
- release_ip(mac, address, hostname, net.bridge_name)
+ release_ip(self.instance.mac_address,
+ address,
+ self.instance.hostname,
+ net.bridge)
self.assertEqual(False, is_in_project(address, self.projects[0].id))
def test_side_effects(self):
"""Ensures allocating and releasing has no side effects"""
hostname = "side-effect-host"
- result = self.service.allocate_fixed_ip(self.user.id,
+ result = self.service.allocate_fixed_ip(
self.projects[0].id)
mac = result['mac_address']
address = result['private_dns_name']
@@ -101,8 +108,8 @@ class NetworkTestCase(test.TrialTestCase):
secondmac = result['mac_address']
secondaddress = result['private_dns_name']
- net = model.get_project_network(self.projects[0].id, "default")
- secondnet = model.get_project_network(self.projects[1].id, "default")
+ net = service.get_project_network(self.projects[0].id)
+ secondnet = service.get_project_network(self.projects[1].id)
self.assertEqual(True, is_in_project(address, self.projects[0].id))
self.assertEqual(True, is_in_project(secondaddress,
@@ -128,7 +135,7 @@ class NetworkTestCase(test.TrialTestCase):
def test_subnet_edge(self):
"""Makes sure that private ips don't overlap"""
- result = self.service.allocate_fixed_ip(self.user.id,
+ result = self.service.allocate_fixed_ip(
self.projects[0].id)
firstaddress = result['private_dns_name']
hostname = "toomany-hosts"
@@ -146,7 +153,7 @@ class NetworkTestCase(test.TrialTestCase):
self.user, project_id)
mac3 = result['mac_address']
address3 = result['private_dns_name']
- net = model.get_project_network(project_id, "default")
+ net = service.get_project_network(project_id)
issue_ip(mac, address, hostname, net.bridge_name)
issue_ip(mac2, address2, hostname, net.bridge_name)
issue_ip(mac3, address3, hostname, net.bridge_name)
@@ -162,7 +169,7 @@ class NetworkTestCase(test.TrialTestCase):
release_ip(mac, address, hostname, net.bridge_name)
release_ip(mac2, address2, hostname, net.bridge_name)
release_ip(mac3, address3, hostname, net.bridge_name)
- net = model.get_project_network(self.projects[0].id, "default")
+ net = service.get_project_network(self.projects[0].id)
self.service.deallocate_fixed_ip(firstaddress)
release_ip(mac, firstaddress, hostname, net.bridge_name)
@@ -184,12 +191,12 @@ class NetworkTestCase(test.TrialTestCase):
def test_ips_are_reused(self):
"""Makes sure that ip addresses that are deallocated get reused"""
result = self.service.allocate_fixed_ip(
- self.user.id, self.projects[0].id)
+ self.projects[0].id)
mac = result['mac_address']
address = result['private_dns_name']
hostname = "reuse-host"
- net = model.get_project_network(self.projects[0].id, "default")
+ net = service.get_project_network(self.projects[0].id)
issue_ip(mac, address, hostname, net.bridge_name)
self.service.deallocate_fixed_ip(address)
@@ -215,7 +222,7 @@ class NetworkTestCase(test.TrialTestCase):
There are ips reserved at the bottom and top of the range.
services (network, gateway, CloudPipe, broadcast)
"""
- net = model.get_project_network(self.projects[0].id, "default")
+ net = service.get_project_network(self.projects[0].id)
num_preallocated_ips = len(net.assigned)
net_size = flags.FLAGS.network_size
num_available_ips = net_size - (net.num_bottom_reserved_ips +
@@ -226,7 +233,7 @@ class NetworkTestCase(test.TrialTestCase):
def test_too_many_addresses(self):
"""Test for a NoMoreAddresses exception when all fixed ips are used.
"""
- net = model.get_project_network(self.projects[0].id, "default")
+ net = service.get_project_network(self.projects[0].id)
hostname = "toomany-hosts"
macs = {}
@@ -234,15 +241,17 @@ class NetworkTestCase(test.TrialTestCase):
# Number of availaible ips is len of the available list
num_available_ips = len(list(net.available))
for i in range(num_available_ips):
- result = self.service.allocate_fixed_ip(self.user.id,
+ result = self.service.allocate_fixed_ip(
self.projects[0].id)
macs[i] = result['mac_address']
addresses[i] = result['private_dns_name']
issue_ip(macs[i], addresses[i], hostname, net.bridge_name)
self.assertEqual(len(list(net.available)), 0)
- self.assertRaises(NoMoreAddresses, self.service.allocate_fixed_ip,
- self.user.id, self.projects[0].id)
+ self.assertRaises(NoMoreAddresses,
+ self.service.allocate_fixed_ip,
+ self.projects[0].id,
+ 0)
for i in range(len(addresses)):
self.service.deallocate_fixed_ip(addresses[i])
@@ -252,7 +261,7 @@ class NetworkTestCase(test.TrialTestCase):
def is_in_project(address, project_id):
"""Returns true if address is in specified project"""
- return address in model.get_project_network(project_id).assigned
+ return models.FixedIp.find_by_ip_str(address) == service.get_project_network(project_id)
def binpath(script):