本文主要通过一个简单的例子介绍一下gNMI仓库下的gnmi_cli的使用,参照fake_server。
运行fake gNMI目标体
首先利用testing/fake/proto/fake.proto生成一个配置文件,使用gen_fake_config工具,创建一个配置文件,在testing/fake/gnmi/cmd/gen_fake_config目录下执行:
# go run ../gen_fake_config/gen_config.go
执行成功,会生成一个config.pb.txt文件。进入gnmi/testing/fake/gnmi/cmd/fake_server目录,在linux平台下生成证书对.pem和.key,分别执行如下命令:
# openssl genrsa -out cert.key 1024
# openssl req -new -x509 -key cert.key -out cert.pem -days 1095
执行成功后,再执行
# ./fake_server --config ../gen_fake_config/config.pb.txt --text --port 8080 --server_crt ./cert.pem --server_key ./cert.key --allow_no_client_auth --logtostderr
其中当前目录为:gnmi/testing/fake/gnmi/cmd/fake_server
执行成功会显示:
I0923 10:59:03.664735 5392 server.go:118] Starting RPC server on address: localhost:8080
然后就可以通过gnmi_cli连接该服务了
gnmi/cmd/gnmi_cli目录下执行go build会生产gnmi_client可执行程序,成功后,执行:
$ gnmi_cli -a localhost:8080 -q '*' -logtostderr -insecure -qt s
gnmi_cli端输出内容如下:
{
"a": {
"b": 4
},
"b": {
"c": "foo"
}
}
{
"a": {
"b": 4
}
}
{
"b": {
"c": "foo"
}
}
{
"a": {
"b": 4
}
}
{
"b": {
"c": "foo"
}
}
{
"b": {
"c": "foo"
}
}
{
"b": {
"c": "foo"
}
}