From 859afacfeafcd56cecc065b463e75639b3e72d7e Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Thu, 8 Jul 2021 08:43:53 -0500 Subject: T3663: use inotify-based waiting for keepalived in `show vrrp` --- src/op_mode/vrrp.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/op_mode/vrrp.py b/src/op_mode/vrrp.py index 8d1369823..7a1146b9e 100755 --- a/src/op_mode/vrrp.py +++ b/src/op_mode/vrrp.py @@ -27,10 +27,9 @@ import vyos.util def print_summary(): try: - vyos.keepalived.force_json_dump() - # Wait for keepalived to produce the data - # Replace with inotify or similar if it proves problematic - time.sleep(0.2) + json_data = vyos.util.wait_for_file_write_complete(vyos.keepalived.json_file, + pre_hook=(lambda: vyos.keepalived.force_json_dump()), + timeout=30) json_data = vyos.keepalived.get_json_data() vyos.keepalived.remove_vrrp_data("json") except: @@ -60,8 +59,9 @@ def print_summary(): def print_statistics(): try: - vyos.keepalived.force_stats_dump() - time.sleep(0.2) + json_data = vyos.util.wait_for_file_write_complete(vyos.keepalived.stats_file, + pre_hook=(lambda: vyos.keepalived.force_stats_dump()), + timeout=30) output = vyos.keepalived.get_statistics() print(output) vyos.keepalived.remove_vrrp_data("stats") @@ -71,8 +71,9 @@ def print_statistics(): def print_state_data(): try: - vyos.keepalived.force_state_data_dump() - time.sleep(0.2) + json_data = vyos.util.wait_for_file_write_complete(vyos.keepalived.state_file, + pre_hook=(lambda: vyos.keepalived.force_state_data_dump()), + timeout=30) output = vyos.keepalived.get_state_data() print(output) vyos.keepalived.remove_vrrp_data("state") -- cgit v1.2.3