Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tests/telemetry] Verify default config parameters #1530

Merged
merged 15 commits into from
Apr 24, 2020
48 changes: 48 additions & 0 deletions tests/telemetry/test_telemetry.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Helper functions
def get_dict_stdout(gnmi_out, certs_out):
""" Extracts dictionary from redis output.
"""
gnmi_list = []
gnmi_list = get_list_stdout(gnmi_out) + get_list_stdout(certs_out)
# Elements in list alternate between key and value. Separate them and combine into a dict.
key_list = gnmi_list[0::2]
value_list = gnmi_list[1::2]
params_dict = dict(zip(key_list, value_list))
return params_dict

def get_list_stdout(cmd_out):
result = ""
pra-moh marked this conversation as resolved.
Show resolved Hide resolved
out_list = []
for x in cmd_out:
result = x.encode('UTF-8')
out_list.append(result)
return out_list

# 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']
certs = duthost.shell('/usr/bin/redis-cli -n 4 hgetall "TELEMETRY|certs"', module_ignore_errors=False)['stdout_lines']
d = get_dict_stdout(gnmi, certs)
for key, value in d.items():
pra-moh marked this conversation as resolved.
Show resolved Hide resolved
if str(key) == "client_auth" and str(value) == "true":
assert True, "Client_auth set to true"
if str(key) == "port" and str(value) == "50051":
assert True, "port is set to 50051"
if str(key) == "ca_crt" and str(value) == "/etc/sonic/telemetry/dsmsroot.cer":
assert True, "ca_crt is set to {}".format(str(value))
if str(key) == "server_key" and str(value) == "/etc/sonic/telemetry/streamingtelemetryserver.key":
assert True, "server_key is set to {}".format(str(value))
if str(key) == "server_crt" and str(value) == "/etc/sonic/telemetry/streamingtelemetry.cer":
assert True, "server_crt is set to {}".format(str(value))

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)
status_dict = dict(itertools.izip_longest(*[iter(status_list)] *2, fillvalue=""))
pra-moh marked this conversation as resolved.
Show resolved Hide resolved
for k,v in status_dict.items():
pra-moh marked this conversation as resolved.
Show resolved Hide resolved
if str(k) == "status" and str(v) == "enabled":
assert True, "Telemetry status is enabled"