Locked down fixed ips and improved network tests
This commit is contained in:
@@ -49,7 +49,6 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
self.user = self.manager.create_user('netuser', 'netuser', 'netuser')
|
self.user = self.manager.create_user('netuser', 'netuser', 'netuser')
|
||||||
self.projects = []
|
self.projects = []
|
||||||
self.network = utils.import_object(FLAGS.network_manager)
|
self.network = utils.import_object(FLAGS.network_manager)
|
||||||
# TODO(devcamcar): Passing project=None is Bad(tm).
|
|
||||||
self.context = context.APIRequestContext(project=None, user=self.user)
|
self.context = context.APIRequestContext(project=None, user=self.user)
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
name = 'project%s' % i
|
name = 'project%s' % i
|
||||||
@@ -60,11 +59,9 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
user_context = context.APIRequestContext(project=self.projects[i],
|
user_context = context.APIRequestContext(project=self.projects[i],
|
||||||
user=self.user)
|
user=self.user)
|
||||||
self.network.set_network_host(user_context, self.projects[i].id)
|
self.network.set_network_host(user_context, self.projects[i].id)
|
||||||
instance_ref = db.instance_create(None,
|
instance_ref = self._create_instance(0)
|
||||||
{'mac_address': utils.generate_mac()})
|
|
||||||
self.instance_id = instance_ref['id']
|
self.instance_id = instance_ref['id']
|
||||||
instance_ref = db.instance_create(None,
|
instance_ref = self._create_instance(1)
|
||||||
{'mac_address': utils.generate_mac()})
|
|
||||||
self.instance2_id = instance_ref['id']
|
self.instance2_id = instance_ref['id']
|
||||||
|
|
||||||
def tearDown(self): # pylint: disable-msg=C0103
|
def tearDown(self): # pylint: disable-msg=C0103
|
||||||
@@ -77,6 +74,15 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
self.manager.delete_project(project)
|
self.manager.delete_project(project)
|
||||||
self.manager.delete_user(self.user)
|
self.manager.delete_user(self.user)
|
||||||
|
|
||||||
|
def _create_instance(self, project_num, mac=None):
|
||||||
|
if not mac:
|
||||||
|
mac = utils.generate_mac()
|
||||||
|
project = self.projects[project_num]
|
||||||
|
self.context.project = project
|
||||||
|
return db.instance_create(self.context,
|
||||||
|
{'project_id': project.id,
|
||||||
|
'mac_address': mac})
|
||||||
|
|
||||||
def _create_address(self, project_num, instance_id=None):
|
def _create_address(self, project_num, instance_id=None):
|
||||||
"""Create an address in given project num"""
|
"""Create an address in given project num"""
|
||||||
if instance_id is None:
|
if instance_id is None:
|
||||||
@@ -84,6 +90,11 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
self.context.project = self.projects[project_num]
|
self.context.project = self.projects[project_num]
|
||||||
return self.network.allocate_fixed_ip(self.context, instance_id)
|
return self.network.allocate_fixed_ip(self.context, instance_id)
|
||||||
|
|
||||||
|
def _deallocate_address(self, project_num, address):
|
||||||
|
self.context.project = self.projects[project_num]
|
||||||
|
self.network.deallocate_fixed_ip(self.context, address)
|
||||||
|
|
||||||
|
|
||||||
def test_public_network_association(self):
|
def test_public_network_association(self):
|
||||||
"""Makes sure that we can allocaate a public ip"""
|
"""Makes sure that we can allocaate a public ip"""
|
||||||
# TODO(vish): better way of adding floating ips
|
# TODO(vish): better way of adding floating ips
|
||||||
@@ -134,14 +145,14 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
lease_ip(address)
|
lease_ip(address)
|
||||||
lease_ip(address2)
|
lease_ip(address2)
|
||||||
|
|
||||||
self.network.deallocate_fixed_ip(self.context, address)
|
self._deallocate_address(0, address)
|
||||||
release_ip(address)
|
release_ip(address)
|
||||||
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.network.deallocate_fixed_ip(self.context, address2)
|
self._deallocate_address(1, address2)
|
||||||
release_ip(address2)
|
release_ip(address2)
|
||||||
self.assertFalse(is_allocated_in_project(address2,
|
self.assertFalse(is_allocated_in_project(address2,
|
||||||
self.projects[1].id))
|
self.projects[1].id))
|
||||||
@@ -152,24 +163,19 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
lease_ip(first)
|
lease_ip(first)
|
||||||
instance_ids = []
|
instance_ids = []
|
||||||
for i in range(1, 5):
|
for i in range(1, 5):
|
||||||
mac = utils.generate_mac()
|
instance_ref = self._create_instance(i, mac=utils.generate_mac())
|
||||||
instance_ref = db.instance_create(None,
|
|
||||||
{'mac_address': mac})
|
|
||||||
instance_ids.append(instance_ref['id'])
|
instance_ids.append(instance_ref['id'])
|
||||||
address = self._create_address(i, instance_ref['id'])
|
address = self._create_address(i, instance_ref['id'])
|
||||||
mac = utils.generate_mac()
|
instance_ref = self._create_instance(i, mac=utils.generate_mac())
|
||||||
instance_ref = db.instance_create(None,
|
|
||||||
{'mac_address': mac})
|
|
||||||
instance_ids.append(instance_ref['id'])
|
instance_ids.append(instance_ref['id'])
|
||||||
address2 = self._create_address(i, instance_ref['id'])
|
address2 = self._create_address(i, instance_ref['id'])
|
||||||
mac = utils.generate_mac()
|
instance_ref = self._create_instance(i, mac=utils.generate_mac())
|
||||||
instance_ref = db.instance_create(None,
|
|
||||||
{'mac_address': mac})
|
|
||||||
instance_ids.append(instance_ref['id'])
|
instance_ids.append(instance_ref['id'])
|
||||||
address3 = self._create_address(i, instance_ref['id'])
|
address3 = self._create_address(i, instance_ref['id'])
|
||||||
lease_ip(address)
|
lease_ip(address)
|
||||||
lease_ip(address2)
|
lease_ip(address2)
|
||||||
lease_ip(address3)
|
lease_ip(address3)
|
||||||
|
self.context.project = self.projects[i]
|
||||||
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,
|
||||||
@@ -185,7 +191,7 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
for instance_id in instance_ids:
|
for instance_id in instance_ids:
|
||||||
db.instance_destroy(None, instance_id)
|
db.instance_destroy(None, instance_id)
|
||||||
release_ip(first)
|
release_ip(first)
|
||||||
self.network.deallocate_fixed_ip(self.context, first)
|
self._deallocate_address(0, first)
|
||||||
|
|
||||||
def test_vpn_ip_and_port_looks_valid(self):
|
def test_vpn_ip_and_port_looks_valid(self):
|
||||||
"""Ensure the vpn ip and port are reasonable"""
|
"""Ensure the vpn ip and port are reasonable"""
|
||||||
@@ -246,9 +252,7 @@ class NetworkTestCase(test.TrialTestCase):
|
|||||||
addresses = []
|
addresses = []
|
||||||
instance_ids = []
|
instance_ids = []
|
||||||
for i in range(num_available_ips):
|
for i in range(num_available_ips):
|
||||||
mac = utils.generate_mac()
|
instance_ref = self._create_instance(0)
|
||||||
instance_ref = db.instance_create(None,
|
|
||||||
{'mac_address': mac})
|
|
||||||
instance_ids.append(instance_ref['id'])
|
instance_ids.append(instance_ref['id'])
|
||||||
address = self._create_address(0, instance_ref['id'])
|
address = self._create_address(0, instance_ref['id'])
|
||||||
addresses.append(address)
|
addresses.append(address)
|
||||||
|
|||||||
Reference in New Issue
Block a user