From bcf0e34f2952b23052c28ef0d2cab87a7ba6ba0b Mon Sep 17 00:00:00 2001 From: Yutong Zhang Date: Mon, 10 Jul 2023 13:48:01 +0800 Subject: [PATCH] When dut is single-asic, set the key "asic0" to keep up with multi-asic. --- tests/conftest.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index e0147680234..884352cda99 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1646,14 +1646,24 @@ def collect_db_dump(request, duthosts): yield collect_db_dump_on_duts(request, duthosts) + def __dut_reload(duts_data, node=None, results=None): if node is None or results is None: logger.error('Missing kwarg "node" or "results"') return logger.info("dut reload called on {}".format(node.hostname)) - node.copy(content=json.dumps(duts_data[node.hostname]["pre_running_config"], indent=4), - dest='/etc/sonic/config_db.json', verbose=False) - config_reload(node) + node.copy(content=json.dumps(duts_data[node.hostname]["pre_running_config"]["asic0"], indent=4), + dest='/etc/sonic/config_db.json', verbose=False) + + if node.is_multi_asic: + for asic_index in range(0, node.facts.get('num_asic')): + asic_ns = "asic{}".format(asic_index) + asic_cfg_file = "/tmp/{}_config_db{}.json".format(node.hostname, asic_index) + with open(asic_cfg_file, "w") as outfile: + outfile.write(json.dumps(duts_data[node.hostname]['pre_running_config'][asic_ns], indent=4)) + node.copy(src=asic_cfg_file, dest='/etc/sonic/config_db{}.json'.format(asic_index), verbose=False) + os.remove(asic_cfg_file) + config_reload(node, wait_before_force_reload=300) def compare_running_config(pre_running_config, cur_running_config): @@ -1722,7 +1732,7 @@ def core_dump_and_config_check(duthosts, tbinfo, request): if not duthost.stat(path="/etc/sonic/running_golden_config.json")['stat']['exists']: logger.info("Collecting running golden config before test on {}".format(duthost.hostname)) duthost.shell("sonic-cfggen -d --print-data > /etc/sonic/running_golden_config.json") - duts_data[duthost.hostname]["pre_running_config"][None] = \ + duts_data[duthost.hostname]["pre_running_config"]["asic0"] = \ json.loads(duthost.shell("cat /etc/sonic/running_golden_config.json", verbose=False)['stdout']) if duthost.is_multi_asic: @@ -1761,7 +1771,7 @@ def core_dump_and_config_check(duthosts, tbinfo, request): logger.info("Collecting running config after test on {}".format(duthost.hostname)) # get running config after running duts_data[duthost.hostname]["cur_running_config"] = {} - duts_data[duthost.hostname]["cur_running_config"][None] = \ + duts_data[duthost.hostname]["cur_running_config"]["asic0"] = \ json.loads(duthost.shell("sonic-cfggen -d --print-data", verbose=False)['stdout']) if duthost.is_multi_asic: for asic_index in range(0, duthost.facts.get('num_asic')):