summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-05-31 18:56:20 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-05-31 18:56:20 -0700
commitf04c6ab2d082ce8fe48ec58cb5c7cc64ed2a282b (patch)
tree1dd652202f6fd143765693ac8f6fa97e9081c6eb /nova/tests
parent94518726fbb850ad5e81a7f937e197052f26bef2 (diff)
downloadnova-f04c6ab2d082ce8fe48ec58cb5c7cc64ed2a282b.tar.gz
nova-f04c6ab2d082ce8fe48ec58cb5c7cc64ed2a282b.tar.xz
nova-f04c6ab2d082ce8fe48ec58cb5c7cc64ed2a282b.zip
Josh's networking refactor, modified to work with projects
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/network_unittest.py77
1 files changed, 41 insertions, 36 deletions
diff --git a/nova/tests/network_unittest.py b/nova/tests/network_unittest.py
index a78d9075d..a2ad89a32 100644
--- a/nova/tests/network_unittest.py
+++ b/nova/tests/network_unittest.py
@@ -23,11 +23,17 @@ from nova import flags
from nova import test
from nova.compute import network
from nova.auth import users
+from nova import utils
class NetworkTestCase(test.TrialTestCase):
def setUp(self):
super(NetworkTestCase, self).setUp()
+ self.flags(fake_libvirt=True,
+ fake_storage=True,
+ fake_network=True,
+ network_size=32,
+ redis_db=8)
logging.getLogger().setLevel(logging.DEBUG)
self.manager = users.UserManager.instance()
try:
@@ -37,7 +43,7 @@ class NetworkTestCase(test.TrialTestCase):
name = 'project%s' % i
if not self.manager.get_project(name):
self.manager.create_project(name, 'netuser', name)
- self.network = network.NetworkController(netsize=16)
+ self.network = network.PublicNetworkController()
def tearDown(self):
super(NetworkTestCase, self).tearDown()
@@ -46,70 +52,69 @@ class NetworkTestCase(test.TrialTestCase):
self.manager.delete_project(name)
self.manager.delete_user('netuser')
- def test_network_serialization(self):
- net1 = network.Network(vlan=100, network="192.168.100.0/24", conn=None)
- address = net1.allocate_ip("netuser", "project0", "01:24:55:36:f2:a0")
- net_json = str(net1)
- net2 = network.Network.from_json(net_json)
- self.assertEqual(net_json, str(net2))
- self.assertTrue(IPy.IP(address) in net2.network)
+ def test_public_network_allocation(self):
+ pubnet = IPy.IP(flags.FLAGS.public_range)
+ address = self.network.allocate_ip("netuser", "project0", "public")
+ self.assertTrue(IPy.IP(address) in pubnet)
+ self.assertTrue(IPy.IP(address) in self.network.network)
- def test_allocate_deallocate_address(self):
- (address, net_name) = self.network.allocate_address("netuser",
- "project0", "01:24:55:36:f2:a0")
+ def test_allocate_deallocate_ip(self):
+ address = network.allocate_ip(
+ "netuser", "project0", utils.generate_mac())
logging.debug("Was allocated %s" % (address))
self.assertEqual(True, address in self._get_project_addresses("project0"))
- rv = self.network.deallocate_address(address)
+ rv = network.deallocate_ip(address)
self.assertEqual(False, address in self._get_project_addresses("project0"))
def test_range_allocation(self):
- (address, net_name) = self.network.allocate_address("netuser",
- "project0", "01:24:55:36:f2:a0")
- (secondaddress, net_name) = self.network.allocate_address("netuser",
- "project1", "01:24:55:36:f2:a0")
- self.assertEqual(True, address in self._get_project_addresses("project0"))
+ address = network.allocate_ip(
+ "netuser", "project0", utils.generate_mac())
+ secondaddress = network.allocate_ip(
+ "netuser", "project1", utils.generate_mac())
+ self.assertEqual(True,
+ address in self._get_project_addresses("project0"))
self.assertEqual(True,
secondaddress in self._get_project_addresses("project1"))
self.assertEqual(False, address in self._get_project_addresses("project1"))
- rv = self.network.deallocate_address(address)
+ rv = network.deallocate_ip(address)
self.assertEqual(False, address in self._get_project_addresses("project0"))
- rv = self.network.deallocate_address(secondaddress)
+ rv = network.deallocate_ip(secondaddress)
self.assertEqual(False,
secondaddress in self._get_project_addresses("project1"))
def test_subnet_edge(self):
- (secondaddress, net_name) = self.network.allocate_address("netuser", "project0")
+ secondaddress = network.allocate_ip("netuser", "project0",
+ utils.generate_mac())
for project in range(1,5):
project_id = "project%s" % (project)
- (address, net_name) = self.network.allocate_address("netuser",
- project_id, "01:24:55:36:f2:a0")
- (address2, net_name) = self.network.allocate_address("netuser",
- project_id, "01:24:55:36:f2:a0")
- (address3, net_name) = self.network.allocate_address("netuser",
- project_id, "01:24:55:36:f2:a0")
+ address = network.allocate_ip(
+ "netuser", project_id, utils.generate_mac())
+ address2 = network.allocate_ip(
+ "netuser", project_id, utils.generate_mac())
+ address3 = network.allocate_ip(
+ "netuser", project_id, utils.generate_mac())
self.assertEqual(False,
address in self._get_project_addresses("project0"))
self.assertEqual(False,
address2 in self._get_project_addresses("project0"))
self.assertEqual(False,
address3 in self._get_project_addresses("project0"))
- rv = self.network.deallocate_address(address)
- rv = self.network.deallocate_address(address2)
- rv = self.network.deallocate_address(address3)
- rv = self.network.deallocate_address(secondaddress)
+ rv = network.deallocate_ip(address)
+ rv = network.deallocate_ip(address2)
+ rv = network.deallocate_ip(address3)
+ rv = network.deallocate_ip(secondaddress)
def test_too_many_projects(self):
for i in range(0, 30):
name = 'toomany-project%s' % i
self.manager.create_project(name, 'netuser', name)
- (address, net_name) = self.network.allocate_address("netuser",
- name, "01:24:55:36:f2:a0")
+ address = network.allocate_ip(
+ "netuser", name, utils.generate_mac())
+ rv = network.deallocate_ip(address)
self.manager.delete_project(name)
def _get_project_addresses(self, project_id):
- rv = self.network.describe_addresses()
project_addresses = []
- for item in rv:
- if item['project_id'] == project_id:
- project_addresses.append(item['address'])
+ for addr in network.get_project_network(project_id).list_addresses():
+ project_addresses.append(addr)
return project_addresses