Skip to content

Commit 673da6b

Browse files
authored
[cherry-pick][202311] Show running config when bgp is down (#3315)
* [202311] Show running config when bgp is down
1 parent 34f01f9 commit 673da6b

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

show/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,11 +1437,11 @@ def all(verbose):
14371437
ns_list = multi_asic.get_namespace_list()
14381438
for ns in ns_list:
14391439
ns_config = get_config_json_by_namespace(ns)
1440-
ns_config['bgpraw'] = bgp_util.run_bgp_show_command(bgpraw_cmd, ns)
1440+
ns_config['bgpraw'] = bgp_util.run_bgp_show_command(bgpraw_cmd, ns, exit_on_fail=False)
14411441
output[ns] = ns_config
14421442
click.echo(json.dumps(output, indent=4))
14431443
else:
1444-
host_config['bgpraw'] = bgp_util.run_bgp_show_command(bgpraw_cmd)
1444+
host_config['bgpraw'] = bgp_util.run_bgp_show_command(bgpraw_cmd, exit_on_fail=False)
14451445
click.echo(json.dumps(output['localhost'], indent=4))
14461446

14471447

tests/conftest.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ def mock_run_bgp_command_for_static(vtysh_cmd, bgp_namespace="", vtysh_shell_cmd
310310
else:
311311
return ""
312312

313-
def mock_run_bgp_command(vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.RVTYSH_COMMAND):
313+
def mock_run_bgp_command(vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.RVTYSH_COMMAND, exit_on_fail=True):
314314
if m_asic_json_file.startswith('bgp_v4_network') or \
315315
m_asic_json_file.startswith('bgp_v6_network'):
316316
return mock_show_bgp_network_multi_asic(m_asic_json_file)
@@ -328,7 +328,8 @@ def mock_run_bgp_command(vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.RVT
328328
else:
329329
return ""
330330

331-
def mock_run_show_sum_bgp_command(vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.VTYSH_COMMAND):
331+
def mock_run_show_sum_bgp_command(
332+
vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.VTYSH_COMMAND, exit_on_fail=True):
332333
if vtysh_cmd == "show ip bgp summary json":
333334
m_asic_json_file = 'no_bgp_neigh.json'
334335
else:
@@ -343,7 +344,8 @@ def mock_run_show_sum_bgp_command(vtysh_cmd, bgp_namespace, vtysh_shell_cmd=cons
343344
else:
344345
return ""
345346

346-
def mock_run_show_summ_bgp_command_no_ext_neigh_on_all_asic(vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.VTYSH_COMMAND):
347+
def mock_run_show_summ_bgp_command_no_ext_neigh_on_all_asic(
348+
vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.VTYSH_COMMAND, exit_on_fail=True):
347349
if vtysh_cmd == "show ip bgp summary json":
348350
m_asic_json_file = 'no_ext_bgp_neigh.json'
349351
else:
@@ -358,7 +360,8 @@ def mock_run_show_summ_bgp_command_no_ext_neigh_on_all_asic(vtysh_cmd, bgp_names
358360
else:
359361
return ""
360362

361-
def mock_run_show_summ_bgp_command_no_ext_neigh_on_asic1(vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.VTYSH_COMMAND):
363+
def mock_run_show_summ_bgp_command_no_ext_neigh_on_asic1(
364+
vtysh_cmd, bgp_namespace, vtysh_shell_cmd=constants.VTYSH_COMMAND, exit_on_fail=True):
362365
if vtysh_cmd == "show ip bgp summary json":
363366
if bgp_namespace == "asic1":
364367
m_asic_json_file = 'no_ext_bgp_neigh.json'

utilities_common/bgp_util.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,8 @@ def get_neighbor_dict_from_table(db, table_name):
188188
return neighbor_dict
189189

190190

191-
def run_bgp_command(vtysh_cmd, bgp_namespace=multi_asic.DEFAULT_NAMESPACE, vtysh_shell_cmd=constants.VTYSH_COMMAND):
191+
def run_bgp_command(vtysh_cmd, bgp_namespace=multi_asic.DEFAULT_NAMESPACE,
192+
vtysh_shell_cmd=constants.VTYSH_COMMAND, exit_on_fail=True):
192193
bgp_instance_id = []
193194
output = None
194195
if bgp_namespace is not multi_asic.DEFAULT_NAMESPACE:
@@ -199,16 +200,16 @@ def run_bgp_command(vtysh_cmd, bgp_namespace=multi_asic.DEFAULT_NAMESPACE, vtysh
199200
output, ret = clicommon.run_command(cmd, return_cmd=True)
200201
if ret != 0:
201202
click.echo(output.rstrip('\n'))
202-
sys.exit(ret)
203+
output = "" if not exit_on_fail else sys.exit(ret)
203204
except Exception:
204205
ctx = click.get_current_context()
205-
ctx.fail("Unable to get summary from bgp {}".format(bgp_instance_id))
206+
ctx.fail("Unable to get summary from bgp {}".format(bgp_instance_id)) if exit_on_fail else None
206207

207208
return output
208209

209210

210-
def run_bgp_show_command(vtysh_cmd, bgp_namespace=multi_asic.DEFAULT_NAMESPACE):
211-
output = run_bgp_command(vtysh_cmd, bgp_namespace, constants.RVTYSH_COMMAND)
211+
def run_bgp_show_command(vtysh_cmd, bgp_namespace=multi_asic.DEFAULT_NAMESPACE, exit_on_fail=True):
212+
output = run_bgp_command(vtysh_cmd, bgp_namespace, constants.RVTYSH_COMMAND, exit_on_fail)
212213
# handle the the alias mode in the following code
213214
if output is not None:
214215
if clicommon.get_interface_naming_mode() == "alias" and re.search("show ip|ipv6 route", vtysh_cmd):

0 commit comments

Comments
 (0)