diff options
| author | Andrew Evans <aevans@nicira.com> | 2011-03-14 13:10:02 -0700 |
|---|---|---|
| committer | Andrew Evans <aevans@nicira.com> | 2011-03-14 13:10:02 -0700 |
| commit | 5eda645e36a9b5dd72c275b7e400dfefcba281d3 (patch) | |
| tree | 60a687958694aa067bc705a91bbadef89d916d88 /tests/test-reconnect.py | |
| parent | 6d38ac7cb9fc65ee94ebeb3e9cde11b27c2173bb (diff) | |
| download | openvswitch-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.py | 37 |
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() |
