Skip to content

Add support for gNOI File Services #395

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

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

kanchanavelusamy
Copy link
Contributor

@kanchanavelusamy kanchanavelusamy commented May 16, 2025

Manual CLI Testing Results

Remove RPC

admin@sonic:~$ touch /tmp/test_remove
admin@sonic:~$ ls /tmp/test_remove
/tmp/test_remove
admin@sonic:~$ docker exec -it gnmi gnoi_client -notls -insecure -module File -rpc Remove -jsonin '{"remote_file":"/tmp/test_remove"}'
File Remove
{}
admin@sonic:~$ ls /tmp/test_remove
ls: cannot access '/tmp/test_remove': No such file or directory
admin@sonic:~$ docker exec -it gnmi gnoi_client -notls -insecure -module File -rpc Remove -jsonin '{"remote_file":"/tmp/test_remove"}'
File Remove
panic: rpc error: code = Unknown desc = File not found: /tmp/test_remove

goroutine 1 [running]:
github.com/sonic-net/sonic-gnmi/gnoi_client/file.Remove(0xc000174400, {0xb43dd8, 0xc000079c80})
	/sonic/src/sonic-gnmi/gnoi_client/file/file.go:103 +0x254
main.main()
	/sonic/src/sonic-gnmi/gnoi_client/gnoi_client.go:61 +0x2ad
admin@sonic:~$ 

Stat RPC

admin@sonic:~$ docker exec -it gnmi gnoi_client -notls -insecure -module File -rpc Stat -jsonin '{"path":"/etc/hostname"}'
File Stat
{"stats":[{"path":"/etc/hostname","last_modified":1747382453052000000,"permissions":420,"size":6,"umask":18}]}

Get RPC

admin@sonic:~$ docker exec -it gnmi gnoi_client -notls -insecure -module File -rpc Get -jsonin '{ "path": "/etc/sonic/config_db.json" }'
File Get
panic: rpc error: code = Unimplemented desc = Method file.Get is unimplemented.

goroutine 1 [running]:
github.com/sonic-net/sonic-gnmi/gnoi_client/file.Get(0xc000172400, {0xb43dd8, 0xc000079c80?})
	/sonic/src/sonic-gnmi/gnoi_client/file/file.go:49 +0x354
main.main()
	/sonic/src/sonic-gnmi/gnoi_client/gnoi_client.go:57 +0x225

Put RPC

admin@sonic:~$ docker exec -it gnmi gnoi_client -notls -insecure -module File -rpc Put -jsonin '{ "open": { "path": "/etc/config.txt", "permissions": 420 } }'
File Put
panic: rpc error: code = Unimplemented desc = Method file.Put is unimplemented.

goroutine 1 [running]:
github.com/sonic-net/sonic-gnmi/gnoi_client/file.Put(0xc000174400, {0xb43dd8, 0xc000079c80})
	/sonic/src/sonic-gnmi/gnoi_client/file/file.go:83 +0x294
main.main()
	/sonic/src/sonic-gnmi/gnoi_client/gnoi_client.go:59 +0x24e

TransferToRemote RPC

admin@sonic:~$ docker exec -it gnmi gnoi_client -notls -insecure -module File -rpc TransferToRemote -jsonin '{
>   "local_path": "/etc/config.txt",
>   "remote_download": {
>     "protocol": 1,
>     "remote_url": "scp://user@remotehost:/path/to/destination",
>     "username": "user",
>     "password": "password"
>   }
> }'
File TransferToRemote
panic: rpc error: code = Unimplemented desc = Method file.TransferToRemote is unimplemented.

goroutine 1 [running]:
github.com/sonic-net/sonic-gnmi/gnoi_client/file.TransferToRemote(0xc000174400, {0xb43dd8, 0xc000079c80})
	/sonic/src/sonic-gnmi/gnoi_client/file/file.go:124 +0x254
main.main()
	/sonic/src/sonic-gnmi/gnoi_client/gnoi_client.go:63 +0x2f9
admin@sonic:~$ 


Why I did it

How I did it

How to verify it

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012
  • 202106
  • 202111

Description for the changelog

Link to config_db schema for YANG module changes

A picture of a cute animal (not mandatory but encouraged)

Copy link

linux-foundation-easycla bot commented May 16, 2025

CLA Signed

The committers listed above are authorized under a signed CLA.

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mssonicbld
Copy link

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@kanchanavelusamy kanchanavelusamy marked this pull request as draft June 2, 2025 20:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants