Add YANG model and unit tests for sonic-telemetry (#10840)
- Why I did it YANG schema is missing for sonic-telemetry - How I did it Added YANG schema to sonic-yang-models and appropriate unit tests inside of test and test_config - How to verify it Build sonic-yang-models python wheels target and verify that unit tests are passing
This commit is contained in:
parent
11f0bffe13
commit
8315d11959
@ -44,7 +44,8 @@ Table of Contents
|
||||
* [Queue](#queue)
|
||||
* [Tacplus Server](#tacplus-server)
|
||||
* [TC to Priority group map](#tc-to-priority-group-map)
|
||||
* [TC to Queue map](#tc-to-queue-map)
|
||||
* [TC to Queue map](#tc-to-queue-map)
|
||||
* [Telemetry](#telemetry)
|
||||
* [Versions](#versions)
|
||||
* [VLAN](#vlan)
|
||||
* [VLAN_MEMBER](#vlan_member)
|
||||
@ -1355,6 +1356,25 @@ name as object key and member list as attribute.
|
||||
}
|
||||
```
|
||||
|
||||
### Telemetry
|
||||
|
||||
```
|
||||
{
|
||||
"TELEMETRY": {
|
||||
"certs": {
|
||||
"ca_crt": "/etc/sonic/telemetry/dsmsroot.cer",
|
||||
"server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer",
|
||||
"server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key"
|
||||
},
|
||||
"gnmi": {
|
||||
"client_auth": "true",
|
||||
"log_level": "2",
|
||||
"port": "50051"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Versions
|
||||
|
||||
This table is where the curret version of the software is recorded.
|
||||
|
@ -126,6 +126,7 @@ setup(
|
||||
'./yang-models/sonic-syslog.yang',
|
||||
'./yang-models/sonic-system-aaa.yang',
|
||||
'./yang-models/sonic-system-tacacs.yang',
|
||||
'./yang-models/sonic-telemetry.yang',
|
||||
'./yang-models/sonic-types.yang',
|
||||
'./yang-models/sonic-versions.yang',
|
||||
'./yang-models/sonic-vlan.yang',
|
||||
@ -184,6 +185,7 @@ setup(
|
||||
'./cvlyang-models/sonic-sflow.yang',
|
||||
'./cvlyang-models/sonic-system-aaa.yang',
|
||||
'./cvlyang-models/sonic-system-tacacs.yang',
|
||||
'./cvlyang-models/sonic-telemetry.yang',
|
||||
'./cvlyang-models/sonic-types.yang',
|
||||
'./cvlyang-models/sonic-versions.yang',
|
||||
'./cvlyang-models/sonic-vlan.yang',
|
||||
|
@ -1045,6 +1045,18 @@
|
||||
"VERSION": "version_1_0_3"
|
||||
}
|
||||
},
|
||||
"TELEMETRY": {
|
||||
"certs": {
|
||||
"ca_crt": "/etc/sonic/telemetry/dsmsroot.cer",
|
||||
"server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer",
|
||||
"server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key"
|
||||
},
|
||||
"gnmi": {
|
||||
"client_auth": "true",
|
||||
"log_level": "2",
|
||||
"port": "50051"
|
||||
}
|
||||
},
|
||||
"FLEX_COUNTER_TABLE": {
|
||||
"PFCWD": {
|
||||
"FLEX_COUNTER_STATUS": "enable"
|
||||
@ -1516,7 +1528,7 @@
|
||||
"pir": "2560000",
|
||||
"type": "STRICT"
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
"WRED_PROFILE": {
|
||||
"Wred1": {
|
||||
|
@ -0,0 +1,17 @@
|
||||
{
|
||||
"TELEMETRY_TABLE_WITH_INCORRECT_CERT": {
|
||||
"desc": "TABLE_WITH_INCORRECT_CERT failure.",
|
||||
"eStrKey": "Pattern"
|
||||
},
|
||||
"TELEMETRY_TABLE_WITH_INCORRECT_CLIENT_AUTH": {
|
||||
"desc": "TABLE_WITH_INCORRECT_CLIENT_AUTH failure",
|
||||
"eStrKey": "InvalidValue"
|
||||
},
|
||||
"TELEMETRY_TABLE_WITH_INCORRECT_PORT": {
|
||||
"desc": "TABLE_WITH_INCORRECT_PORT failure.",
|
||||
"eStrKey": "InvalidValue"
|
||||
},
|
||||
"TELEMETRY_TABLE_WITH_VALID_CONFIG": {
|
||||
"desc": "TABLE WITH VALID CONFIG."
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
{
|
||||
"TELEMETRY_TABLE_WITH_INCORRECT_CERT": {
|
||||
"sonic-telemetry:sonic-telemetry": {
|
||||
"sonic-telemetry:TELEMETRY": {
|
||||
"certs": {
|
||||
"ca_crt": "abcd.config",
|
||||
"server_crt": "a/b/c",
|
||||
"server_key": "123"
|
||||
},
|
||||
"gnmi": {
|
||||
"client_auth": "true",
|
||||
"log_level": "2",
|
||||
"port": "50051"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"TELEMETRY_TABLE_WITH_INCORRECT_CLIENT_AUTH": {
|
||||
"sonic-telemetry:sonic-telemetry": {
|
||||
"sonic-telemetry:TELEMETRY": {
|
||||
"certs": {
|
||||
"ca_crt": "/etc/sonic/telemetry/dsmsroot.cer",
|
||||
"server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer",
|
||||
"server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key"
|
||||
},
|
||||
"gnmi": {
|
||||
"client_auth": "up",
|
||||
"log_level": "2",
|
||||
"port": "50051"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"TELEMETRY_TABLE_WITH_INCORRECT_PORT": {
|
||||
"sonic-telemetry:sonic-telemetry": {
|
||||
"sonic-telemetry:TELEMETRY": {
|
||||
"certs": {
|
||||
"ca_crt": "/etc/sonic/telemetry/dsmsroot.cer",
|
||||
"server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer",
|
||||
"server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key"
|
||||
},
|
||||
"gnmi": {
|
||||
"client_auth": "true",
|
||||
"log_level": "2",
|
||||
"port": "abc"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"TELEMETRY_TABLE_WITH_VALID_CONFIG": {
|
||||
"sonic-telemetry:sonic-telemetry": {
|
||||
"sonic-telemetry:TELEMETRY": {
|
||||
"certs": {
|
||||
"ca_crt": "/etc/sonic/telemetry/dsmsroot.cer",
|
||||
"server_crt": "/etc/sonic/telemetry/streamingtelemetryserver.cer",
|
||||
"server_key": "/etc/sonic/telemetry/streamingtelemetryserver.key"
|
||||
},
|
||||
"gnmi": {
|
||||
"client_auth": "true",
|
||||
"log_level": "2",
|
||||
"port": "50051"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
78
src/sonic-yang-models/yang-models/sonic-telemetry.yang
Normal file
78
src/sonic-yang-models/yang-models/sonic-telemetry.yang
Normal file
@ -0,0 +1,78 @@
|
||||
module sonic-telemetry {
|
||||
|
||||
yang-version 1.1;
|
||||
|
||||
namespace "http://github.com/Azure/sonic-telemetry";
|
||||
prefix telemetry;
|
||||
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
}
|
||||
|
||||
organization
|
||||
"SONiC";
|
||||
|
||||
contact
|
||||
"SONiC";
|
||||
|
||||
description "TELEMETRY YANG Module for SONiC OS";
|
||||
|
||||
revision 2022-05-13 {
|
||||
description "First Revision";
|
||||
}
|
||||
|
||||
container sonic-telemetry {
|
||||
|
||||
container TELEMETRY {
|
||||
|
||||
description "TELEMETRY TABLE part of config_db.json";
|
||||
|
||||
container certs {
|
||||
|
||||
leaf ca_crt {
|
||||
type string {
|
||||
pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).cer';
|
||||
}
|
||||
description "Local path for ca_crt.";
|
||||
}
|
||||
|
||||
leaf server_crt {
|
||||
type string {
|
||||
pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).cer';
|
||||
}
|
||||
description "Local path for server_crt.";
|
||||
}
|
||||
|
||||
leaf server_key {
|
||||
type string {
|
||||
pattern '(/[a-zA-Z0-9_-]+)*/([a-zA-Z0-9_-]+).key';
|
||||
}
|
||||
description "Local path for server_key.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
container gnmi {
|
||||
|
||||
leaf client_auth {
|
||||
type boolean;
|
||||
description "Flag for requiring client auth.";
|
||||
}
|
||||
|
||||
leaf log_level {
|
||||
type uint8 {
|
||||
range 0..100;
|
||||
}
|
||||
description "Log level for gnmi.";
|
||||
}
|
||||
|
||||
leaf port {
|
||||
type inet:port-number;
|
||||
description "Port gnmi runs on.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user