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
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user