From c59e4bc6443a1f8a286beb7a0f46c0c4d0530575 Mon Sep 17 00:00:00 2001 From: pramoh Date: Tue, 23 Jun 2020 20:03:29 +0000 Subject: [PATCH 01/10] add gnmi_get output test --- tests/telemetry/test_telemetry.py | 43 ++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index fbb983a5ac3..9c989511b09 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -5,6 +5,8 @@ pytest.mark.topology('any') ] +logger = logging.getLogger(__name__) + # Helper functions def get_dict_stdout(gnmi_out, certs_out): """ Extracts dictionary from redis output. @@ -24,10 +26,22 @@ def get_list_stdout(cmd_out): out_list.append(result) return out_list +def restart_telemetry(duthost): + """ Restart telemetry process + """ + duthost.shell('sudo config feature telemetry disabled', module_ignore_errors=False)['stdout_lines'] + status_out = duthost.shell('show features | grep telemetry', module_ignore_errors=False)['stdout_lines'] + status_value = get_list_stdout(status_out) + status_value_list = status_value[0].split() + status_value = status_value_list[1] + if str(status_value) == "disabled": + logger.info(' telemetry is disabled. enabling it back...') + duthost.shell('sudo config feature telemetry enabled', module_ignore_errors=False)['stdout_lines'] + return bool("true") + return bool(false) + # Test functions def test_config_db_parameters(duthost): - """Verifies required telemetry parameters from config_db. - """ gnmi = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "TELEMETRY|gnmi"', module_ignore_errors=False)['stdout_lines'] pytest_assert(gnmi is not None, "TELEMETRY|gnmi does not exist in config_db") @@ -53,8 +67,6 @@ def test_config_db_parameters(duthost): pytest_assert(str(value) == server_crt_expected, "'server_crt' value is not '{}'".format(server_crt_expected)) def test_telemetry_enabledbydefault(duthost): - """Verify telemetry should be enabled by default - """ status = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "FEATURE|telemetry"', module_ignore_errors=False)['stdout_lines'] status_list = get_list_stdout(status) # Elements in list alternate between key and value. Separate them and combine into a dict. @@ -65,3 +77,26 @@ def test_telemetry_enabledbydefault(duthost): if str(k) == "status": status_expected = "enabled"; pytest_assert(str(v) == status_expected, "Telemetry feature is not enabled") + +def test_telemetry_gnmi_get(duthost, ptfhost): + """Run gnmi_get from ptfdocker and verify data streaming + """ + certs_del_status = duthost.shell('/usr/bin/redis-cli -n 4 del "TELEMETRY|certs"', module_ignore_errors=False)['stdout_lines'] + set_client_auth = duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False)['stdout_lines'] + logger.info('start telemetry testing') + restart_status = restart_telemetry(duthost) + if restart_status == bool("true"): + logger.info('telemetry process restarted. Now run gnmi_get on ptfdocker') + #Now run gnmi_get on ptfdocker + dut_ip = duthost.setup()['ansible_facts']['ansible_eth0']['ipv4']['address'] + logger.info("dut ip={}".format(dut_ip)) + cmd = ''' + cd ~/etc/go/bin && + ./gnmi_get -xpath_target COUNTERS_DB COUNTERS/Ethernet0 -target_addr {0}:8080 -insecure + '''.format(dut_ip) + show_gnmi_get_out = ptfhost.shell(cmd)[stdout] + logger.info("gnmi get output \n {}".format(show_gnmi_get_out)) + # Reset config back to original for telemetry process + duthost.shell('/usr/bin/redis-cli -n 4 hmset "TELEMETRY|certs" "ca_crt" "/etc/sonic/telemetry/dsmsroot.cer" "server_key" "/etc/sonic/telemetry/streamingtelemetryserver.key" "server_crt" "/etc/sonic/telemetry/streamingtelemetryserver.cer"', module_ignore_errors=False)['stdout_lines'] + duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "true"', module_ignore_errors=False)['stdout_lines'] + restart_telemetry(duthost) From 1814c6d12be9e618ef6dcbd480a5fc48c1929518 Mon Sep 17 00:00:00 2001 From: pramoh Date: Tue, 23 Jun 2020 20:11:26 +0000 Subject: [PATCH 02/10] adding comments --- tests/telemetry/test_telemetry.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index 9c989511b09..52005da92c2 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -42,6 +42,8 @@ def restart_telemetry(duthost): # Test functions def test_config_db_parameters(duthost): + """Verifies required telemetry parameters from config_db. + """ gnmi = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "TELEMETRY|gnmi"', module_ignore_errors=False)['stdout_lines'] pytest_assert(gnmi is not None, "TELEMETRY|gnmi does not exist in config_db") @@ -67,6 +69,8 @@ def test_config_db_parameters(duthost): pytest_assert(str(value) == server_crt_expected, "'server_crt' value is not '{}'".format(server_crt_expected)) def test_telemetry_enabledbydefault(duthost): + """Verify telemetry should be enabled by default + """ status = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "FEATURE|telemetry"', module_ignore_errors=False)['stdout_lines'] status_list = get_list_stdout(status) # Elements in list alternate between key and value. Separate them and combine into a dict. @@ -88,8 +92,7 @@ def test_telemetry_gnmi_get(duthost, ptfhost): if restart_status == bool("true"): logger.info('telemetry process restarted. Now run gnmi_get on ptfdocker') #Now run gnmi_get on ptfdocker - dut_ip = duthost.setup()['ansible_facts']['ansible_eth0']['ipv4']['address'] - logger.info("dut ip={}".format(dut_ip)) + dut_ip = duthost.setup()['ansible_facts']['ansible_eth0']['ipv4']['address'] cmd = ''' cd ~/etc/go/bin && ./gnmi_get -xpath_target COUNTERS_DB COUNTERS/Ethernet0 -target_addr {0}:8080 -insecure @@ -99,4 +102,4 @@ def test_telemetry_gnmi_get(duthost, ptfhost): # Reset config back to original for telemetry process duthost.shell('/usr/bin/redis-cli -n 4 hmset "TELEMETRY|certs" "ca_crt" "/etc/sonic/telemetry/dsmsroot.cer" "server_key" "/etc/sonic/telemetry/streamingtelemetryserver.key" "server_crt" "/etc/sonic/telemetry/streamingtelemetryserver.cer"', module_ignore_errors=False)['stdout_lines'] duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "true"', module_ignore_errors=False)['stdout_lines'] - restart_telemetry(duthost) + restart_telemetry(duthost) From bf94d433d127e3a2f4301f0e115d613fec55b6fb Mon Sep 17 00:00:00 2001 From: pramoh Date: Wed, 24 Jun 2020 20:35:45 +0000 Subject: [PATCH 03/10] removing extra spacs and adding space before logical group --- tests/telemetry/test_telemetry.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index 52005da92c2..7d4941e1057 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -69,7 +69,7 @@ def test_config_db_parameters(duthost): pytest_assert(str(value) == server_crt_expected, "'server_crt' value is not '{}'".format(server_crt_expected)) def test_telemetry_enabledbydefault(duthost): - """Verify telemetry should be enabled by default + """Verify telemetry should be enabled by default """ status = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "FEATURE|telemetry"', module_ignore_errors=False)['stdout_lines'] status_list = get_list_stdout(status) @@ -92,13 +92,14 @@ def test_telemetry_gnmi_get(duthost, ptfhost): if restart_status == bool("true"): logger.info('telemetry process restarted. Now run gnmi_get on ptfdocker') #Now run gnmi_get on ptfdocker - dut_ip = duthost.setup()['ansible_facts']['ansible_eth0']['ipv4']['address'] + dut_ip = duthost.setup()['ansible_facts']['ansible_eth0']['ipv4']['address'] cmd = ''' cd ~/etc/go/bin && ./gnmi_get -xpath_target COUNTERS_DB COUNTERS/Ethernet0 -target_addr {0}:8080 -insecure '''.format(dut_ip) show_gnmi_get_out = ptfhost.shell(cmd)[stdout] logger.info("gnmi get output \n {}".format(show_gnmi_get_out)) + # Reset config back to original for telemetry process duthost.shell('/usr/bin/redis-cli -n 4 hmset "TELEMETRY|certs" "ca_crt" "/etc/sonic/telemetry/dsmsroot.cer" "server_key" "/etc/sonic/telemetry/streamingtelemetryserver.key" "server_crt" "/etc/sonic/telemetry/streamingtelemetryserver.cer"', module_ignore_errors=False)['stdout_lines'] duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "true"', module_ignore_errors=False)['stdout_lines'] From 7320eb011d0e47ea01293592a55a862a4dbbd666 Mon Sep 17 00:00:00 2001 From: pramoh Date: Wed, 24 Jun 2020 20:37:41 +0000 Subject: [PATCH 04/10] removing extra space --- tests/telemetry/test_telemetry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index 7d4941e1057..6e5db1322eb 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -42,7 +42,7 @@ def restart_telemetry(duthost): # Test functions def test_config_db_parameters(duthost): - """Verifies required telemetry parameters from config_db. + """Verifies required telemetry parameters from config_db. """ gnmi = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "TELEMETRY|gnmi"', module_ignore_errors=False)['stdout_lines'] pytest_assert(gnmi is not None, "TELEMETRY|gnmi does not exist in config_db") From 94be059879b06848c4e5fdbcb5f7e1eeaaac0def Mon Sep 17 00:00:00 2001 From: pramoh Date: Fri, 17 Jul 2020 00:33:52 +0000 Subject: [PATCH 05/10] change to pyclient --- tests/telemetry/test_telemetry.py | 35 ++++++++++++++++--------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index 6e5db1322eb..77a4ee64fee 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -37,8 +37,8 @@ def restart_telemetry(duthost): if str(status_value) == "disabled": logger.info(' telemetry is disabled. enabling it back...') duthost.shell('sudo config feature telemetry enabled', module_ignore_errors=False)['stdout_lines'] - return bool("true") - return bool(false) + return True + return False # Test functions def test_config_db_parameters(duthost): @@ -82,25 +82,26 @@ def test_telemetry_enabledbydefault(duthost): status_expected = "enabled"; pytest_assert(str(v) == status_expected, "Telemetry feature is not enabled") -def test_telemetry_gnmi_get(duthost, ptfhost): - """Run gnmi_get from ptfdocker and verify data streaming +def test_telemetry_ouput(duthost, ptfhost): + """Run pyclient from ptfdocker and show gnmi server outputself. + For pyclient to work client_auth need to be set to false. """ - certs_del_status = duthost.shell('/usr/bin/redis-cli -n 4 del "TELEMETRY|certs"', module_ignore_errors=False)['stdout_lines'] - set_client_auth = duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False)['stdout_lines'] + set_client_auth = duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) logger.info('start telemetry testing') + # For server to take effect of client_auth=false, server needs to be restarted restart_status = restart_telemetry(duthost) - if restart_status == bool("true"): - logger.info('telemetry process restarted. Now run gnmi_get on ptfdocker') - #Now run gnmi_get on ptfdocker + if restart_status: + logger.info('telemetry process restarted. Now run pyclient on ptfdocker') dut_ip = duthost.setup()['ansible_facts']['ansible_eth0']['ipv4']['address'] - cmd = ''' - cd ~/etc/go/bin && - ./gnmi_get -xpath_target COUNTERS_DB COUNTERS/Ethernet0 -target_addr {0}:8080 -insecure - '''.format(dut_ip) - show_gnmi_get_out = ptfhost.shell(cmd)[stdout] - logger.info("gnmi get output \n {}".format(show_gnmi_get_out)) + # pyclient should be available on ptfhost. If not fail pytest. + file_exists = ptfhost.stat(path="~/gnxi/gnmi_cli_py/py_gnmicli.py") + pytest_assert(file_exists["stat"]["exists"] is True) + cmd = '~/gnxi/gnmi_cli_py/python py_gnmicli.py -g -t {0} -p 50051 -m get -x COUNTERS/Ethernet0 -xt COUNTERS_DB -o "ndastreamingservertest"'.format(dut_ip) + show_gnmi_out = ptfhost.shell(cmd)[stdout] + logger.info("gnmi server output \n {}".format(show_gnmi_out)) + else: + logger.info('restart telemetry failed. Gnmi output is not verified') # Reset config back to original for telemetry process - duthost.shell('/usr/bin/redis-cli -n 4 hmset "TELEMETRY|certs" "ca_crt" "/etc/sonic/telemetry/dsmsroot.cer" "server_key" "/etc/sonic/telemetry/streamingtelemetryserver.key" "server_crt" "/etc/sonic/telemetry/streamingtelemetryserver.cer"', module_ignore_errors=False)['stdout_lines'] - duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "true"', module_ignore_errors=False)['stdout_lines'] + duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "true"', module_ignore_errors=False) restart_telemetry(duthost) From fce771fc90cd1c13a01c14faad174d3bea3ba3d9 Mon Sep 17 00:00:00 2001 From: pramoh Date: Mon, 20 Jul 2020 23:08:31 +0000 Subject: [PATCH 06/10] added restart for telemtry process --- tests/telemetry/test_telemetry.py | 55 +++++++++++-------------------- 1 file changed, 20 insertions(+), 35 deletions(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index 77a4ee64fee..a3a45c3b9dc 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -1,5 +1,8 @@ +import re import pytest + from tests.common.helpers.assertions import pytest_assert +from tests.common.utilities import wait_until pytestmark = [ pytest.mark.topology('any') @@ -26,19 +29,12 @@ def get_list_stdout(cmd_out): out_list.append(result) return out_list -def restart_telemetry(duthost): - """ Restart telemetry process +def setup_telemetry_forpyclient(duthost): + """ Set client_auth=false. This is needed for pyclient to sucessfully set up channel with gnmi server. + Restart telemetry process """ - duthost.shell('sudo config feature telemetry disabled', module_ignore_errors=False)['stdout_lines'] - status_out = duthost.shell('show features | grep telemetry', module_ignore_errors=False)['stdout_lines'] - status_value = get_list_stdout(status_out) - status_value_list = status_value[0].split() - status_value = status_value_list[1] - if str(status_value) == "disabled": - logger.info(' telemetry is disabled. enabling it back...') - duthost.shell('sudo config feature telemetry enabled', module_ignore_errors=False)['stdout_lines'] - return True - return False + set_client_auth = duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) + duthost.service(name="telemetry", state="restarted") # Test functions def test_config_db_parameters(duthost): @@ -52,9 +48,6 @@ def test_config_db_parameters(duthost): d = get_dict_stdout(gnmi, certs) for key, value in d.items(): - if str(key) == "client_auth": - client_auth_expected = "true" - pytest_assert(str(value) == client_auth_expected, "'client_auth' value is not '{}'".format(client_auth_expected)) if str(key) == "port": port_expected = "50051" pytest_assert(str(value) == port_expected, "'port' value is not '{}'".format(port_expected)) @@ -84,24 +77,16 @@ def test_telemetry_enabledbydefault(duthost): def test_telemetry_ouput(duthost, ptfhost): """Run pyclient from ptfdocker and show gnmi server outputself. - For pyclient to work client_auth need to be set to false. """ - set_client_auth = duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) - logger.info('start telemetry testing') - # For server to take effect of client_auth=false, server needs to be restarted - restart_status = restart_telemetry(duthost) - if restart_status: - logger.info('telemetry process restarted. Now run pyclient on ptfdocker') - dut_ip = duthost.setup()['ansible_facts']['ansible_eth0']['ipv4']['address'] - # pyclient should be available on ptfhost. If not fail pytest. - file_exists = ptfhost.stat(path="~/gnxi/gnmi_cli_py/py_gnmicli.py") - pytest_assert(file_exists["stat"]["exists"] is True) - cmd = '~/gnxi/gnmi_cli_py/python py_gnmicli.py -g -t {0} -p 50051 -m get -x COUNTERS/Ethernet0 -xt COUNTERS_DB -o "ndastreamingservertest"'.format(dut_ip) - show_gnmi_out = ptfhost.shell(cmd)[stdout] - logger.info("gnmi server output \n {}".format(show_gnmi_out)) - else: - logger.info('restart telemetry failed. Gnmi output is not verified') - - # Reset config back to original for telemetry process - duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "true"', module_ignore_errors=False) - restart_telemetry(duthost) + logger.info('start telemetry output testing') + setup_telemetry_forpyclient(duthost) + # wait till telemetry is restarted + pytest_assert(wait_until(100, 10, duthost.is_service_fully_started, "telemetry"), "TELEMETRY not started") + logger.info('telemetry process restarted. Now run pyclient on ptfdocker') + dut_ip = duthost.setup()['ansible_facts']['ansible_eth0']['ipv4']['address'] + # pyclient should be available on ptfhost. If not fail pytest. + file_exists = ptfhost.stat(path="/gnxi/gnmi_cli_py/py_gnmicli.py") + pytest_assert(file_exists["stat"]["exists"] is True) + cmd = 'python /gnxi/gnmi_cli_py/py_gnmicli.py -g -t {0} -p 50051 -m get -x COUNTERS/Ethernet0 -xt COUNTERS_DB -o "ndastreamingservertest"'.format(dut_ip) + show_gnmi_out = ptfhost.shell(cmd)['stdout'] + logger.info("gnmi server output \n {}".format(show_gnmi_out)) From 773195cfc9e0a30fe2605eae40c19d8629ec1e6d Mon Sep 17 00:00:00 2001 From: pramoh Date: Tue, 21 Jul 2020 00:06:23 +0000 Subject: [PATCH 07/10] add 2 log statements --- tests/telemetry/test_telemetry.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index a3a45c3b9dc..cc3dc2be889 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -89,4 +89,5 @@ def test_telemetry_ouput(duthost, ptfhost): pytest_assert(file_exists["stat"]["exists"] is True) cmd = 'python /gnxi/gnmi_cli_py/py_gnmicli.py -g -t {0} -p 50051 -m get -x COUNTERS/Ethernet0 -xt COUNTERS_DB -o "ndastreamingservertest"'.format(dut_ip) show_gnmi_out = ptfhost.shell(cmd)['stdout'] - logger.info("gnmi server output \n {}".format(show_gnmi_out)) + logger.info("GNMI server output:") + logger.info(repr(show_gnmi_out)) From 96888a0cd97066dc370655b661f0a679a33f3228 Mon Sep 17 00:00:00 2001 From: pramoh Date: Wed, 22 Jul 2020 23:49:23 +0000 Subject: [PATCH 08/10] check gnmi output --- tests/telemetry/test_telemetry.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index cc3dc2be889..8d51bbc7aee 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -33,8 +33,13 @@ def setup_telemetry_forpyclient(duthost): """ Set client_auth=false. This is needed for pyclient to sucessfully set up channel with gnmi server. Restart telemetry process """ - set_client_auth = duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) - duthost.service(name="telemetry", state="restarted") + client_auth_out = duthost.shell('/usr/bin/redis-cli -n 4 hget "TELEMETRY|gnmi" "client_auth"', module_ignore_errors=False)['stdout_lines'] + client_auth = str(client_auth_out[0]) + if client_auth == "true": + set_client_auth = duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) + duthost.service(name="telemetry", state="restarted") + else: + logger.info('client auth is false. No need to restart telemetry') # Test functions def test_config_db_parameters(duthost): @@ -89,5 +94,10 @@ def test_telemetry_ouput(duthost, ptfhost): pytest_assert(file_exists["stat"]["exists"] is True) cmd = 'python /gnxi/gnmi_cli_py/py_gnmicli.py -g -t {0} -p 50051 -m get -x COUNTERS/Ethernet0 -xt COUNTERS_DB -o "ndastreamingservertest"'.format(dut_ip) show_gnmi_out = ptfhost.shell(cmd)['stdout'] - logger.info("GNMI server output:") - logger.info(repr(show_gnmi_out)) + logger.info("GNMI Server output".format(show_gnmi_out)) + result = str(show_gnmi_out) + getresponse_match = re.search("GetResponse", result) + pytest_assert(getresponse_match is not None, "GetResponse not found in gnmi output") + inerrors_match = re.search("SAI_PORT_STAT_IF_IN_ERRORS", result) + pytest_assert(inerrors_match is not None, "SAI_PORT_STAT_IF_IN_ERRORS not found in gnmi_output") + From a545c42355fecbbe746e7a8f35b2ca3842b497e7 Mon Sep 17 00:00:00 2001 From: pramoh Date: Thu, 23 Jul 2020 02:32:19 +0000 Subject: [PATCH 09/10] replace sonic-db-cli --- tests/telemetry/test_telemetry.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index 8d51bbc7aee..9179b09a33c 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -33,10 +33,10 @@ def setup_telemetry_forpyclient(duthost): """ Set client_auth=false. This is needed for pyclient to sucessfully set up channel with gnmi server. Restart telemetry process """ - client_auth_out = duthost.shell('/usr/bin/redis-cli -n 4 hget "TELEMETRY|gnmi" "client_auth"', module_ignore_errors=False)['stdout_lines'] + client_auth_out = duthost.shell('sonic-db-cli CONFIG_DB HGET "TELEMETRY|gnmi" "client_auth"', module_ignore_errors=False)['stdout_lines'] client_auth = str(client_auth_out[0]) if client_auth == "true": - set_client_auth = duthost.shell('/usr/bin/redis-cli -n 4 hset "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) + set_client_auth = duthost.shell('sonic-db-cli CONFIG_DB HSET "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) duthost.service(name="telemetry", state="restarted") else: logger.info('client auth is false. No need to restart telemetry') @@ -45,10 +45,10 @@ def setup_telemetry_forpyclient(duthost): def test_config_db_parameters(duthost): """Verifies required telemetry parameters from config_db. """ - gnmi = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "TELEMETRY|gnmi"', module_ignore_errors=False)['stdout_lines'] + gnmi = duthost.shell('sonic-db-cli CONFIG_DB HGETALL "TELEMETRY|gnmi"', module_ignore_errors=False)['stdout_lines'] pytest_assert(gnmi is not None, "TELEMETRY|gnmi does not exist in config_db") - certs = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "TELEMETRY|certs"', module_ignore_errors=False)['stdout_lines'] + certs = duthost.shell('sonic-db-cli CONFIG_DB HGETALL "TELEMETRY|certs"', module_ignore_errors=False)['stdout_lines'] pytest_assert(certs is not None, "TELEMETRY|certs does not exist in config_db") d = get_dict_stdout(gnmi, certs) @@ -69,7 +69,7 @@ def test_config_db_parameters(duthost): def test_telemetry_enabledbydefault(duthost): """Verify telemetry should be enabled by default """ - status = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "FEATURE|telemetry"', module_ignore_errors=False)['stdout_lines'] + status = duthost.shell('sonic-db-cli CONFIG_DB HGETALL "FEATURE|telemetry"', module_ignore_errors=False)['stdout_lines'] status_list = get_list_stdout(status) # Elements in list alternate between key and value. Separate them and combine into a dict. status_key_list = status_list[0::2] @@ -94,10 +94,9 @@ def test_telemetry_ouput(duthost, ptfhost): pytest_assert(file_exists["stat"]["exists"] is True) cmd = 'python /gnxi/gnmi_cli_py/py_gnmicli.py -g -t {0} -p 50051 -m get -x COUNTERS/Ethernet0 -xt COUNTERS_DB -o "ndastreamingservertest"'.format(dut_ip) show_gnmi_out = ptfhost.shell(cmd)['stdout'] - logger.info("GNMI Server output".format(show_gnmi_out)) + logger.info("GNMI Server output") + logger.info(show_gnmi_out) result = str(show_gnmi_out) - getresponse_match = re.search("GetResponse", result) - pytest_assert(getresponse_match is not None, "GetResponse not found in gnmi output") inerrors_match = re.search("SAI_PORT_STAT_IF_IN_ERRORS", result) pytest_assert(inerrors_match is not None, "SAI_PORT_STAT_IF_IN_ERRORS not found in gnmi_output") From c2c011cbf25cd3f22c247bed35ee0969d8972e86 Mon Sep 17 00:00:00 2001 From: pramoh Date: Thu, 23 Jul 2020 20:25:35 +0000 Subject: [PATCH 10/10] remove unused variable --- tests/telemetry/test_telemetry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index 9179b09a33c..5edb1c2e6a4 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -36,7 +36,7 @@ def setup_telemetry_forpyclient(duthost): client_auth_out = duthost.shell('sonic-db-cli CONFIG_DB HGET "TELEMETRY|gnmi" "client_auth"', module_ignore_errors=False)['stdout_lines'] client_auth = str(client_auth_out[0]) if client_auth == "true": - set_client_auth = duthost.shell('sonic-db-cli CONFIG_DB HSET "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) + duthost.shell('sonic-db-cli CONFIG_DB HSET "TELEMETRY|gnmi" "client_auth" "false"', module_ignore_errors=False) duthost.service(name="telemetry", state="restarted") else: logger.info('client auth is false. No need to restart telemetry')