summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-07-29 03:48:11 +0000
committerGerrit Code Review <review@openstack.org>2016-07-29 03:48:11 +0000
commit6d28df0c295c4854807a879dd39b30b652e069a6 (patch)
tree537dec50f12def77a22b5ba3e759b323e6306752
parentbf33bc3547778c8b72aeab775eac6b3f2ebb45f2 (diff)
parent0036bc07e7ee1d59e713df604d73645b8764d025 (diff)
downloadneutron-6d28df0c295c4854807a879dd39b30b652e069a6.tar.gz
Merge "Fix of ping usage in net_helpers.async_ping()" into stable/liberty
-rw-r--r--neutron/tests/common/net_helpers.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/neutron/tests/common/net_helpers.py b/neutron/tests/common/net_helpers.py
index 7724cb4dac..8cc57f82f3 100644
--- a/neutron/tests/common/net_helpers.py
+++ b/neutron/tests/common/net_helpers.py
@@ -24,6 +24,7 @@ import select
import shlex
import signal
import subprocess
+import time
import fixtures
import netaddr
@@ -85,12 +86,22 @@ def set_namespace_gateway(port_dev, gateway_ip):
port_dev.route.add_gateway(gateway_ip)
-def assert_ping(src_namespace, dst_ip, timeout=1, count=1):
+def assert_ping(src_namespace, dst_ip, timeout=1, count=1, interval=1):
ipversion = netaddr.IPAddress(dst_ip).version
ping_command = 'ping' if ipversion == 4 else 'ping6'
ns_ip_wrapper = ip_lib.IPWrapper(src_namespace)
- ns_ip_wrapper.netns.execute([ping_command, '-c', count, '-W', timeout,
- dst_ip])
+
+ # See bug 1588731 for explanation why using -c count ping option
+ # cannot be used and it needs to be done using the following workaround.
+ for _index in range(count):
+ start_time = time.time()
+ ns_ip_wrapper.netns.execute([ping_command, '-c', '1', '-W', timeout,
+ dst_ip])
+ end_time = time.time()
+ diff = end_time - start_time
+ if 0 < diff < interval:
+ # wait at most "interval" seconds between individual pings
+ time.sleep(interval - diff)
@contextlib.contextmanager