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
@ -45,6 +45,7 @@ Table of Contents
|
|||||||
* [Tacplus Server](#tacplus-server)
|
* [Tacplus Server](#tacplus-server)
|
||||||
* [TC to Priority group map](#tc-to-priority-group-map)
|
* [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)
|
* [Versions](#versions)
|
||||||
* [VLAN](#vlan)
|
* [VLAN](#vlan)
|
||||||
* [VLAN_MEMBER](#vlan_member)
|
* [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
|
### Versions
|
||||||
|
|
||||||
This table is where the curret version of the software is recorded.
|
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-syslog.yang',
|
||||||
'./yang-models/sonic-system-aaa.yang',
|
'./yang-models/sonic-system-aaa.yang',
|
||||||
'./yang-models/sonic-system-tacacs.yang',
|
'./yang-models/sonic-system-tacacs.yang',
|
||||||
|
'./yang-models/sonic-telemetry.yang',
|
||||||
'./yang-models/sonic-types.yang',
|
'./yang-models/sonic-types.yang',
|
||||||
'./yang-models/sonic-versions.yang',
|
'./yang-models/sonic-versions.yang',
|
||||||
'./yang-models/sonic-vlan.yang',
|
'./yang-models/sonic-vlan.yang',
|
||||||
@ -184,6 +185,7 @@ setup(
|
|||||||
'./cvlyang-models/sonic-sflow.yang',
|
'./cvlyang-models/sonic-sflow.yang',
|
||||||
'./cvlyang-models/sonic-system-aaa.yang',
|
'./cvlyang-models/sonic-system-aaa.yang',
|
||||||
'./cvlyang-models/sonic-system-tacacs.yang',
|
'./cvlyang-models/sonic-system-tacacs.yang',
|
||||||
|
'./cvlyang-models/sonic-telemetry.yang',
|
||||||
'./cvlyang-models/sonic-types.yang',
|
'./cvlyang-models/sonic-types.yang',
|
||||||
'./cvlyang-models/sonic-versions.yang',
|
'./cvlyang-models/sonic-versions.yang',
|
||||||
'./cvlyang-models/sonic-vlan.yang',
|
'./cvlyang-models/sonic-vlan.yang',
|
||||||
|
@ -1045,6 +1045,18 @@
|
|||||||
"VERSION": "version_1_0_3"
|
"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": {
|
"FLEX_COUNTER_TABLE": {
|
||||||
"PFCWD": {
|
"PFCWD": {
|
||||||
"FLEX_COUNTER_STATUS": "enable"
|
"FLEX_COUNTER_STATUS": "enable"
|
||||||
|
@ -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