From 426f13696b9053fcff4f4df3dd164c845e4614ac Mon Sep 17 00:00:00 2001 From: Dawei Huang Date: Wed, 15 Jan 2025 17:17:58 +0000 Subject: [PATCH] initial commit. --- gnoi_client/containerz/go.mod | 19 +++++++++++++++++++ gnoi_client/containerz/go.sum | 15 +++++++++++++++ gnoi_client/containerz/list.go | 27 +++++++++++++++++++++++++++ gnoi_client/gnoi_client.go | 8 ++++++++ go.mod | 1 + 5 files changed, 70 insertions(+) create mode 100644 gnoi_client/containerz/go.mod create mode 100644 gnoi_client/containerz/go.sum create mode 100644 gnoi_client/containerz/list.go diff --git a/gnoi_client/containerz/go.mod b/gnoi_client/containerz/go.mod new file mode 100644 index 00000000..1ba68733 --- /dev/null +++ b/gnoi_client/containerz/go.mod @@ -0,0 +1,19 @@ +module gnoi_client/containerz + +go 1.19 + +require ( + github.com/openconfig/gnoi v0.5.0 + github.com/sonic-net/sonic-gnmi v0.0.0 + google.golang.org/grpc v1.64.1 +) + +require ( + golang.org/x/net v0.26.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/text v0.16.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect + google.golang.org/protobuf v1.36.3 // indirect +) + +replace github.com/sonic-net/sonic-gnmi => ../.. diff --git a/gnoi_client/containerz/go.sum b/gnoi_client/containerz/go.sum new file mode 100644 index 00000000..3c7a9121 --- /dev/null +++ b/gnoi_client/containerz/go.sum @@ -0,0 +1,15 @@ +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/openconfig/gnoi v0.5.0 h1:r0cbY1biqAcVLCUjsQjF3UZlU1yZAgbmW24dK0R53MI= +github.com/openconfig/gnoi v0.5.0/go.mod h1:qjMeFac9SfHyedDWjUU/x4pozK4kvgBngdIO1MwjhCs= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= +google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= +google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= +google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= +google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= diff --git a/gnoi_client/containerz/list.go b/gnoi_client/containerz/list.go new file mode 100644 index 00000000..62dde388 --- /dev/null +++ b/gnoi_client/containerz/list.go @@ -0,0 +1,27 @@ +package containerz + +import ( + "context" + "fmt" + "encoding/json" + pb "github.com/openconfig/gnoi/containerz" + "github.com/sonic-net/sonic-gnmi/gnoi_client/utils" + "github.com/sonic-net/sonic-gnmi/gnoi_client/config" + "google.golang.org/grpc" +) + +func List(conn *grpc.ClientConn, ctx context.Context) { + fmt.Println("List Containers") + ctx = utils.SetUserCreds(ctx) + cc := pb.NewContainerzClient(conn) + req := &pb.ListRequest{} + err := json.Unmarshal([]byte(*config.Args), req) + if err != nil { + panic(err.Error()) + } + resp, err := cc.List(ctx, req) + if err != nil { + panic(err.Error()) + } + fmt.Println(resp) +} \ No newline at end of file diff --git a/gnoi_client/gnoi_client.go b/gnoi_client/gnoi_client.go index c4f476cc..1d2d6d70 100644 --- a/gnoi_client/gnoi_client.go +++ b/gnoi_client/gnoi_client.go @@ -7,6 +7,7 @@ import ( "github.com/sonic-net/sonic-gnmi/gnoi_client/system" "github.com/sonic-net/sonic-gnmi/gnoi_client/file" "github.com/sonic-net/sonic-gnmi/gnoi_client/sonic" + "github.com/sonic-net/sonic-gnmi/gnoi_client/containerz" "google.golang.org/grpc" "os" "os/signal" @@ -51,6 +52,13 @@ func main() { default: panic("Invalid RPC Name") } + case "Containerz": + switch *config.Rpc { + case "list": + containerz.List(conn, ctx) + default: + panic("Invalid RPC Name") + } case "Sonic": switch *config.Rpc { case "showtechsupport": diff --git a/go.mod b/go.mod index 1607686a..b3fe0c25 100644 --- a/go.mod +++ b/go.mod @@ -56,4 +56,5 @@ require ( replace ( github.com/Azure/sonic-mgmt-common => ../sonic-mgmt-common golang.org/x/crypto => golang.org/x/crypto v0.24.0 + github.com/sonic-net/sonic-gnmi/gnoi_client/containerz => ./gnoi_client/containerz )