From cdd8ef2bb8d94062958727bd299c84ae65e2e37b Mon Sep 17 00:00:00 2001 From: Mark Sanders Date: Wed, 8 Jan 2025 14:39:29 -0600 Subject: [PATCH 1/5] feat: add network interface capability Signed-off-by: Mark Sanders --- Makefile | 2 +- cmd/cmd.go | 4 +- cmd/network/evpn-test.go | 54 -------- cmd/network/{ => evpn}/evpn-bridge-port.go | 4 +- cmd/network/{ => evpn}/evpn-logical-brige.go | 4 +- cmd/network/{ => evpn}/evpn-svi.go | 4 +- cmd/network/{ => evpn}/evpn-utils.go | 2 +- cmd/network/{ => evpn}/evpn-vrf.go | 4 +- cmd/network/netintf/netintf.go | 67 +++++++++ cmd/network/network.go | 105 +++++++++++++++ go.mod | 52 +++---- go.sum | 135 +++++++++---------- testing/mock-server/stub/stub.go | 2 +- 13 files changed, 275 insertions(+), 164 deletions(-) delete mode 100644 cmd/network/evpn-test.go rename cmd/network/{ => evpn}/evpn-bridge-port.go (98%) rename cmd/network/{ => evpn}/evpn-logical-brige.go (98%) rename cmd/network/{ => evpn}/evpn-svi.go (98%) rename cmd/network/{ => evpn}/evpn-utils.go (99%) rename cmd/network/{ => evpn}/evpn-vrf.go (98%) create mode 100644 cmd/network/netintf/netintf.go create mode 100644 cmd/network/network.go diff --git a/Makefile b/Makefile index f49ad0a..86becc9 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ go-build: go-get: @echo " > Checking if there are any missing dependencies..." - @CGO_ENABLED=0 go get . + @CGO_ENABLED=0 go get ./... go-test: @echo " > Running ginkgo test suites..." diff --git a/cmd/cmd.go b/cmd/cmd.go index 991d4bf..d8306f2 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -16,7 +16,7 @@ import ( "github.com/spf13/cobra" ) -// NewCommand handles the cli for evpn, ipsec, invetory and storage +// NewCommand handles the cli for network, ipsec, invetory and storage func NewCommand() *cobra.Command { // // This is the root command for the CLI @@ -36,7 +36,7 @@ func NewCommand() *cobra.Command { c.AddCommand(inventory.NewInventoryCommand()) c.AddCommand(ipsec.NewIPSecCommand()) c.AddCommand(storage.NewStorageCommand()) - c.AddCommand(network.NewEvpnCommand()) + c.AddCommand(network.NewNetworkCommand()) flags := c.PersistentFlags() flags.String(common.AddrCmdLineArg, "localhost:50151", "address of OPI gRPC server") diff --git a/cmd/network/evpn-test.go b/cmd/network/evpn-test.go deleted file mode 100644 index 9ca11dd..0000000 --- a/cmd/network/evpn-test.go +++ /dev/null @@ -1,54 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// Copyright (c) 2022-2023 Intel Corporation, or its subsidiaries. -// Copyright (c) 2022-2023 Dell Inc, or its subsidiaries. - -// Package network implements the network related CLI commands -package network - -import ( - "log" - - "github.com/spf13/cobra" -) - -// NewEvpnCommand tests the EVPN functionality command -func NewEvpnCommand() *cobra.Command { - cmd := &cobra.Command{ - Use: "evpn", - Aliases: []string{"g"}, - Short: "Tests DPU evpn functionality", - Args: cobra.NoArgs, - Run: func(cmd *cobra.Command, _ []string) { - err := cmd.Help() - if err != nil { - log.Fatalf("[ERROR] %s", err.Error()) - } - }, - } - // Bridge cli's - cmd.AddCommand(CreateLogicalBridge()) - cmd.AddCommand(DeleteLogicalBridge()) - cmd.AddCommand(GetLogicalBridge()) - cmd.AddCommand(ListLogicalBridges()) - cmd.AddCommand(UpdateLogicalBridge()) - // Port cli's - cmd.AddCommand(CreateBridgePort()) - cmd.AddCommand(DeleteBridgePort()) - cmd.AddCommand(GetBridgePort()) - cmd.AddCommand(ListBridgePorts()) - cmd.AddCommand(UpdateBridgePort()) - // VRF cli's - cmd.AddCommand(CreateVRF()) - cmd.AddCommand(DeleteVRF()) - cmd.AddCommand(GetVRF()) - cmd.AddCommand(ListVRFs()) - cmd.AddCommand(UpdateVRF()) - // SVI cli's - cmd.AddCommand(CreateSVI()) - cmd.AddCommand(DeleteSVI()) - cmd.AddCommand(GetSVI()) - cmd.AddCommand(ListSVIs()) - cmd.AddCommand(UpdateSVI()) - - return cmd -} diff --git a/cmd/network/evpn-bridge-port.go b/cmd/network/evpn/evpn-bridge-port.go similarity index 98% rename from cmd/network/evpn-bridge-port.go rename to cmd/network/evpn/evpn-bridge-port.go index 196b24e..7e5591e 100644 --- a/cmd/network/evpn-bridge-port.go +++ b/cmd/network/evpn/evpn-bridge-port.go @@ -3,8 +3,8 @@ // Copyright (c) 2022-2023 Dell Inc, or its subsidiaries. // Copyright (c) 2024 Ericsson AB. -// Package network implements the network related CLI commands -package network +// Package evpn implements the evpn network related CLI commands +package evpn import ( "context" diff --git a/cmd/network/evpn-logical-brige.go b/cmd/network/evpn/evpn-logical-brige.go similarity index 98% rename from cmd/network/evpn-logical-brige.go rename to cmd/network/evpn/evpn-logical-brige.go index 91d637a..8b8c482 100644 --- a/cmd/network/evpn-logical-brige.go +++ b/cmd/network/evpn/evpn-logical-brige.go @@ -3,8 +3,8 @@ // Copyright (c) 2022-2023 Dell Inc, or its subsidiaries. // Copyright (c) 2024 Ericsson AB. -// Package network implements the network related CLI commands -package network +// Package evpn implements the evpn network related CLI commands +package evpn import ( "context" diff --git a/cmd/network/evpn-svi.go b/cmd/network/evpn/evpn-svi.go similarity index 98% rename from cmd/network/evpn-svi.go rename to cmd/network/evpn/evpn-svi.go index 2ebe32b..0bf39bd 100644 --- a/cmd/network/evpn-svi.go +++ b/cmd/network/evpn/evpn-svi.go @@ -3,8 +3,8 @@ // Copyright (c) 2022-2023 Dell Inc, or its subsidiaries. // Copyright (c) 2024 Ericsson AB. -// Package network implements the network related CLI commands -package network +// Package evpn implements the evpn related CLI commands +package evpn import ( "context" diff --git a/cmd/network/evpn-utils.go b/cmd/network/evpn/evpn-utils.go similarity index 99% rename from cmd/network/evpn-utils.go rename to cmd/network/evpn/evpn-utils.go index 3a07975..26daa25 100644 --- a/cmd/network/evpn-utils.go +++ b/cmd/network/evpn/evpn-utils.go @@ -4,7 +4,7 @@ // Copyright (c) 2024 Ericsson AB. // Package network implements the network related CLI commands -package network +package evpn import ( "fmt" diff --git a/cmd/network/evpn-vrf.go b/cmd/network/evpn/evpn-vrf.go similarity index 98% rename from cmd/network/evpn-vrf.go rename to cmd/network/evpn/evpn-vrf.go index 2941c2a..70f4886 100644 --- a/cmd/network/evpn-vrf.go +++ b/cmd/network/evpn/evpn-vrf.go @@ -3,8 +3,8 @@ // Copyright (c) 2022-2023 Dell Inc, or its subsidiaries. // Copyright (c) 2024 Ericsson AB. -// Package network implements the network related CLI commands -package network +// Package evpn implements the evpn network related CLI commands +package evpn import ( "context" diff --git a/cmd/network/netintf/netintf.go b/cmd/network/netintf/netintf.go new file mode 100644 index 0000000..79777d5 --- /dev/null +++ b/cmd/network/netintf/netintf.go @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2025 Dell Inc, or its subsidiaries. + +// Package network implements the network related CLI commands +package netintf + +import ( +// "log" +// "time" + +// "github.com/opiproject/godpu/cmd/common" + "github.com/spf13/cobra" +) + + +// ListNetInterfaces lists all Network Interface details from OPI server +func ListNetInterfaces() *cobra.Command { + var pageSize int32 + var pageToken string + + cmd := &cobra.Command{ + Use: "list-net-interfaces", + Short: "List the network interfaces", + Run: func(c *cobra.Command, _ []string) { +// TODO: Add processing for Network Interface List +// ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + +// tlsFiles, err := c.Flags().GetString(common.TLSFiles) +// cobra.CheckErr(err) + +// addr, err := c.Flags().GetString(common.AddrCmdLineArg) +// cobra.CheckErr(err) + +// evpnClient, err := network.NewLogicalBridge(addr, tlsFiles) +// if err != nil { +// log.Fatalf("could not create gRPC client: %v", err) +// } +// defer cancel() + +// for { +// resp, err := evpnClient.ListLogicalBridges(ctx, pageSize, pageToken) +// if err != nil { +// log.Fatalf("Failed to get items: %v", err) +// } + // Process the server response +// log.Println("List Network Interfaces:") +// for _, lb := range resp.NetInterfaces { +// log.Println("Interface with: ") +// PrintLB(lb) +// } + + // Check if there are more pages to retrieve +// if resp.NextPageToken == "" { + // No more pages, break the loop +// break +// } + // Update the page token for the next request +// pageToken = resp.NextPageToken +// } + }, + } + + cmd.Flags().Int32VarP(&pageSize, "pagesize", "s", 0, "Specify page size") + cmd.Flags().StringVarP(&pageToken, "pagetoken", "t", "", "Specify the token") + + return cmd +} \ No newline at end of file diff --git a/cmd/network/network.go b/cmd/network/network.go new file mode 100644 index 0000000..aa27ff1 --- /dev/null +++ b/cmd/network/network.go @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2022-2023 Intel Corporation, or its subsidiaries. +// Copyright (c) 2024 Dell Inc, or its subsidiaries. + +// Package network implements the network related CLI commands +package network + +import ( + "log" + "time" + + "github.com/opiproject/godpu/cmd/common" + "github.com/opiproject/godpu/cmd/network/netintf" + "github.com/opiproject/godpu/cmd/network/evpn" + "github.com/spf13/cobra" +) + +// NewNetworkCommand tests the Network functionality command +func NewNetworkCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "network", + Aliases: []string{"g"}, + Short: "Tests DPU networking functionality", + Args: cobra.NoArgs, + Run: func(cmd *cobra.Command, _ []string) { + err := cmd.Help() + if err != nil { + log.Fatalf("[ERROR] %s", err.Error()) + } + }, + } + + flags := cmd.PersistentFlags() + flags.Duration(common.TimeoutCmdLineArg, 10*time.Second, "timeout for a cmd") + + cmd.AddCommand(NewEvpnCommand()) + cmd.AddCommand(NewNetIntfCommand()) + + return cmd +} + +// NewNetworkCommand tests the Network functionality command +func NewNetIntfCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "intf", + Aliases: []string{"g"}, + Short: "Tests DPU network interface functionality", + Args: cobra.NoArgs, + Run: func(cmd *cobra.Command, _ []string) { + err := cmd.Help() + if err != nil { + log.Fatalf("[ERROR] %s", err.Error()) + } + }, + } + + flags := cmd.PersistentFlags() + flags.Duration(common.TimeoutCmdLineArg, 10*time.Second, "timeout for a cmd") + + cmd.AddCommand(netintf.ListNetInterfaces()) + + return cmd +} + +// NewEvpnCommand tests the EVPN functionality command +func NewEvpnCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "evpn", + Aliases: []string{"g"}, + Short: "Tests DPU evpn functionality", + Args: cobra.NoArgs, + Run: func(cmd *cobra.Command, _ []string) { + err := cmd.Help() + if err != nil { + log.Fatalf("[ERROR] %s", err.Error()) + } + }, + } + // Bridge cli's + cmd.AddCommand(evpn.CreateLogicalBridge()) + cmd.AddCommand(evpn.DeleteLogicalBridge()) + cmd.AddCommand(evpn.GetLogicalBridge()) + cmd.AddCommand(evpn.ListLogicalBridges()) + cmd.AddCommand(evpn.UpdateLogicalBridge()) + // Port cli's + cmd.AddCommand(evpn.CreateBridgePort()) + cmd.AddCommand(evpn.DeleteBridgePort()) + cmd.AddCommand(evpn.GetBridgePort()) + cmd.AddCommand(evpn.ListBridgePorts()) + cmd.AddCommand(evpn.UpdateBridgePort()) + // VRF cli's + cmd.AddCommand(evpn.CreateVRF()) + cmd.AddCommand(evpn.DeleteVRF()) + cmd.AddCommand(evpn.GetVRF()) + cmd.AddCommand(evpn.ListVRFs()) + cmd.AddCommand(evpn.UpdateVRF()) + // SVI cli's + cmd.AddCommand(evpn.CreateSVI()) + cmd.AddCommand(evpn.DeleteSVI()) + cmd.AddCommand(evpn.GetSVI()) + cmd.AddCommand(evpn.ListSVIs()) + cmd.AddCommand(evpn.UpdateSVI()) + + return cmd +} diff --git a/go.mod b/go.mod index 3de127c..72595de 100644 --- a/go.mod +++ b/go.mod @@ -1,44 +1,44 @@ module github.com/opiproject/godpu -go 1.19 +go 1.22.0 + +toolchain go1.23.4 require ( github.com/PraserX/ipconv v1.2.0 - github.com/go-chi/chi v1.5.5 - github.com/go-ping/ping v1.1.0 - github.com/google/uuid v1.5.0 + github.com/go-chi/chi/v5 v5.2.0 + github.com/go-ping/ping v1.2.0 + github.com/google/uuid v1.6.0 github.com/lithammer/fuzzysearch v1.1.8 - github.com/onsi/ginkgo/v2 v2.14.0 - github.com/onsi/gomega v1.30.0 - github.com/opiproject/opi-api v0.0.0-20240304222410-5dba226aaa9e - github.com/spf13/cobra v1.8.0 - github.com/stretchr/testify v1.8.4 - go.einride.tech/aip v0.66.0 - golang.org/x/net v0.20.0 - golang.org/x/text v0.14.0 - google.golang.org/grpc v1.60.1 - google.golang.org/protobuf v1.32.0 + github.com/onsi/ginkgo/v2 v2.22.2 + github.com/onsi/gomega v1.36.2 + github.com/opiproject/opi-api v0.0.0-20241209203403-595a3a1a838b + github.com/spf13/cobra v1.8.1 + github.com/stretchr/testify v1.10.0 + go.einride.tech/aip v0.68.1 + golang.org/x/net v0.33.0 + golang.org/x/text v0.21.0 + google.golang.org/grpc v1.69.2 + google.golang.org/protobuf v1.36.1 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-logr/logr v1.3.0 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect + github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kr/text v0.2.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.9.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/objx v0.5.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.16.1 // indirect - google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect + github.com/stretchr/objx v0.5.2 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/tools v0.28.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250102185135-69823020774d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index ebaa5fd..99bbee7 100644 --- a/go.sum +++ b/go.sum @@ -1,72 +1,70 @@ github.com/PraserX/ipconv v1.2.0 h1:3bboP9EDfsuMF5C3qM25OmZA4+cCfk1Ahpx8zn5G2tM= github.com/PraserX/ipconv v1.2.0/go.mod h1:aBiLM1bDAjp1++Q0Sp3IrGbPd49b74IUgoRWod6EtPY= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-chi/chi v1.5.5 h1:vOB/HbEMt9QqBqErz07QehcOKHaWFtuj87tTDVz2qXE= -github.com/go-chi/chi v1.5.5/go.mod h1:C9JqLr3tIYjDOZpzn+BCuxY8z8vmca43EeMgyZt7irw= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-ping/ping v1.1.0 h1:3MCGhVX4fyEUuhsfwPrsEdQw6xspHkv5zHsiSoDFZYw= -github.com/go-ping/ping v1.1.0/go.mod h1:xIFjORFzTxqIV/tDVGO4eDy/bLuSyawEeojSm3GfRGk= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= -github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/go-chi/chi/v5 v5.2.0 h1:Aj1EtB0qR2Rdo2dG4O94RIU35w2lvQSj6BRA4+qwFL0= +github.com/go-chi/chi/v5 v5.2.0/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ping/ping v1.2.0 h1:vsJ8slZBZAXNCK4dPcI2PEE9eM9n9RbXbGouVQ/Y4yQ= +github.com/go-ping/ping v1.2.0/go.mod h1:xIFjORFzTxqIV/tDVGO4eDy/bLuSyawEeojSm3GfRGk= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg= +github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8hLWZ5SPcfI+3IDNk= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 h1:VNqngBF40hVlDloBruUehVYC3ArSgIyScOAyMRqBxRg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1/go.mod h1:RBRO7fro65R6tjKzYgLAFo0t1QEXY1Dp+i/bvpRiqiQ= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lithammer/fuzzysearch v1.1.8 h1:/HIuJnjHuXS8bKaiTMeeDlW2/AyIWk2brx1V8LFgLN4= github.com/lithammer/fuzzysearch v1.1.8/go.mod h1:IdqeyBClc3FFqSzYq/MXESsS4S0FsZ5ajtkr5xPLts4= -github.com/onsi/ginkgo/v2 v2.14.0 h1:vSmGj2Z5YPb9JwCWT6z6ihcUvDhuXLc3sJiqd3jMKAY= -github.com/onsi/ginkgo/v2 v2.14.0/go.mod h1:JkUdW7JkN0V6rFvsHcJ478egV3XH9NxpD27Hal/PhZw= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= -github.com/opiproject/opi-api v0.0.0-20240118183513-e44db269fba4 h1:YBjvYWQQAbNIGsAXvB6FwL9Encr1nzo3/w+bB/tXltM= -github.com/opiproject/opi-api v0.0.0-20240118183513-e44db269fba4/go.mod h1:92pv4ulvvPMuxCJ9ND3aYbmBfEMLx0VCjpkiR7ZTqPY= -github.com/opiproject/opi-api v0.0.0-20240304222410-5dba226aaa9e h1:jUa7DmVLjzLKg051y7rYyCD0NAbEHZQMimM1451D74I= -github.com/opiproject/opi-api v0.0.0-20240304222410-5dba226aaa9e/go.mod h1:92pv4ulvvPMuxCJ9ND3aYbmBfEMLx0VCjpkiR7ZTqPY= +github.com/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU= +github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk= +github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= +github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= +github.com/opiproject/opi-api v0.0.0-20241209203403-595a3a1a838b h1:4k7lhYkkjo+jowQ+vmOU9LfsLipw3QMqfedZWtczMdw= +github.com/opiproject/opi-api v0.0.0-20241209203403-595a3a1a838b/go.mod h1:92pv4ulvvPMuxCJ9ND3aYbmBfEMLx0VCjpkiR7ZTqPY= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.einride.tech/aip v0.66.0 h1:XfV+NQX6L7EOYK11yoHHFtndeaWh3KbD9/cN/6iWEt8= -go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M= +go.einride.tech/aip v0.68.1 h1:16/AfSxcQISGN5z9C5lM+0mLYXihrHbQ1onvYTr93aQ= +go.einride.tech/aip v0.68.1/go.mod h1:XaFtaj4HuA3Zwk9xoBtTWgNubZ0ZZXv9BZJCkuKuWbg= +go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= +go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= +go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= +go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= +go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= +go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= +go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= +go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= +go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -76,24 +74,23 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -102,31 +99,27 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= -golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= -google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= -google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= -google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/genproto/googleapis/api v0.0.0-20250102185135-69823020774d h1:H8tOf8XM88HvKqLTxe755haY6r1fqqzLbEnfrmLXlSA= +google.golang.org/genproto/googleapis/api v0.0.0-20250102185135-69823020774d/go.mod h1:2v7Z7gP2ZUOGsaFyxATQSRoBnKygqVq2Cwnvom7QiqY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= +google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= +google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/testing/mock-server/stub/stub.go b/testing/mock-server/stub/stub.go index 3e4fb4e..2df1008 100644 --- a/testing/mock-server/stub/stub.go +++ b/testing/mock-server/stub/stub.go @@ -14,7 +14,7 @@ import ( "golang.org/x/text/cases" "golang.org/x/text/language" - "github.com/go-chi/chi" + "github.com/go-chi/chi/v5" ) // Options server options From f59fbf6e30da93206876fb6b2180aee84f200391 Mon Sep 17 00:00:00 2001 From: Mark Sanders Date: Wed, 8 Jan 2025 15:53:07 -0600 Subject: [PATCH 2/5] fix(godpu): update dockerfile for new alpine and golang versions Signed-off-by: Mark Sanders --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 504e20e..a2ff20b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright (c) 2022-2023 Dell Inc, or its subsidiaries. -FROM docker.io/library/golang:1.21.5-alpine3.17 as builder +FROM docker.io/library/golang:1.23.4-alpine3.21 as builder WORKDIR /app @@ -15,7 +15,7 @@ ENV CGO_ENABLED=0 COPY . . RUN go build -v -o /dpu . -FROM alpine:3.19 +FROM alpine:3.21 WORKDIR / From 7b06a2d28b417831eaf362afcd09a8032d0e9dde Mon Sep 17 00:00:00 2001 From: Mark Sanders Date: Wed, 8 Jan 2025 17:19:29 -0600 Subject: [PATCH 3/5] fix(godpu): fix docker-compose evpn test command syntax Signed-off-by: Mark Sanders --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f9b73e9..d1bf31b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ # Copyright (c) 2022-2023 Dell Inc, or its subsidiaries. # Copyright (C) 2023 Intel Corporation --- -version: "3.7" +# version: "3.7" - version is obsolete and can be removed/commented out services: spdk: image: docker.io/opiproject/spdk:v24.01 @@ -161,7 +161,7 @@ services: depends_on: opi-evpn-server: condition: service_healthy - command: evpn create-vrf --name blue --vni 100 --vtep 10.0.0.100/24 --loopback 10.100.0.1/24 --addr opi-evpn-server:50151 + command: network evpn create-vrf --name blue --vni 100 --vtep 10.0.0.100/24 --loopback 10.100.0.1/24 --addr opi-evpn-server:50151 opi-smbios-test: build: From 19a450ea1306424b55ab353111aa970e0aecdedb Mon Sep 17 00:00:00 2001 From: Mark Sanders Date: Thu, 9 Jan 2025 11:43:00 -0600 Subject: [PATCH 4/5] fix(godpu): update alpine versions in docker-compose Signed-off-by: Mark Sanders --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index d1bf31b..295b337 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -96,7 +96,7 @@ services: sleep infinity' redis: - image: redis:7.2.3-alpine3.18 + image: redis:7.2.7-alpine3.21 networks: - opi healthcheck: @@ -198,7 +198,7 @@ services: /dpu storage delete backend nvme controller --addr=opi-spdk-server:50051 --name "$$nvmf0" && \ opi-test: - image: docker.io/library/alpine:3.19 + image: docker.io/library/alpine:3.21 networks: - opi depends_on: From b654131ad5b1e8cb6f61b5730edc9884e9ea5710 Mon Sep 17 00:00:00 2001 From: Mark Sanders Date: Thu, 9 Jan 2025 17:22:59 -0600 Subject: [PATCH 5/5] fix(ci): correct opi-test timeout by waiting after start Signed-off-by: Mark Sanders --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 295b337..fceb9e0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -209,7 +209,7 @@ services: opi-storage-test: condition: service_completed_successfully command: | - sh -c 'exit 0' + sh -c 'sleep 60 && exit 0' networks: opi: