From c831f47a86bc7f40c23067d804faeb5cb1f2b36e Mon Sep 17 00:00:00 2001 From: Michael Still Date: Thu, 11 Oct 2012 15:46:11 +1100 Subject: [PATCH] Avoid RPC calls while holding iptables lock. This exhibitied itself as very slow instance starts on a Canonical test cluster. This was because do_referesh_security_group_rules() was making rpc calls while holding the iptables lock. This refactor avoids that while making no functional changes (I hope). This should resolve bug 1062314. Change-Id: I36f805bd72f7bd06082cfe96c58d637203bcffb7 --- nova/tests/test_libvirt.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index 8861eb8de..7af877f22 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -3141,12 +3141,24 @@ class IptablesFirewallTestCase(test.TestCase): def test_do_refresh_security_group_rules(self): instance_ref = self._create_instance_ref() + self.mox.StubOutWithMock(self.fw, + 'instance_rules') self.mox.StubOutWithMock(self.fw, 'add_filters_for_instance', use_mock_anything=True) + + self.fw.instance_rules(instance_ref, + mox.IgnoreArg()).AndReturn((None, None)) + self.fw.add_filters_for_instance(instance_ref, mox.IgnoreArg(), + mox.IgnoreArg()) + self.fw.instance_rules(instance_ref, + mox.IgnoreArg()).AndReturn((None, None)) + self.fw.add_filters_for_instance(instance_ref, mox.IgnoreArg(), + mox.IgnoreArg()) + self.mox.ReplayAll() + 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") def test_unfilter_instance_undefines_nwfilter(self):