summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2011-08-12 22:05:34 -0700
committerVishvananda Ishaya <vishvananda@gmail.com>2011-08-12 22:05:34 -0700
commitf7d1270c94d884e661a79d74fb2b2f88f6eb619f (patch)
tree1dd67374220e059680fd03de1b2373673fba0451 /nova
parent87ff404bf2bffe690292f7d3922c1ca2529f852b (diff)
fix all of the tests
Diffstat (limited to 'nova')
-rw-r--r--nova/tests/test_libvirt.py84
-rw-r--r--nova/virt/libvirt/connection.py8
2 files changed, 50 insertions, 42 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index 2180cf4f0..df291ee68 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -49,18 +49,19 @@ def _create_network_info(count=1, ipv6=None):
if ipv6 is None:
ipv6 = FLAGS.use_ipv6
fake = 'fake'
- fake_ip = '0.0.0.0/0'
- fake_ip_2 = '0.0.0.1/0'
- fake_ip_3 = '0.0.0.1/0'
+ fake_ip = '10.11.12.13'
+ fake_ip_2 = '0.0.0.1'
+ fake_ip_3 = '0.0.0.1'
fake_vlan = 100
fake_bridge_interface = 'eth0'
network = {'bridge': fake,
'cidr': fake_ip,
'cidr_v6': fake_ip,
+ 'gateway_v6': fake,
'vlan': fake_vlan,
'bridge_interface': fake_bridge_interface}
mapping = {'mac': fake,
- 'dhcp_server': fake,
+ 'dhcp_server': '10.0.0.1',
'gateway': fake,
'gateway6': fake,
'ips': [{'ip': fake_ip}, {'ip': fake_ip}]}
@@ -273,15 +274,14 @@ class LibvirtConnTestCase(test.TestCase):
conn = connection.LibvirtConnection(True)
instance_ref = db.instance_create(self.context, self.test_instance)
- result = conn._prepare_xml_info(instance_ref, False)
- self.assertFalse(result['nics'])
-
- result = conn._prepare_xml_info(instance_ref, False,
- _create_network_info())
+ result = conn._prepare_xml_info(instance_ref,
+ _create_network_info(),
+ False)
self.assertTrue(len(result['nics']) == 1)
- result = conn._prepare_xml_info(instance_ref, False,
- _create_network_info(2))
+ result = conn._prepare_xml_info(instance_ref,
+ _create_network_info(2),
+ False)
self.assertTrue(len(result['nics']) == 2)
def test_xml_and_uri_no_ramdisk_no_kernel(self):
@@ -408,16 +408,16 @@ class LibvirtConnTestCase(test.TestCase):
network_info = _create_network_info(2)
conn = connection.LibvirtConnection(True)
instance_ref = db.instance_create(self.context, instance_data)
- xml = conn.to_xml(instance_ref, False, network_info)
+ xml = conn.to_xml(instance_ref, network_info, False)
tree = xml_to_tree(xml)
interfaces = tree.findall("./devices/interface")
self.assertEquals(len(interfaces), 2)
parameters = interfaces[0].findall('./filterref/parameter')
self.assertEquals(interfaces[0].get('type'), 'bridge')
self.assertEquals(parameters[0].get('name'), 'IP')
- self.assertEquals(parameters[0].get('value'), '0.0.0.0/0')
+ self.assertEquals(parameters[0].get('value'), '10.11.12.13')
self.assertEquals(parameters[1].get('name'), 'DHCPSERVER')
- self.assertEquals(parameters[1].get('value'), 'fake')
+ self.assertEquals(parameters[1].get('value'), '10.0.0.1')
def _check_xml_and_container(self, instance):
user_context = context.RequestContext(self.user_id,
@@ -431,7 +431,8 @@ class LibvirtConnTestCase(test.TestCase):
uri = conn.get_uri()
self.assertEquals(uri, 'lxc:///')
- xml = conn.to_xml(instance_ref)
+ network_info = _create_network_info()
+ xml = conn.to_xml(instance_ref, network_info)
tree = xml_to_tree(xml)
check = [
@@ -528,17 +529,20 @@ class LibvirtConnTestCase(test.TestCase):
uri = conn.get_uri()
self.assertEquals(uri, expected_uri)
- xml = conn.to_xml(instance_ref, rescue)
+ network_info = _create_network_info()
+ xml = conn.to_xml(instance_ref, network_info, rescue)
tree = xml_to_tree(xml)
for i, (check, expected_result) in enumerate(checks):
self.assertEqual(check(tree),
expected_result,
- '%s failed check %d' % (xml, i))
+ '%s != %s failed check %d' %
+ (check(tree), expected_result, i))
for i, (check, expected_result) in enumerate(common_checks):
self.assertEqual(check(tree),
expected_result,
- '%s failed common check %d' % (xml, i))
+ '%s != %s failed common check %d' %
+ (check(tree), expected_result, i))
# This test is supposed to make sure we don't
# override a specifically set uri
@@ -942,8 +946,9 @@ class IptablesFirewallTestCase(test.TestCase):
from nova.network import linux_net
linux_net.iptables_manager.execute = fake_iptables_execute
- self.fw.prepare_instance_filter(instance_ref)
- self.fw.apply_instance_filter(instance_ref)
+ network_info = _create_network_info()
+ self.fw.prepare_instance_filter(instance_ref, network_info)
+ self.fw.apply_instance_filter(instance_ref, network_info)
in_rules = filter(lambda l: not l.startswith('#'),
self.in_filter_rules)
@@ -1008,7 +1013,7 @@ class IptablesFirewallTestCase(test.TestCase):
ipv6_len = len(self.fw.iptables.ipv6['filter'].rules)
inst_ipv4, inst_ipv6 = self.fw.instance_rules(instance_ref,
network_info)
- self.fw.add_filters_for_instance(instance_ref, network_info)
+ self.fw.prepare_instance_filter(instance_ref, network_info)
ipv4 = self.fw.iptables.ipv4['filter'].rules
ipv6 = self.fw.iptables.ipv6['filter'].rules
ipv4_network_rules = len(ipv4) - len(inst_ipv4) - ipv4_len
@@ -1023,7 +1028,7 @@ class IptablesFirewallTestCase(test.TestCase):
self.mox.StubOutWithMock(self.fw,
'add_filters_for_instance',
use_mock_anything=True)
- self.fw.add_filters_for_instance(instance_ref, mox.IgnoreArg())
+ self.fw.prepare_instance_filter(instance_ref, mox.IgnoreArg())
self.fw.instances[instance_ref['id']] = instance_ref
self.mox.ReplayAll()
self.fw.do_refresh_security_group_rules("fake")
@@ -1043,11 +1048,12 @@ class IptablesFirewallTestCase(test.TestCase):
instance_ref = self._create_instance_ref()
_setup_networking(instance_ref['id'], self.test_ip)
- self.fw.setup_basic_filtering(instance_ref)
- self.fw.prepare_instance_filter(instance_ref)
- self.fw.apply_instance_filter(instance_ref)
+ network_info = _create_network_info
+ self.fw.setup_basic_filtering(instance_ref, network_info)
+ self.fw.prepare_instance_filter(instance_ref, network_info)
+ self.fw.apply_instance_filter(instance_ref, network_info)
original_filter_count = len(fakefilter.filters)
- self.fw.unfilter_instance(instance_ref)
+ self.fw.unfilter_instance(instance_ref, network_info)
# should undefine just the instance filter
self.assertEqual(original_filter_count - len(fakefilter.filters), 1)
@@ -1057,14 +1063,14 @@ class IptablesFirewallTestCase(test.TestCase):
def test_provider_firewall_rules(self):
# setup basic instance data
instance_ref = self._create_instance_ref()
- nw_info = _create_network_info(1)
_setup_networking(instance_ref['id'], self.test_ip)
# FRAGILE: peeks at how the firewall names chains
chain_name = 'inst-%s' % instance_ref['id']
# create a firewall via setup_basic_filtering like libvirt_conn.spawn
# should have a chain with 0 rules
- self.fw.setup_basic_filtering(instance_ref, network_info=nw_info)
+ network_info = _create_network_info(1)
+ self.fw.setup_basic_filtering(instance_ref, network_info)
self.assertTrue('provider' in self.fw.iptables.ipv4['filter'].chains)
rules = [rule for rule in self.fw.iptables.ipv4['filter'].rules
if rule.chain == 'provider']
@@ -1094,8 +1100,8 @@ class IptablesFirewallTestCase(test.TestCase):
self.assertEqual(2, len(rules))
# create the instance filter and make sure it has a jump rule
- self.fw.prepare_instance_filter(instance_ref, network_info=nw_info)
- self.fw.apply_instance_filter(instance_ref)
+ self.fw.prepare_instance_filter(instance_ref, network_info)
+ self.fw.apply_instance_filter(instance_ref, network_info)
inst_rules = [rule for rule in self.fw.iptables.ipv4['filter'].rules
if rule.chain == chain_name]
jump_rules = [rule for rule in inst_rules if '-j' in rule.rule]
@@ -1247,7 +1253,7 @@ class NWFilterTestCase(test.TestCase):
def _ensure_all_called():
instance_filter = 'nova-instance-%s-%s' % (instance_ref['name'],
- '561212121212')
+ 'fake')
secgroup_filter = 'nova-secgroup-%s' % self.security_group['id']
for required in [secgroup_filter, 'allow-dhcp-server',
'no-arp-spoofing', 'no-ip-spoofing',
@@ -1263,9 +1269,10 @@ class NWFilterTestCase(test.TestCase):
self.security_group.id)
instance = db.instance_get(self.context, inst_id)
- self.fw.setup_basic_filtering(instance)
- self.fw.prepare_instance_filter(instance)
- self.fw.apply_instance_filter(instance)
+ network_info = _create_network_info()
+ self.fw.setup_basic_filtering(instance, network_info)
+ self.fw.prepare_instance_filter(instance, network_info)
+ self.fw.apply_instance_filter(instance, network_info)
_ensure_all_called()
self.teardown_security_group()
db.instance_destroy(context.get_admin_context(), instance_ref['id'])
@@ -1296,11 +1303,12 @@ class NWFilterTestCase(test.TestCase):
instance = db.instance_get(self.context, inst_id)
_setup_networking(instance_ref['id'], self.test_ip)
- self.fw.setup_basic_filtering(instance)
- self.fw.prepare_instance_filter(instance)
- self.fw.apply_instance_filter(instance)
+ network_info = _create_network_info()
+ self.fw.setup_basic_filtering(instance, network_info)
+ self.fw.prepare_instance_filter(instance, network_info)
+ self.fw.apply_instance_filter(instance, network_info)
original_filter_count = len(fakefilter.filters)
- self.fw.unfilter_instance(instance)
+ self.fw.unfilter_instance(instance, network_info)
# should undefine 2 filters: instance and instance-secgroup
self.assertEqual(original_filter_count - len(fakefilter.filters), 2)
diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py
index f905ce92b..5945a725d 100644
--- a/nova/virt/libvirt/connection.py
+++ b/nova/virt/libvirt/connection.py
@@ -463,8 +463,8 @@ class LibvirtConnection(driver.ComputeDriver):
"""
virt_dom = self._conn.lookupByName(instance['name'])
# NOTE(itoumsn): Use XML delived from the running instance
- # instead of using to_xml(instance). This is almost the ultimate
- # stupid workaround.
+ # instead of using to_xml(instance, network_info). This is almost
+ # the ultimate stupid workaround.
xml = virt_dom.XMLDesc(0)
# NOTE(itoumsn): self.shutdown() and wait instead of self.destroy() is
# better because we cannot ensure flushing dirty buffers
@@ -988,7 +988,7 @@ class LibvirtConnection(driver.ComputeDriver):
else:
raise exception.InvalidDevicePath(path=device_path)
- def _prepare_xml_info(self, instance, rescue=False, network_info=None,
+ def _prepare_xml_info(self, instance, network_info, rescue,
block_device_info=None):
block_device_mapping = driver.block_device_info_get_mapping(
block_device_info)
@@ -1082,7 +1082,7 @@ class LibvirtConnection(driver.ComputeDriver):
block_device_info=None):
# TODO(termie): cache?
LOG.debug(_('instance %s: starting toXML method'), instance['name'])
- xml_info = self._prepare_xml_info(instance, rescue, network_info,
+ xml_info = self._prepare_xml_info(instance, network_info, rescue,
block_device_info)
xml = str(Template(self.libvirt_xml, searchList=[xml_info]))
LOG.debug(_('instance %s: finished toXML method'), instance['name'])