summaryrefslogtreecommitdiff
path: root/tests/test-reconnect.py
diff options
context:
space:
mode:
authorAndrew Evans <aevans@nicira.com>2011-03-14 13:10:02 -0700
committerAndrew Evans <aevans@nicira.com>2011-03-14 13:10:02 -0700
commit5eda645e36a9b5dd72c275b7e400dfefcba281d3 (patch)
tree60a687958694aa067bc705a91bbadef89d916d88 /tests/test-reconnect.py
parent6d38ac7cb9fc65ee94ebeb3e9cde11b27c2173bb (diff)
downloadopenvswitch-5eda645e36a9b5dd72c275b7e400dfefcba281d3.tar.gz
ovsdb-server: Report time since last connect and disconnect for each manager.
Only the time connected (if connected) or disconnected (if disconnected) is currently reported for each manager. Change to reporting both in seconds since the last connect and disconnect events respectively. An empty value indicates no previous connection or disconnection. This can help diagnose certain connectivity problems, e.g. flapping. Requested-by: Peter Balland <peter@nicira.com> Bug #4833.
Diffstat (limited to 'tests/test-reconnect.py')
-rw-r--r--tests/test-reconnect.py37
1 files changed, 21 insertions, 16 deletions
diff --git a/tests/test-reconnect.py b/tests/test-reconnect.py
index 0c467564c..a4cc9b7d7 100644
--- a/tests/test-reconnect.py
+++ b/tests/test-reconnect.py
@@ -86,7 +86,7 @@ def do_timeout(arg):
def do_set_max_tries(arg):
r.set_max_tries(int(arg))
-def diff_stats(old, new):
+def diff_stats(old, new, delta):
if (old.state != new.state or
old.state_elapsed != new.state_elapsed or
old.backoff != new.backoff):
@@ -106,23 +106,27 @@ def diff_stats(old, new):
% (new.n_successful_connections, new.n_attempted_connections,
new.seqno))
- if (old.is_connected != new.is_connected or
- old.current_connection_duration != new.current_connection_duration or
- old.total_connected_duration != new.total_connected_duration):
+ if (old.is_connected != new.is_connected):
if new.is_connected:
negate = ""
else:
- negate = "not "
- print(" %sconnected (%d ms), total %d ms connected"
- % (negate, new.current_connection_duration,
- new.total_connected_duration))
-
- if (old.last_disconnected != new.last_disconnected):
+ negate = "dis"
+ print(" %sconnected" % negate)
+
+ if (old.last_connected != new.last_connected or
+ (new.msec_since_connect != None and
+ old.msec_since_connect != new.msec_since_connect - delta) or
+ (old.total_connected_duration != new.total_connected_duration - delta and
+ not (old.total_connected_duration == 0 and
+ new.total_connected_duration == 0))):
+ print(" last connected %d ms ago, connected %d ms total"
+ % (new.msec_since_connect, new.total_connected_duration))
+
+ if (old.last_disconnected != new.last_disconnected or
+ (new.msec_since_disconnect != None and
+ old.msec_since_disconnect != new.msec_since_disconnect - delta)):
print(" disconnected at %d ms (%d ms ago)"
- % (new.last_disconnected, new.current_disconnect_duration))
-
- if (old.current_disconnect_duration != new.current_disconnect_duration):
- print(" disconnected for %d ms" % (new.current_disconnect_duration))
+ % (new.last_disconnected, new.msec_since_disconnect))
def do_set_passive(arg):
r.set_passive(True, now)
@@ -187,15 +191,16 @@ def main():
if old_time != now:
print
print "### t=%d ###" % now
- old_time = now
cur = r.get_stats(now)
- diff_stats(prev, cur)
+ diff_stats(prev, cur, now - old_time)
prev = cur
if r.get_max_tries() != old_max_tries:
old_max_tries = r.get_max_tries()
print " %d tries left" % old_max_tries
+ old_time = now
+
if __name__ == '__main__':
main()