diff --git a/actor/manager/container.go b/actor/manager/container.go index 29619db4..4fa80f27 100644 --- a/actor/manager/container.go +++ b/actor/manager/container.go @@ -15,7 +15,6 @@ package manager import ( "context" - "log" "reflect" "github.com/dapr/go-sdk/actor" @@ -23,8 +22,11 @@ import ( actorErr "github.com/dapr/go-sdk/actor/error" "github.com/dapr/go-sdk/actor/state" dapr "github.com/dapr/go-sdk/client" + "github.com/dapr/kit/logger" ) +var log = logger.NewLogger("dapr.actor.manager") + // Deprecated: use ActorContainerContext instead. type ActorContainer interface { Invoke(methodName string, param []byte) ([]reflect.Value, actorErr.ActorErr) @@ -87,7 +89,7 @@ func NewDefaultActorContainerContext(ctx context.Context, actorID string, impl a } methodType, err := getAbsctractMethodMap(impl) if err != nil { - log.Printf("failed to get absctract method map from registered provider, err = %s", err) + log.Infof("failed to get absctract method map from registered provider, err = %s", err) return nil, actorErr.ErrActorServerInvalid } return &DefaultActorContainerContext{ diff --git a/actor/manager/manager.go b/actor/manager/manager.go index 87696255..5c06f70e 100644 --- a/actor/manager/manager.go +++ b/actor/manager/manager.go @@ -17,7 +17,6 @@ import ( "context" "errors" "fmt" - "log" "reflect" "sync" "unicode" @@ -181,7 +180,7 @@ func (m *DefaultActorManagerContext) InvokeReminder(ctx context.Context, actorID } reminderParams := &api.ActorReminderParams{} if err := m.serializer.Unmarshal(params, reminderParams); err != nil { - log.Printf("failed to unmarshal reminder param, err: %v ", err) + log.Infof("failed to unmarshal reminder param, err: %v ", err) return actorErr.ErrRemindersParamsInvalid } actorContainer, aerr := m.getAndCreateActorContainerIfNotExist(ctx, actorID) @@ -204,7 +203,7 @@ func (m *DefaultActorManagerContext) InvokeTimer(ctx context.Context, actorID, t } timerParams := &api.ActorTimerParam{} if err := m.serializer.Unmarshal(params, timerParams); err != nil { - log.Printf("failed to unmarshal reminder param, err: %v ", err) + log.Infof("failed to unmarshal reminder param, err: %v ", err) return actorErr.ErrTimerParamsInvalid } actorContainer, aerr := m.getAndCreateActorContainerIfNotExist(ctx, actorID) @@ -251,7 +250,7 @@ func suitableMethods(typ reflect.Type) map[string]*MethodType { for m := 0; m < typ.NumMethod(); m++ { method := typ.Method(m) if mt, err := suiteMethod(method); err != nil { - log.Printf("method %s is illegal, err = %s, just skip it", method.Name, err) + log.Infof("method %s is illegal, err = %v, just skip it", method.Name, err) } else { methods[method.Name] = mt } diff --git a/client/client.go b/client/client.go index bcb11642..8d9eaec8 100644 --- a/client/client.go +++ b/client/client.go @@ -19,7 +19,6 @@ import ( "errors" "fmt" "io" - "log" "net" "os" "strconv" @@ -41,6 +40,7 @@ import ( // used to import codec implements. _ "github.com/dapr/go-sdk/actor/codec/impl" + "github.com/dapr/kit/logger" ) const ( @@ -55,7 +55,7 @@ const ( ) var ( - logger = log.New(os.Stdout, "", 0) + log = logger.NewLogger("dapr.client") lock = &sync.Mutex{} _ Client = (*GRPCClient)(nil) defaultClient Client @@ -274,7 +274,7 @@ func NewClientWithAddressContext(ctx context.Context, address string) (client Cl if address == "" { return nil, errors.New("empty address") } - logger.Printf("dapr client initializing for: %s", address) + log.Infof("dapr client initializing for: %s", address) timeoutSeconds, err := getClientTimeoutSeconds() if err != nil { @@ -308,7 +308,7 @@ func NewClientWithAddressContext(ctx context.Context, address string) (client Cl return nil, fmt.Errorf("error creating connection to '%s': %w", address, err) } if hasToken := os.Getenv(apiTokenEnvVarName); hasToken != "" { - logger.Println("client uses API token") + log.Info("client uses API token") } return NewClientWithConnection(conn), nil @@ -334,7 +334,7 @@ func NewClientWithSocket(socket string) (client Client, err error) { if socket == "" { return nil, errors.New("nil socket") } - logger.Printf("dapr client initializing for: %s", socket) + log.Infof("dapr client initializing for: %s", socket) addr := "unix://" + socket conn, err := grpc.Dial( addr, @@ -345,7 +345,7 @@ func NewClientWithSocket(socket string) (client Client, err error) { return nil, fmt.Errorf("error creating connection to '%s': %w", addr, err) } if hasToken := os.Getenv(apiTokenEnvVarName); hasToken != "" { - logger.Println("client uses API token") + log.Info("client uses API token") } return NewClientWithConnection(conn), nil } @@ -385,7 +385,7 @@ func (c *GRPCClient) WithTraceID(ctx context.Context, id string) context.Context if id == "" { return ctx } - logger.Printf("using trace parent ID: %s", id) + log.Infof("using trace parent ID: %s", id) md := metadata.Pairs(traceparentKey, id) return metadata.NewOutgoingContext(ctx, md) } diff --git a/client/client_test.go b/client/client_test.go index 04d070ec..05c01be5 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -143,7 +143,7 @@ func getTestClient(ctx context.Context) (client Client, closer func()) { l := bufconn.Listen(testBufSize) go func() { if err := s.Serve(l); err != nil && err.Error() != "closed" { - logger.Fatalf("test server exited with error: %v", err) + log.Fatalf("test server exited with error: %v", err) } }() @@ -153,7 +153,7 @@ func getTestClient(ctx context.Context) (client Client, closer func()) { c, err := grpc.DialContext(ctx, "", d, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { - logger.Fatalf("failed to dial test context: %v", err) + log.Fatalf("failed to dial test context: %v", err) } closer = func() { @@ -175,12 +175,12 @@ func getTestClientWithSocket(ctx context.Context) (client Client, closer func()) var lc net.ListenConfig l, err := lc.Listen(ctx, "unix", testSocket) if err != nil { - logger.Fatalf("socket test server created with error: %v", err) + log.Fatalf("socket test server created with error: %v", err) } go func() { if err = s.Serve(l); err != nil && err.Error() != "accept unix /tmp/dapr.socket: use of closed network connection" { - logger.Fatalf("socket test server exited with error: %v", err) + log.Fatalf("socket test server exited with error: %v", err) } }() @@ -191,7 +191,7 @@ func getTestClientWithSocket(ctx context.Context) (client Client, closer func()) } if client, err = NewClientWithSocket(testSocket); err != nil { - logger.Fatalf("socket test client created with error: %v", err) + log.Fatalf("socket test client created with error: %v", err) } return diff --git a/client/pubsub.go b/client/pubsub.go index 3996c32e..efd57bb0 100644 --- a/client/pubsub.go +++ b/client/pubsub.go @@ -18,7 +18,6 @@ import ( "encoding/json" "errors" "fmt" - "log" "github.com/google/uuid" @@ -102,7 +101,7 @@ func PublishEventWithRawPayload() PublishEventOption { // PublishEventfromCustomContent serializes an struct and publishes its contents as data (JSON) onto topic in specific pubsub component. // Deprecated: This method is deprecated and will be removed in a future version of the SDK. Please use `PublishEvent` instead. func (c *GRPCClient) PublishEventfromCustomContent(ctx context.Context, pubsubName, topicName string, data interface{}) error { - log.Println("DEPRECATED: client.PublishEventfromCustomContent is deprecated and will be removed in a future version of the SDK. Please use `PublishEvent` instead.") + log.Info("DEPRECATED: client.PublishEventfromCustomContent is deprecated and will be removed in a future version of the SDK. Please use `PublishEvent` instead.") // Perform the JSON marshaling here just in case someone passed a []byte or string as data enc, err := json.Marshal(data) diff --git a/client/wait_test.go b/client/wait_test.go index 516e0085..793af2a9 100644 --- a/client/wait_test.go +++ b/client/wait_test.go @@ -48,7 +48,7 @@ type Server struct { func (s *Server) Close() { close(s.done) if err := s.listener.Close(); err != nil { - logger.Fatal(err) + log.Fatal(err) } os.Remove(unresponsiveUnixSocketFilePath) } @@ -61,7 +61,7 @@ func (s *Server) listenButKeepSilent() { case <-s.done: return default: - logger.Fatal(err) + log.Fatal(err) break } } else { @@ -85,7 +85,7 @@ func createUnresponsiveUnixServer() (*Server, error) { func createUnresponsiveServer(network string, unresponsiveServerAddress string) (*Server, error) { serverListener, err := net.Listen(network, unresponsiveServerAddress) if err != nil { - logger.Fatalf("Creation of test server on network %s and address %s failed with error: %v", + log.Fatalf("Creation of test server on network %s and address %s failed with error: %v", network, unresponsiveServerAddress, err) return nil, err } @@ -109,7 +109,7 @@ func createNonBlockingClient(ctx context.Context, serverAddr string) (client Cli grpc.WithTransportCredentials(insecure.NewCredentials()), ) if err != nil { - logger.Fatal(err) + log.Fatal(err) return nil, err } return NewClientWithConnection(conn), nil diff --git a/examples/actor/README.md b/examples/actor/README.md index 1fb5d058..58c6770d 100644 --- a/examples/actor/README.md +++ b/examples/actor/README.md @@ -84,7 +84,6 @@ dapr stop --app-id actor-serving ## Result - client side ``` -== APP == dapr client initializing for: 127.0.0.1:55776 == APP == get user result = &{abc 123} == APP == get invoke result = laurence == APP == get post result = laurence diff --git a/examples/actor/serving/main.go b/examples/actor/serving/main.go index a3314941..f77ac0f6 100644 --- a/examples/actor/serving/main.go +++ b/examples/actor/serving/main.go @@ -16,7 +16,6 @@ package main import ( "context" "fmt" - "log" "net/http" "github.com/dapr/go-sdk/actor" @@ -24,6 +23,11 @@ import ( "github.com/dapr/go-sdk/examples/actor/api" daprd "github.com/dapr/go-sdk/service/http" + "github.com/dapr/kit/logger" +) + +var ( + log = logger.NewLogger("dapr.examples.actor") ) func testActorFactory() actor.ServerContext { diff --git a/examples/grpc-service/client/main.go b/examples/grpc-service/client/main.go index 8c50f134..c70a6b1e 100644 --- a/examples/grpc-service/client/main.go +++ b/examples/grpc-service/client/main.go @@ -2,14 +2,17 @@ package main import ( "context" - "log" "time" "google.golang.org/grpc" pb "google.golang.org/grpc/examples/helloworld/helloworld" "google.golang.org/grpc/metadata" + + "github.com/dapr/kit/logger" ) +var log = logger.NewLogger("dapr.examples.grpc-client") + const ( address = "localhost:50007" ) @@ -32,5 +35,5 @@ func main() { log.Fatalf("could not greet: %v", err) } - log.Printf("Greeting: %s", r.GetMessage()) + log.Infof("Greeting: %s", r.GetMessage()) } diff --git a/examples/grpc-service/server/main.go b/examples/grpc-service/server/main.go index 464ae8fc..42700ad4 100644 --- a/examples/grpc-service/server/main.go +++ b/examples/grpc-service/server/main.go @@ -2,14 +2,16 @@ package main import ( "context" - "log" "net" daprd "github.com/dapr/go-sdk/service/grpc" "google.golang.org/grpc" pb "google.golang.org/grpc/examples/helloworld/helloworld" + "github.com/dapr/kit/logger" ) +var log = logger.NewLogger("dapr.examples.grpc-server") + const ( port = ":50051" ) @@ -21,7 +23,7 @@ type server struct { // SayHello implements helloworld.GreeterServer func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) { - log.Printf("Received: %v", in.GetName()) + log.Infof("Received: %v", in.GetName()) return &pb.HelloReply{Message: "Hello " + in.GetName()}, nil } diff --git a/examples/hello-world/README.md b/examples/hello-world/README.md index 6ab34b55..0e3ba532 100644 --- a/examples/hello-world/README.md +++ b/examples/hello-world/README.md @@ -83,7 +83,6 @@ name: Run and send order background: true sleep: 5 expected_stdout_lines: - - '== APP == dapr client initializing for: 127.0.0.1:3500' - '== APP == Sending order ID 20' - '== APP == Successfully persisted state' --> @@ -99,7 +98,6 @@ name: Run and get order background: true sleep: 5 expected_stdout_lines: - - '== APP == dapr client initializing for: 127.0.0.1:3500' - '== APP == Getting order' - '== APP == Order ID 20' --> diff --git a/examples/pubsub/sub/sub.go b/examples/pubsub/sub/sub.go index c9089d61..32b2d8c1 100644 --- a/examples/pubsub/sub/sub.go +++ b/examples/pubsub/sub/sub.go @@ -15,13 +15,15 @@ package main import ( "context" - "log" "net/http" "github.com/dapr/go-sdk/service/common" daprd "github.com/dapr/go-sdk/service/http" + "github.com/dapr/kit/logger" ) +var log = logger.NewLogger("dapr.examples.pubsub.sub") + // Subscription to tell the dapr what topic to subscribe. // - PubsubName: is the name of the component configured in the metadata of pubsub.yaml. // - Topic: is the name of the topic to subscribe. @@ -60,11 +62,11 @@ func main() { } func eventHandler(ctx context.Context, e *common.TopicEvent) (retry bool, err error) { - log.Printf("event - PubsubName: %s, Topic: %s, ID: %s, Data: %s", e.PubsubName, e.Topic, e.ID, e.Data) + log.Infof("event - PubsubName: %s, Topic: %s, ID: %s, Data: %s", e.PubsubName, e.Topic, e.ID, e.Data) return false, nil } func importantEventHandler(ctx context.Context, e *common.TopicEvent) (retry bool, err error) { - log.Printf("important event - PubsubName: %s, Topic: %s, ID: %s, Data: %s", e.PubsubName, e.Topic, e.ID, e.Data) + log.Infof("important event - PubsubName: %s, Topic: %s, ID: %s, Data: %s", e.PubsubName, e.Topic, e.ID, e.Data) return false, nil } diff --git a/examples/service/serving/grpc/main.go b/examples/service/serving/grpc/main.go index 7e1fa8ee..7d804a7e 100644 --- a/examples/service/serving/grpc/main.go +++ b/examples/service/serving/grpc/main.go @@ -16,12 +16,14 @@ package main import ( "context" "errors" - "log" "github.com/dapr/go-sdk/service/common" daprd "github.com/dapr/go-sdk/service/grpc" + "github.com/dapr/kit/logger" ) +var log = logger.NewLogger("dapr.examples.service.grpc") + func main() { // create a Dapr service server s, err := daprd.NewService(":50001") @@ -55,7 +57,7 @@ func main() { } func eventHandler(ctx context.Context, e *common.TopicEvent) (retry bool, err error) { - log.Printf("event - PubsubName:%s, Topic:%s, ID:%s, Data: %s", e.PubsubName, e.Topic, e.ID, e.Data) + log.Infof("event - PubsubName:%s, Topic:%s, ID:%s, Data: %s", e.PubsubName, e.Topic, e.ID, e.Data) return false, nil } @@ -64,7 +66,7 @@ func echoHandler(ctx context.Context, in *common.InvocationEvent) (out *common.C err = errors.New("nil invocation parameter") return } - log.Printf( + log.Infof( "echo - ContentType:%s, Verb:%s, QueryString:%s, %s", in.ContentType, in.Verb, in.QueryString, in.Data, ) @@ -77,6 +79,6 @@ func echoHandler(ctx context.Context, in *common.InvocationEvent) (out *common.C } func runHandler(ctx context.Context, in *common.BindingEvent) (out []byte, err error) { - log.Printf("binding - Data:%s, Meta:%v", in.Data, in.Metadata) + log.Infof("binding - Data:%s, Meta:%v", in.Data, in.Metadata) return nil, nil } diff --git a/examples/service/serving/http/main.go b/examples/service/serving/http/main.go index a31dcf99..4dd15c39 100644 --- a/examples/service/serving/http/main.go +++ b/examples/service/serving/http/main.go @@ -16,13 +16,15 @@ package main import ( "context" "errors" - "log" "net/http" "github.com/dapr/go-sdk/service/common" daprd "github.com/dapr/go-sdk/service/http" + "github.com/dapr/kit/logger" ) +var log = logger.NewLogger("dapr.examples.service.http") + func main() { // create a Dapr service (e.g. ":8080", "0.0.0.0:8080", "10.1.1.1:8080" ) s := daprd.NewService(":8080") @@ -53,7 +55,7 @@ func main() { } func eventHandler(ctx context.Context, e *common.TopicEvent) (retry bool, err error) { - log.Printf("event - PubsubName:%s, Topic:%s, ID:%s, Data: %s", e.PubsubName, e.Topic, e.ID, e.Data) + log.Infof("event - PubsubName:%s, Topic:%s, ID:%s, Data: %s", e.PubsubName, e.Topic, e.ID, e.Data) return false, nil } @@ -62,7 +64,7 @@ func echoHandler(ctx context.Context, in *common.InvocationEvent) (out *common.C err = errors.New("invocation parameter required") return } - log.Printf( + log.Infof( "echo - ContentType:%s, Verb:%s, QueryString:%s, %s", in.ContentType, in.Verb, in.QueryString, in.Data, ) @@ -75,6 +77,6 @@ func echoHandler(ctx context.Context, in *common.InvocationEvent) (out *common.C } func runHandler(ctx context.Context, in *common.BindingEvent) (out []byte, err error) { - log.Printf("binding - Data:%s, Meta:%v", in.Data, in.Metadata) + log.Infof("binding - Data:%s, Meta:%v", in.Data, in.Metadata) return nil, nil } diff --git a/examples/socket/README.md b/examples/socket/README.md index 64536f7c..79386a45 100644 --- a/examples/socket/README.md +++ b/examples/socket/README.md @@ -71,7 +71,6 @@ name: Run and send order background: true sleep: 5 expected_stdout_lines: - - '== APP == dapr client initializing for: /tmp/dapr-order-app-grpc.socket' - '== APP == Sending order ID 20' - '== APP == Successfully persisted state' --> @@ -87,7 +86,6 @@ name: Run and get order background: true sleep: 5 expected_stdout_lines: - - '== APP == dapr client initializing for: /tmp/dapr-order-app-grpc.socket' - '== APP == Getting order' - '== APP == Order ID 20' --> diff --git a/go.mod b/go.mod index c5e948f6..e356554c 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.20 require ( github.com/dapr/dapr v1.12.1-0.20231030205344-441017b888c5 + github.com/dapr/kit v0.12.1 github.com/go-chi/chi/v5 v5.0.10 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.3 @@ -18,6 +19,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/kr/text v0.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect go.opentelemetry.io/otel v1.16.0 // indirect go.opentelemetry.io/otel/trace v1.16.0 // indirect golang.org/x/net v0.19.0 // indirect diff --git a/go.sum b/go.sum index 9062f3bb..3f932d69 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,10 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/dapr/dapr v1.12.1-0.20231030205344-441017b888c5 h1:IlC2/2TemJw3dC1P8DsFZ4/ANl6IojDr50B7B8dIGIk= github.com/dapr/dapr v1.12.1-0.20231030205344-441017b888c5/go.mod h1:zHcMel+UwYnMWfvJwpaDr43p95JteXyvBsSjXNnPU+c= +github.com/dapr/kit v0.12.1 h1:XT0CJQQaKRYSzIzZo15O1PAHGUrMGoAavdFRcNVZ+UE= +github.com/dapr/kit v0.12.1/go.mod h1:eNYjsudq3Ij0x8CLWsPturHor56sZRNu5tk2hUiJT80= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-chi/chi/v5 v5.0.10 h1:rLz5avzKpjqxrYwXNfmjkrYYXOyLJd37pz53UFHC6vk= @@ -20,8 +24,13 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 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/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= @@ -45,6 +54,7 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -70,5 +80,6 @@ google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw 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/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=