summaryrefslogtreecommitdiff
path: root/src/op_mode
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-04-03 16:02:09 +0200
committerGitHub <noreply@github.com>2020-04-03 16:02:09 +0200
commit5f850ee4f60e08b7e1f62100f406ce1dcbfedd0e (patch)
tree2f641a742f659d8011013975d17b7cbeef1a0b94 /src/op_mode
parente8d26b914a273911bc283c1ac14d934a4b29a0ba (diff)
parent9c605ffae490b6fa6f0c0e310ea88c83eee8be9d (diff)
downloadvyos-1x-5f850ee4f60e08b7e1f62100f406ce1dcbfedd0e.tar.gz
vyos-1x-5f850ee4f60e08b7e1f62100f406ce1dcbfedd0e.zip
Merge pull request #293 from zdc/T2193
VRRP: T2193: Added disabled VRRP instances to `show vrrp`
Diffstat (limited to 'src/op_mode')
-rwxr-xr-xsrc/op_mode/vrrp.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/op_mode/vrrp.py b/src/op_mode/vrrp.py
index 8d1369823..8a993f92c 100755
--- a/src/op_mode/vrrp.py
+++ b/src/op_mode/vrrp.py
@@ -18,12 +18,28 @@
import sys
import time
import argparse
-
+import json
import tabulate
import vyos.keepalived
import vyos.util
+config_dict_path = '/run/keepalived_config.dict'
+
+
+# get disabled instances from a config
+def vrrp_get_disabled():
+ # read the dictionary file with configuration
+ with open(config_dict_path, 'r') as dict_file:
+ vrrp_config_dict = json.load(dict_file)
+ vrrp_disabled = []
+ # add disabled groups to the list
+ for vrrp_group in vrrp_config_dict['vrrp_groups']:
+ if vrrp_group['disable']:
+ vrrp_disabled.append([vrrp_group['name'], vrrp_group['interface'], vrrp_group['vrid'], 'DISABLED', ''])
+ # return list with disabled instances
+ return vrrp_disabled
+
def print_summary():
try:
@@ -54,10 +70,13 @@ def print_summary():
row = [name, interface, vrid, state, ltrans_time]
groups.append(row)
+ # add to the active list disabled instances
+ groups.extend(vrrp_get_disabled())
headers = ["Name", "Interface", "VRID", "State", "Last Transition"]
output = tabulate.tabulate(groups, headers)
print(output)
+
def print_statistics():
try:
vyos.keepalived.force_stats_dump()
@@ -69,6 +88,7 @@ def print_statistics():
print("VRRP statistics are not available")
sys.exit(1)
+
def print_state_data():
try:
vyos.keepalived.force_state_data_dump()
@@ -80,6 +100,7 @@ def print_state_data():
print("VRRP information is not available")
sys.exit(1)
+
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("-s", "--summary", action="store_true", help="Print VRRP summary")