Make fullstack test_connectivity tests more forgiving

Change assert_ping to block_until_ping.

Closes-Bug: #1518466

Change-Id: I233cb40e701ef462e9d570d9677da1cbcc2c91c8
(cherry picked from commit 075f152223)
This commit is contained in:
Assaf Muller 2015-11-20 16:42:38 -05:00 committed by Ihar Hrachyshka
parent 9650a8a691
commit c24c24cb40
2 changed files with 15 additions and 1 deletions

View File

@ -13,9 +13,12 @@
# under the License.
#
import functools
import fixtures
from neutron.agent.linux import ip_lib
from neutron.agent.linux import utils
from neutron.tests.common import net_helpers
@ -48,6 +51,17 @@ class FakeMachineBase(fixtures.Fixture):
ns_ip_wrapper = ip_lib.IPWrapper(self.namespace)
return ns_ip_wrapper.netns.execute(*args, **kwargs)
def ping_predicate(self, dst_ip):
try:
self.assert_ping(dst_ip)
except RuntimeError:
return False
return True
def block_until_ping(self, dst_ip):
predicate = functools.partial(self.ping_predicate, dst_ip)
utils.wait_until_true(predicate)
def assert_ping(self, dst_ip):
net_helpers.assert_ping(self.namespace, dst_ip)

View File

@ -67,4 +67,4 @@ class TestConnectivitySameNetwork(base.BaseFullStackTestCase):
for vm in vms:
vm.block_until_boot()
vms[0].assert_ping(vms[1].ip)
vms[0].block_until_ping(vms[1].ip)