diff --git a/general/dubbo3/protobuf/dubbo3/helloworld.pb.go b/general/dubbo3/protobuf/dubbo3/helloworld.pb.go new file mode 100644 index 000000000..669483e18 --- /dev/null +++ b/general/dubbo3/protobuf/dubbo3/helloworld.pb.go @@ -0,0 +1,619 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: helloworld.proto + +package protobuf + +import ( + context "context" + fmt "fmt" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + math "math" +) + +import ( + dubboConstant "github.com/apache/dubbo-go/common/constant" + "github.com/apache/dubbo-go/protocol" + dgrpc "github.com/apache/dubbo-go/protocol/grpc" + "github.com/apache/dubbo-go/protocol/invocation" + dubbo3 "github.com/dubbogo/triple/pkg/triple" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +// The request message containing the user's name. +type Dubbo3HelloRequest struct { + Myname string `protobuf:"bytes,1,opt,name=myname,proto3" json:"myname,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Dubbo3HelloRequest) Reset() { *m = Dubbo3HelloRequest{} } +func (m *Dubbo3HelloRequest) String() string { return proto.CompactTextString(m) } +func (*Dubbo3HelloRequest) ProtoMessage() {} +func (*Dubbo3HelloRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_17b8c58d586b62f2, []int{0} +} + +func (m *Dubbo3HelloRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Dubbo3HelloRequest.Unmarshal(m, b) +} +func (m *Dubbo3HelloRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Dubbo3HelloRequest.Marshal(b, m, deterministic) +} +func (m *Dubbo3HelloRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_Dubbo3HelloRequest.Merge(m, src) +} +func (m *Dubbo3HelloRequest) XXX_Size() int { + return xxx_messageInfo_Dubbo3HelloRequest.Size(m) +} +func (m *Dubbo3HelloRequest) XXX_DiscardUnknown() { + xxx_messageInfo_Dubbo3HelloRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_Dubbo3HelloRequest proto.InternalMessageInfo + +func (m *Dubbo3HelloRequest) GetMyname() string { + if m != nil { + return m.Myname + } + return "" +} + +// The response message containing the greetings +type Dubbo3HelloReply struct { + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Dubbo3HelloReply) Reset() { *m = Dubbo3HelloReply{} } +func (m *Dubbo3HelloReply) String() string { return proto.CompactTextString(m) } +func (*Dubbo3HelloReply) ProtoMessage() {} +func (*Dubbo3HelloReply) Descriptor() ([]byte, []int) { + return fileDescriptor_17b8c58d586b62f2, []int{1} +} + +func (m *Dubbo3HelloReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Dubbo3HelloReply.Unmarshal(m, b) +} +func (m *Dubbo3HelloReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Dubbo3HelloReply.Marshal(b, m, deterministic) +} +func (m *Dubbo3HelloReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_Dubbo3HelloReply.Merge(m, src) +} +func (m *Dubbo3HelloReply) XXX_Size() int { + return xxx_messageInfo_Dubbo3HelloReply.Size(m) +} +func (m *Dubbo3HelloReply) XXX_DiscardUnknown() { + xxx_messageInfo_Dubbo3HelloReply.DiscardUnknown(m) +} + +var xxx_messageInfo_Dubbo3HelloReply proto.InternalMessageInfo + +func (m *Dubbo3HelloReply) GetMsg() string { + if m != nil { + return m.Msg + } + return "" +} + +type BigData struct { + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + WantSize int32 `protobuf:"varint,2,opt,name=wantSize,proto3" json:"wantSize,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BigData) Reset() { *m = BigData{} } +func (m *BigData) String() string { return proto.CompactTextString(m) } +func (*BigData) ProtoMessage() {} +func (*BigData) Descriptor() ([]byte, []int) { + return fileDescriptor_17b8c58d586b62f2, []int{2} +} + +func (m *BigData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BigData.Unmarshal(m, b) +} +func (m *BigData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BigData.Marshal(b, m, deterministic) +} +func (m *BigData) XXX_Merge(src proto.Message) { + xxx_messageInfo_BigData.Merge(m, src) +} +func (m *BigData) XXX_Size() int { + return xxx_messageInfo_BigData.Size(m) +} +func (m *BigData) XXX_DiscardUnknown() { + xxx_messageInfo_BigData.DiscardUnknown(m) +} + +var xxx_messageInfo_BigData proto.InternalMessageInfo + +func (m *BigData) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *BigData) GetWantSize() int32 { + if m != nil { + return m.WantSize + } + return 0 +} + +func init() { + proto.RegisterType((*Dubbo3HelloRequest)(nil), "protobuf.Dubbo3HelloRequest") + proto.RegisterType((*Dubbo3HelloReply)(nil), "protobuf.Dubbo3HelloReply") + proto.RegisterType((*BigData)(nil), "protobuf.BigData") +} + +func init() { proto.RegisterFile("helloworld.proto", fileDescriptor_17b8c58d586b62f2) } + +var fileDescriptor_17b8c58d586b62f2 = []byte{ + // 291 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x91, 0xcf, 0x4a, 0xc3, 0x40, + 0x10, 0xc6, 0xdd, 0x56, 0x6b, 0x1d, 0x5a, 0x1b, 0xe7, 0x20, 0x25, 0x78, 0x28, 0xc1, 0x43, 0x41, + 0x09, 0xd2, 0x82, 0x20, 0xde, 0x42, 0xc1, 0x1e, 0x14, 0x42, 0xa2, 0xf4, 0x3c, 0x31, 0x6b, 0x1a, + 0x48, 0xb2, 0x71, 0xbb, 0xa1, 0xc4, 0xc7, 0x11, 0x7c, 0x4f, 0xd9, 0x6d, 0x54, 0x4a, 0xf1, 0x20, + 0x9e, 0x76, 0xfe, 0x7c, 0xf3, 0xcd, 0x8f, 0x59, 0xb0, 0x96, 0x3c, 0xcb, 0xc4, 0x5a, 0xc8, 0x2c, + 0x76, 0x4b, 0x29, 0x94, 0xc0, 0xae, 0x79, 0xa2, 0xea, 0xc5, 0xb9, 0x04, 0x9c, 0x55, 0x51, 0x24, + 0xa6, 0x73, 0xad, 0x09, 0xf8, 0x6b, 0xc5, 0x57, 0x0a, 0x4f, 0xa1, 0x93, 0xd7, 0x05, 0xe5, 0x7c, + 0xc8, 0x46, 0x6c, 0x7c, 0x14, 0x34, 0x99, 0x73, 0x0e, 0xd6, 0x96, 0xba, 0xcc, 0x6a, 0xb4, 0xa0, + 0x9d, 0xaf, 0x92, 0x46, 0xa8, 0x43, 0xe7, 0x06, 0x0e, 0xbd, 0x34, 0x99, 0x91, 0x22, 0x44, 0xd8, + 0x8f, 0x49, 0x91, 0xe9, 0xf6, 0x02, 0x13, 0xa3, 0x0d, 0xdd, 0x35, 0x15, 0x2a, 0x4c, 0xdf, 0xf8, + 0xb0, 0x35, 0x62, 0xe3, 0x83, 0xe0, 0x3b, 0x9f, 0x7c, 0xb4, 0xa0, 0xbf, 0xd9, 0x70, 0x27, 0x39, + 0x57, 0x5c, 0xa2, 0x0f, 0xc7, 0x9b, 0x42, 0x48, 0xb5, 0xd9, 0x8a, 0x67, 0xee, 0x17, 0xbd, 0xbb, + 0x8b, 0x6e, 0xdb, 0xbf, 0x74, 0xcb, 0xac, 0x76, 0xf6, 0xc6, 0xec, 0x8a, 0xe1, 0x03, 0x0c, 0xb6, + 0x1d, 0x27, 0xff, 0xb1, 0xc4, 0x5b, 0xe8, 0x7b, 0x69, 0x12, 0x2a, 0xc9, 0x29, 0x7f, 0xd4, 0xc7, + 0x3b, 0xf9, 0x91, 0x37, 0x67, 0xb0, 0x77, 0x4b, 0x0d, 0xcb, 0x35, 0xf4, 0xbc, 0x34, 0x79, 0x2a, + 0x48, 0xd6, 0x7f, 0x99, 0xf5, 0x2e, 0xc0, 0x12, 0x32, 0x71, 0xa9, 0xa4, 0xe7, 0x25, 0x77, 0x63, + 0x4d, 0xe5, 0x0d, 0x0c, 0xd6, 0x42, 0x7f, 0xb3, 0xaf, 0x27, 0x7c, 0xf6, 0xde, 0x6a, 0xcf, 0xef, + 0x17, 0x51, 0xc7, 0x18, 0x4c, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x68, 0x42, 0xd4, 0x23, 0x08, + 0x02, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// Dubbo3GreeterClient is the client API for Dubbo3Greeter service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type Dubbo3GreeterClient interface { + // Sends a greeting + Dubbo3SayHello(ctx context.Context, opts ...grpc.CallOption) (Dubbo3Greeter_Dubbo3SayHelloClient, error) + Dubbo3SayHello2(ctx context.Context, in *Dubbo3HelloRequest, opts ...grpc.CallOption) (*Dubbo3HelloReply, error) + BigStreamTest(ctx context.Context, opts ...grpc.CallOption) (Dubbo3Greeter_BigStreamTestClient, error) + BigUnaryTest(ctx context.Context, in *BigData, opts ...grpc.CallOption) (*BigData, error) +} + +type dubbo3GreeterClient struct { + cc grpc.ClientConnInterface +} + +func NewDubbo3GreeterClient(cc grpc.ClientConnInterface) Dubbo3GreeterClient { + return &dubbo3GreeterClient{cc} +} + +func (c *dubbo3GreeterClient) Dubbo3SayHello(ctx context.Context, opts ...grpc.CallOption) (Dubbo3Greeter_Dubbo3SayHelloClient, error) { + stream, err := c.cc.NewStream(ctx, &_Dubbo3Greeter_serviceDesc.Streams[0], "/protobuf.Dubbo3Greeter/Dubbo3SayHello", opts...) + if err != nil { + return nil, err + } + x := &dubbo3GreeterDubbo3SayHelloClient{stream} + return x, nil +} + +type Dubbo3Greeter_Dubbo3SayHelloClient interface { + Send(*Dubbo3HelloRequest) error + Recv() (*Dubbo3HelloReply, error) + grpc.ClientStream +} + +type dubbo3GreeterDubbo3SayHelloClient struct { + grpc.ClientStream +} + +func (x *dubbo3GreeterDubbo3SayHelloClient) Send(m *Dubbo3HelloRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *dubbo3GreeterDubbo3SayHelloClient) Recv() (*Dubbo3HelloReply, error) { + m := new(Dubbo3HelloReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *dubbo3GreeterClient) Dubbo3SayHello2(ctx context.Context, in *Dubbo3HelloRequest, opts ...grpc.CallOption) (*Dubbo3HelloReply, error) { + out := new(Dubbo3HelloReply) + err := c.cc.Invoke(ctx, "/protobuf.Dubbo3Greeter/Dubbo3SayHello2", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dubbo3GreeterClient) BigStreamTest(ctx context.Context, opts ...grpc.CallOption) (Dubbo3Greeter_BigStreamTestClient, error) { + stream, err := c.cc.NewStream(ctx, &_Dubbo3Greeter_serviceDesc.Streams[1], "/protobuf.Dubbo3Greeter/BigStreamTest", opts...) + if err != nil { + return nil, err + } + x := &dubbo3GreeterBigStreamTestClient{stream} + return x, nil +} + +type Dubbo3Greeter_BigStreamTestClient interface { + Send(*BigData) error + Recv() (*BigData, error) + grpc.ClientStream +} + +type dubbo3GreeterBigStreamTestClient struct { + grpc.ClientStream +} + +func (x *dubbo3GreeterBigStreamTestClient) Send(m *BigData) error { + return x.ClientStream.SendMsg(m) +} + +func (x *dubbo3GreeterBigStreamTestClient) Recv() (*BigData, error) { + m := new(BigData) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *dubbo3GreeterClient) BigUnaryTest(ctx context.Context, in *BigData, opts ...grpc.CallOption) (*BigData, error) { + out := new(BigData) + err := c.cc.Invoke(ctx, "/protobuf.Dubbo3Greeter/BigUnaryTest", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Dubbo3GreeterServer is the server API for Dubbo3Greeter service. +type Dubbo3GreeterServer interface { + // Sends a greeting + Dubbo3SayHello(Dubbo3Greeter_Dubbo3SayHelloServer) error + Dubbo3SayHello2(context.Context, *Dubbo3HelloRequest) (*Dubbo3HelloReply, error) + BigStreamTest(Dubbo3Greeter_BigStreamTestServer) error + BigUnaryTest(context.Context, *BigData) (*BigData, error) +} + +// UnimplementedDubbo3GreeterServer can be embedded to have forward compatible implementations. +type UnimplementedDubbo3GreeterServer struct { +} + +func (*UnimplementedDubbo3GreeterServer) Dubbo3SayHello(srv Dubbo3Greeter_Dubbo3SayHelloServer) error { + return status.Errorf(codes.Unimplemented, "method Dubbo3SayHello not implemented") +} +func (*UnimplementedDubbo3GreeterServer) Dubbo3SayHello2(ctx context.Context, req *Dubbo3HelloRequest) (*Dubbo3HelloReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Dubbo3SayHello2 not implemented") +} +func (*UnimplementedDubbo3GreeterServer) BigStreamTest(srv Dubbo3Greeter_BigStreamTestServer) error { + return status.Errorf(codes.Unimplemented, "method BigStreamTest not implemented") +} +func (*UnimplementedDubbo3GreeterServer) BigUnaryTest(ctx context.Context, req *BigData) (*BigData, error) { + return nil, status.Errorf(codes.Unimplemented, "method BigUnaryTest not implemented") +} + +func RegisterDubbo3GreeterServer(s *grpc.Server, srv Dubbo3GreeterServer) { + s.RegisterService(&_Dubbo3Greeter_serviceDesc, srv) +} + +func _Dubbo3Greeter_Dubbo3SayHello_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(Dubbo3GreeterServer).Dubbo3SayHello(&dubbo3GreeterDubbo3SayHelloServer{stream}) +} + +type Dubbo3Greeter_Dubbo3SayHelloServer interface { + Send(*Dubbo3HelloReply) error + Recv() (*Dubbo3HelloRequest, error) + grpc.ServerStream +} + +type dubbo3GreeterDubbo3SayHelloServer struct { + grpc.ServerStream +} + +func (x *dubbo3GreeterDubbo3SayHelloServer) Send(m *Dubbo3HelloReply) error { + return x.ServerStream.SendMsg(m) +} + +func (x *dubbo3GreeterDubbo3SayHelloServer) Recv() (*Dubbo3HelloRequest, error) { + m := new(Dubbo3HelloRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _Dubbo3Greeter_Dubbo3SayHello2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Dubbo3HelloRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(Dubbo3GreeterServer).Dubbo3SayHello2(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.Dubbo3Greeter/Dubbo3SayHello2", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(Dubbo3GreeterServer).Dubbo3SayHello2(ctx, req.(*Dubbo3HelloRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Dubbo3Greeter_BigStreamTest_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(Dubbo3GreeterServer).BigStreamTest(&dubbo3GreeterBigStreamTestServer{stream}) +} + +type Dubbo3Greeter_BigStreamTestServer interface { + Send(*BigData) error + Recv() (*BigData, error) + grpc.ServerStream +} + +type dubbo3GreeterBigStreamTestServer struct { + grpc.ServerStream +} + +func (x *dubbo3GreeterBigStreamTestServer) Send(m *BigData) error { + return x.ServerStream.SendMsg(m) +} + +func (x *dubbo3GreeterBigStreamTestServer) Recv() (*BigData, error) { + m := new(BigData) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _Dubbo3Greeter_BigUnaryTest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BigData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(Dubbo3GreeterServer).BigUnaryTest(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.Dubbo3Greeter/BigUnaryTest", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(Dubbo3GreeterServer).BigUnaryTest(ctx, req.(*BigData)) + } + return interceptor(ctx, in, info, handler) +} + +var _Dubbo3Greeter_serviceDesc = grpc.ServiceDesc{ + ServiceName: "protobuf.Dubbo3Greeter", + HandlerType: (*Dubbo3GreeterServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Dubbo3SayHello2", + Handler: _Dubbo3Greeter_Dubbo3SayHello2_Handler, + }, + { + MethodName: "BigUnaryTest", + Handler: _Dubbo3Greeter_BigUnaryTest_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Dubbo3SayHello", + Handler: _Dubbo3Greeter_Dubbo3SayHello_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { + StreamName: "BigStreamTest", + Handler: _Dubbo3Greeter_BigStreamTest_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "helloworld.proto", +} + +type dubbo3greeterDubbo3Client struct { + cc *dubbo3.TripleConn +} + +func NewDubbo3GreeterDubbo3Client(cc *dubbo3.TripleConn) Dubbo3GreeterClient { + return &dubbo3greeterDubbo3Client{cc} +} +func (c *dubbo3greeterDubbo3Client) Dubbo3SayHello(ctx context.Context, opt ...grpc.CallOption) (Dubbo3Greeter_Dubbo3SayHelloClient, error) { + interfaceKey := ctx.Value(dubboConstant.DubboCtxKey(dubboConstant.INTERFACE_KEY)).(string) + stream, err := c.cc.NewStream(ctx, "/"+interfaceKey+"/Dubbo3SayHello", opt...) + if err != nil { + return nil, err + } + x := &dubbo3GreeterDubbo3SayHelloClient{stream} + return x, nil +} +func (c *dubbo3greeterDubbo3Client) Dubbo3SayHello2(ctx context.Context, in *Dubbo3HelloRequest, opt ...grpc.CallOption) (*Dubbo3HelloReply, error) { + out := new(Dubbo3HelloReply) + interfaceKey := ctx.Value(dubboConstant.DubboCtxKey(dubboConstant.INTERFACE_KEY)).(string) + err := c.cc.Invoke(ctx, "/"+interfaceKey+"/Dubbo3SayHello2", in, out) + if err != nil { + return nil, err + } + return out, nil +} +func (c *dubbo3greeterDubbo3Client) BigStreamTest(ctx context.Context, opt ...grpc.CallOption) (Dubbo3Greeter_BigStreamTestClient, error) { + interfaceKey := ctx.Value(dubboConstant.DubboCtxKey(dubboConstant.INTERFACE_KEY)).(string) + stream, err := c.cc.NewStream(ctx, "/"+interfaceKey+"/BigStreamTest", opt...) + if err != nil { + return nil, err + } + x := &dubbo3GreeterBigStreamTestClient{stream} + return x, nil +} +func (c *dubbo3greeterDubbo3Client) BigUnaryTest(ctx context.Context, in *BigData, opt ...grpc.CallOption) (*BigData, error) { + out := new(BigData) + interfaceKey := ctx.Value(dubboConstant.DubboCtxKey(dubboConstant.INTERFACE_KEY)).(string) + err := c.cc.Invoke(ctx, "/"+interfaceKey+"/BigUnaryTest", in, out) + if err != nil { + return nil, err + } + return out, nil +} + +// Dubbo3GreeterClientImpl is the client API for Dubbo3Greeter service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type Dubbo3GreeterClientImpl struct { + // Sends a greeting + Dubbo3SayHello func(ctx context.Context) (Dubbo3Greeter_Dubbo3SayHelloClient, error) + Dubbo3SayHello2 func(ctx context.Context, in *Dubbo3HelloRequest, out *Dubbo3HelloReply) error + BigStreamTest func(ctx context.Context) (Dubbo3Greeter_BigStreamTestClient, error) + BigUnaryTest func(ctx context.Context, in *BigData, out *BigData) error +} + +func (c *Dubbo3GreeterClientImpl) Reference() string { + return "dubbo3GreeterImpl" +} + +func (c *Dubbo3GreeterClientImpl) GetDubboStub(cc *dubbo3.TripleConn) Dubbo3GreeterClient { + return NewDubbo3GreeterDubbo3Client(cc) +} + +type Dubbo3GreeterProviderBase struct { + proxyImpl protocol.Invoker +} + +func (s *Dubbo3GreeterProviderBase) SetProxyImpl(impl protocol.Invoker) { + s.proxyImpl = impl +} + +func (s *Dubbo3GreeterProviderBase) GetProxyImpl() protocol.Invoker { + return s.proxyImpl +} + +func _DUBBO_Dubbo3Greeter_Dubbo3SayHello_Handler(srv interface{}, stream grpc.ServerStream) error { + _, ok := srv.(dgrpc.DubboGrpcService) + invo := invocation.NewRPCInvocation("Dubbo3SayHello", nil, nil) + if !ok { + fmt.Println(invo) + } + return srv.(Dubbo3GreeterServer).Dubbo3SayHello(&dubbo3GreeterDubbo3SayHelloServer{stream}) +} + +func _DUBBO_Dubbo3Greeter_Dubbo3SayHello2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Dubbo3HelloRequest) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dgrpc.DubboGrpcService) + args := []interface{}{} + args = append(args, in) + invo := invocation.NewRPCInvocation("Dubbo3SayHello2", args, nil) + if interceptor == nil { + result := base.GetProxyImpl().Invoke(ctx, invo) + return result.Result(), result.Error() + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.Dubbo3Greeter/Dubbo3SayHello2", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.GetProxyImpl().Invoke(context.Background(), invo) + return result.Result(), result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func _DUBBO_Dubbo3Greeter_BigStreamTest_Handler(srv interface{}, stream grpc.ServerStream) error { + _, ok := srv.(dgrpc.DubboGrpcService) + invo := invocation.NewRPCInvocation("BigStreamTest", nil, nil) + if !ok { + fmt.Println(invo) + } + return srv.(Dubbo3GreeterServer).BigStreamTest(&dubbo3GreeterBigStreamTestServer{stream}) +} + +func _DUBBO_Dubbo3Greeter_BigUnaryTest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BigData) + if err := dec(in); err != nil { + return nil, err + } + base := srv.(dgrpc.DubboGrpcService) + args := []interface{}{} + args = append(args, in) + invo := invocation.NewRPCInvocation("BigUnaryTest", args, nil) + if interceptor == nil { + result := base.GetProxyImpl().Invoke(ctx, invo) + return result.Result(), result.Error() + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.Dubbo3Greeter/BigUnaryTest", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + result := base.GetProxyImpl().Invoke(context.Background(), invo) + return result.Result(), result.Error() + } + return interceptor(ctx, in, info, handler) +} + +func (s *Dubbo3GreeterProviderBase) ServiceDesc() *grpc.ServiceDesc { + return &grpc.ServiceDesc{ + ServiceName: "protobuf.Dubbo3Greeter", + HandlerType: (*Dubbo3GreeterServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Dubbo3SayHello2", + Handler: _DUBBO_Dubbo3Greeter_Dubbo3SayHello2_Handler, + }, + { + MethodName: "BigUnaryTest", + Handler: _DUBBO_Dubbo3Greeter_BigUnaryTest_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Dubbo3SayHello", + Handler: _DUBBO_Dubbo3Greeter_Dubbo3SayHello_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { + StreamName: "BigStreamTest", + Handler: _DUBBO_Dubbo3Greeter_BigStreamTest_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "helloworld.proto", + } +} diff --git a/general/dubbo3/protobuf/dubbo3/helloworld.proto b/general/dubbo3/protobuf/dubbo3/helloworld.proto new file mode 100644 index 000000000..771948de0 --- /dev/null +++ b/general/dubbo3/protobuf/dubbo3/helloworld.proto @@ -0,0 +1,45 @@ +// Copyright 2015 The gRPC Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +syntax = "proto3"; + +option java_multiple_files = true; +option java_package = "org.apache.dubbo"; +option java_outer_classname = "HelloWorldProto"; +option objc_class_prefix = "HLW"; + +package protobuf; + +// The greeting service definition. +service Dubbo3Greeter { + // Sends a greeting + rpc Dubbo3SayHello (stream Dubbo3HelloRequest) returns (stream Dubbo3HelloReply) {} + rpc Dubbo3SayHello2 ( Dubbo3HelloRequest) returns ( Dubbo3HelloReply) {} + rpc BigStreamTest (stream BigData) returns ( stream BigData){} + rpc BigUnaryTest (BigData) returns (BigData){} +} + +// The request message containing the user's name. +message Dubbo3HelloRequest { + string myname = 1; +} + +// The response message containing the greetings +message Dubbo3HelloReply { + string msg = 1; +} + +message BigData { + bytes data = 1; + int32 wantSize = 2; +} \ No newline at end of file diff --git a/general/dubbo3/protobuf/dubbo3/protobuf.mk b/general/dubbo3/protobuf/dubbo3/protobuf.mk new file mode 100644 index 000000000..8f09dc7e3 --- /dev/null +++ b/general/dubbo3/protobuf/dubbo3/protobuf.mk @@ -0,0 +1,26 @@ +.PHONY: compile +PROTOC_GEN_GO := $(GOPATH)/bin/protoc-gen-go +PROTOC := $(shell which protoc) +ifeq ($(PROTOC),) + PROTOC = must-rebuild +endif + +UNAME := $(shell uname) + +$(PROTOC): +ifeq ($(UNAME), Darwin) + brew install protobuf +endif +ifeq ($(UNAME), Linux) + sudo apt-get install protobuf-compiler +endif + +$(PROTOC_GEN_GO): + go get -u github.com/apache/dubbo-go/protocol/dubbo3/protoc-gen-dubbo3 + +helloworld.pb.go: helloworld.proto | $(PROTOC_GEN_GO) $(PROTOC) + protoc -I . helloworld.proto --dubbo3_out=plugins=grpc+dubbo:. + +.PHONY: compile +compile: helloworld.pb.go + diff --git a/general/dubbo3/protobuf/grpc/helloworld.pb.go b/general/dubbo3/protobuf/grpc/helloworld.pb.go new file mode 100644 index 000000000..25399cd2e --- /dev/null +++ b/general/dubbo3/protobuf/grpc/helloworld.pb.go @@ -0,0 +1,438 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: helloworld.proto + +package protobuf + +import ( + context "context" + fmt "fmt" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +// The request message containing the user's name. +type Dubbo3HelloRequest struct { + Myname string `protobuf:"bytes,1,opt,name=myname,proto3" json:"myname,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Dubbo3HelloRequest) Reset() { *m = Dubbo3HelloRequest{} } +func (m *Dubbo3HelloRequest) String() string { return proto.CompactTextString(m) } +func (*Dubbo3HelloRequest) ProtoMessage() {} +func (*Dubbo3HelloRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_17b8c58d586b62f2, []int{0} +} + +func (m *Dubbo3HelloRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Dubbo3HelloRequest.Unmarshal(m, b) +} +func (m *Dubbo3HelloRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Dubbo3HelloRequest.Marshal(b, m, deterministic) +} +func (m *Dubbo3HelloRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_Dubbo3HelloRequest.Merge(m, src) +} +func (m *Dubbo3HelloRequest) XXX_Size() int { + return xxx_messageInfo_Dubbo3HelloRequest.Size(m) +} +func (m *Dubbo3HelloRequest) XXX_DiscardUnknown() { + xxx_messageInfo_Dubbo3HelloRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_Dubbo3HelloRequest proto.InternalMessageInfo + +func (m *Dubbo3HelloRequest) GetMyname() string { + if m != nil { + return m.Myname + } + return "" +} + +// The response message containing the greetings +type Dubbo3HelloReply struct { + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Dubbo3HelloReply) Reset() { *m = Dubbo3HelloReply{} } +func (m *Dubbo3HelloReply) String() string { return proto.CompactTextString(m) } +func (*Dubbo3HelloReply) ProtoMessage() {} +func (*Dubbo3HelloReply) Descriptor() ([]byte, []int) { + return fileDescriptor_17b8c58d586b62f2, []int{1} +} + +func (m *Dubbo3HelloReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Dubbo3HelloReply.Unmarshal(m, b) +} +func (m *Dubbo3HelloReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Dubbo3HelloReply.Marshal(b, m, deterministic) +} +func (m *Dubbo3HelloReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_Dubbo3HelloReply.Merge(m, src) +} +func (m *Dubbo3HelloReply) XXX_Size() int { + return xxx_messageInfo_Dubbo3HelloReply.Size(m) +} +func (m *Dubbo3HelloReply) XXX_DiscardUnknown() { + xxx_messageInfo_Dubbo3HelloReply.DiscardUnknown(m) +} + +var xxx_messageInfo_Dubbo3HelloReply proto.InternalMessageInfo + +func (m *Dubbo3HelloReply) GetMsg() string { + if m != nil { + return m.Msg + } + return "" +} + +type BigData struct { + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + WantSize int32 `protobuf:"varint,2,opt,name=wantSize,proto3" json:"wantSize,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BigData) Reset() { *m = BigData{} } +func (m *BigData) String() string { return proto.CompactTextString(m) } +func (*BigData) ProtoMessage() {} +func (*BigData) Descriptor() ([]byte, []int) { + return fileDescriptor_17b8c58d586b62f2, []int{2} +} + +func (m *BigData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BigData.Unmarshal(m, b) +} +func (m *BigData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BigData.Marshal(b, m, deterministic) +} +func (m *BigData) XXX_Merge(src proto.Message) { + xxx_messageInfo_BigData.Merge(m, src) +} +func (m *BigData) XXX_Size() int { + return xxx_messageInfo_BigData.Size(m) +} +func (m *BigData) XXX_DiscardUnknown() { + xxx_messageInfo_BigData.DiscardUnknown(m) +} + +var xxx_messageInfo_BigData proto.InternalMessageInfo + +func (m *BigData) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *BigData) GetWantSize() int32 { + if m != nil { + return m.WantSize + } + return 0 +} + +func init() { + proto.RegisterType((*Dubbo3HelloRequest)(nil), "protobuf.Dubbo3HelloRequest") + proto.RegisterType((*Dubbo3HelloReply)(nil), "protobuf.Dubbo3HelloReply") + proto.RegisterType((*BigData)(nil), "protobuf.BigData") +} + +func init() { proto.RegisterFile("helloworld.proto", fileDescriptor_17b8c58d586b62f2) } + +var fileDescriptor_17b8c58d586b62f2 = []byte{ + // 291 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x91, 0xcf, 0x4a, 0xc3, 0x40, + 0x10, 0xc6, 0xdd, 0x56, 0x6b, 0x1d, 0x5a, 0x1b, 0xe7, 0x20, 0x25, 0x78, 0x28, 0xc1, 0x43, 0x41, + 0x09, 0xd2, 0x82, 0x20, 0xde, 0x42, 0xc1, 0x1e, 0x14, 0x42, 0xa2, 0xf4, 0x3c, 0x31, 0x6b, 0x1a, + 0x48, 0xb2, 0x71, 0xbb, 0xa1, 0xc4, 0xc7, 0x11, 0x7c, 0x4f, 0xd9, 0x6d, 0x54, 0x4a, 0xf1, 0x20, + 0x9e, 0x76, 0xfe, 0x7c, 0xf3, 0xcd, 0x8f, 0x59, 0xb0, 0x96, 0x3c, 0xcb, 0xc4, 0x5a, 0xc8, 0x2c, + 0x76, 0x4b, 0x29, 0x94, 0xc0, 0xae, 0x79, 0xa2, 0xea, 0xc5, 0xb9, 0x04, 0x9c, 0x55, 0x51, 0x24, + 0xa6, 0x73, 0xad, 0x09, 0xf8, 0x6b, 0xc5, 0x57, 0x0a, 0x4f, 0xa1, 0x93, 0xd7, 0x05, 0xe5, 0x7c, + 0xc8, 0x46, 0x6c, 0x7c, 0x14, 0x34, 0x99, 0x73, 0x0e, 0xd6, 0x96, 0xba, 0xcc, 0x6a, 0xb4, 0xa0, + 0x9d, 0xaf, 0x92, 0x46, 0xa8, 0x43, 0xe7, 0x06, 0x0e, 0xbd, 0x34, 0x99, 0x91, 0x22, 0x44, 0xd8, + 0x8f, 0x49, 0x91, 0xe9, 0xf6, 0x02, 0x13, 0xa3, 0x0d, 0xdd, 0x35, 0x15, 0x2a, 0x4c, 0xdf, 0xf8, + 0xb0, 0x35, 0x62, 0xe3, 0x83, 0xe0, 0x3b, 0x9f, 0x7c, 0xb4, 0xa0, 0xbf, 0xd9, 0x70, 0x27, 0x39, + 0x57, 0x5c, 0xa2, 0x0f, 0xc7, 0x9b, 0x42, 0x48, 0xb5, 0xd9, 0x8a, 0x67, 0xee, 0x17, 0xbd, 0xbb, + 0x8b, 0x6e, 0xdb, 0xbf, 0x74, 0xcb, 0xac, 0x76, 0xf6, 0xc6, 0xec, 0x8a, 0xe1, 0x03, 0x0c, 0xb6, + 0x1d, 0x27, 0xff, 0xb1, 0xc4, 0x5b, 0xe8, 0x7b, 0x69, 0x12, 0x2a, 0xc9, 0x29, 0x7f, 0xd4, 0xc7, + 0x3b, 0xf9, 0x91, 0x37, 0x67, 0xb0, 0x77, 0x4b, 0x0d, 0xcb, 0x35, 0xf4, 0xbc, 0x34, 0x79, 0x2a, + 0x48, 0xd6, 0x7f, 0x99, 0xf5, 0x2e, 0xc0, 0x12, 0x32, 0x71, 0xa9, 0xa4, 0xe7, 0x25, 0x77, 0x63, + 0x4d, 0xe5, 0x0d, 0x0c, 0xd6, 0x42, 0x7f, 0xb3, 0xaf, 0x27, 0x7c, 0xf6, 0xde, 0x6a, 0xcf, 0xef, + 0x17, 0x51, 0xc7, 0x18, 0x4c, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x68, 0x42, 0xd4, 0x23, 0x08, + 0x02, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Dubbo3GreeterClient is the client API for Dubbo3Greeter service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type Dubbo3GreeterClient interface { + // Sends a greeting + Dubbo3SayHello(ctx context.Context, opts ...grpc.CallOption) (Dubbo3Greeter_Dubbo3SayHelloClient, error) + Dubbo3SayHello2(ctx context.Context, in *Dubbo3HelloRequest, opts ...grpc.CallOption) (*Dubbo3HelloReply, error) + BigStreamTest(ctx context.Context, opts ...grpc.CallOption) (Dubbo3Greeter_BigStreamTestClient, error) + BigUnaryTest(ctx context.Context, in *BigData, opts ...grpc.CallOption) (*BigData, error) +} + +type dubbo3GreeterClient struct { + cc *grpc.ClientConn +} + +func NewDubbo3GreeterClient(cc *grpc.ClientConn) Dubbo3GreeterClient { + return &dubbo3GreeterClient{cc} +} + +func (c *dubbo3GreeterClient) Dubbo3SayHello(ctx context.Context, opts ...grpc.CallOption) (Dubbo3Greeter_Dubbo3SayHelloClient, error) { + stream, err := c.cc.NewStream(ctx, &_Dubbo3Greeter_serviceDesc.Streams[0], "/protobuf.Dubbo3Greeter/Dubbo3SayHello", opts...) + if err != nil { + return nil, err + } + x := &dubbo3GreeterDubbo3SayHelloClient{stream} + return x, nil +} + +type Dubbo3Greeter_Dubbo3SayHelloClient interface { + Send(*Dubbo3HelloRequest) error + Recv() (*Dubbo3HelloReply, error) + grpc.ClientStream +} + +type dubbo3GreeterDubbo3SayHelloClient struct { + grpc.ClientStream +} + +func (x *dubbo3GreeterDubbo3SayHelloClient) Send(m *Dubbo3HelloRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *dubbo3GreeterDubbo3SayHelloClient) Recv() (*Dubbo3HelloReply, error) { + m := new(Dubbo3HelloReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *dubbo3GreeterClient) Dubbo3SayHello2(ctx context.Context, in *Dubbo3HelloRequest, opts ...grpc.CallOption) (*Dubbo3HelloReply, error) { + out := new(Dubbo3HelloReply) + err := c.cc.Invoke(ctx, "/protobuf.Dubbo3Greeter/Dubbo3SayHello2", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dubbo3GreeterClient) BigStreamTest(ctx context.Context, opts ...grpc.CallOption) (Dubbo3Greeter_BigStreamTestClient, error) { + stream, err := c.cc.NewStream(ctx, &_Dubbo3Greeter_serviceDesc.Streams[1], "/protobuf.Dubbo3Greeter/BigStreamTest", opts...) + if err != nil { + return nil, err + } + x := &dubbo3GreeterBigStreamTestClient{stream} + return x, nil +} + +type Dubbo3Greeter_BigStreamTestClient interface { + Send(*BigData) error + Recv() (*BigData, error) + grpc.ClientStream +} + +type dubbo3GreeterBigStreamTestClient struct { + grpc.ClientStream +} + +func (x *dubbo3GreeterBigStreamTestClient) Send(m *BigData) error { + return x.ClientStream.SendMsg(m) +} + +func (x *dubbo3GreeterBigStreamTestClient) Recv() (*BigData, error) { + m := new(BigData) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *dubbo3GreeterClient) BigUnaryTest(ctx context.Context, in *BigData, opts ...grpc.CallOption) (*BigData, error) { + out := new(BigData) + err := c.cc.Invoke(ctx, "/protobuf.Dubbo3Greeter/BigUnaryTest", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Dubbo3GreeterServer is the server API for Dubbo3Greeter service. +type Dubbo3GreeterServer interface { + // Sends a greeting + Dubbo3SayHello(Dubbo3Greeter_Dubbo3SayHelloServer) error + Dubbo3SayHello2(context.Context, *Dubbo3HelloRequest) (*Dubbo3HelloReply, error) + BigStreamTest(Dubbo3Greeter_BigStreamTestServer) error + BigUnaryTest(context.Context, *BigData) (*BigData, error) +} + +// UnimplementedDubbo3GreeterServer can be embedded to have forward compatible implementations. +type UnimplementedDubbo3GreeterServer struct { +} + +func (*UnimplementedDubbo3GreeterServer) Dubbo3SayHello(srv Dubbo3Greeter_Dubbo3SayHelloServer) error { + return status.Errorf(codes.Unimplemented, "method Dubbo3SayHello not implemented") +} +func (*UnimplementedDubbo3GreeterServer) Dubbo3SayHello2(ctx context.Context, req *Dubbo3HelloRequest) (*Dubbo3HelloReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Dubbo3SayHello2 not implemented") +} +func (*UnimplementedDubbo3GreeterServer) BigStreamTest(srv Dubbo3Greeter_BigStreamTestServer) error { + return status.Errorf(codes.Unimplemented, "method BigStreamTest not implemented") +} +func (*UnimplementedDubbo3GreeterServer) BigUnaryTest(ctx context.Context, req *BigData) (*BigData, error) { + return nil, status.Errorf(codes.Unimplemented, "method BigUnaryTest not implemented") +} + +func RegisterDubbo3GreeterServer(s *grpc.Server, srv Dubbo3GreeterServer) { + s.RegisterService(&_Dubbo3Greeter_serviceDesc, srv) +} + +func _Dubbo3Greeter_Dubbo3SayHello_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(Dubbo3GreeterServer).Dubbo3SayHello(&dubbo3GreeterDubbo3SayHelloServer{stream}) +} + +type Dubbo3Greeter_Dubbo3SayHelloServer interface { + Send(*Dubbo3HelloReply) error + Recv() (*Dubbo3HelloRequest, error) + grpc.ServerStream +} + +type dubbo3GreeterDubbo3SayHelloServer struct { + grpc.ServerStream +} + +func (x *dubbo3GreeterDubbo3SayHelloServer) Send(m *Dubbo3HelloReply) error { + return x.ServerStream.SendMsg(m) +} + +func (x *dubbo3GreeterDubbo3SayHelloServer) Recv() (*Dubbo3HelloRequest, error) { + m := new(Dubbo3HelloRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _Dubbo3Greeter_Dubbo3SayHello2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Dubbo3HelloRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(Dubbo3GreeterServer).Dubbo3SayHello2(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.Dubbo3Greeter/Dubbo3SayHello2", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(Dubbo3GreeterServer).Dubbo3SayHello2(ctx, req.(*Dubbo3HelloRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Dubbo3Greeter_BigStreamTest_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(Dubbo3GreeterServer).BigStreamTest(&dubbo3GreeterBigStreamTestServer{stream}) +} + +type Dubbo3Greeter_BigStreamTestServer interface { + Send(*BigData) error + Recv() (*BigData, error) + grpc.ServerStream +} + +type dubbo3GreeterBigStreamTestServer struct { + grpc.ServerStream +} + +func (x *dubbo3GreeterBigStreamTestServer) Send(m *BigData) error { + return x.ServerStream.SendMsg(m) +} + +func (x *dubbo3GreeterBigStreamTestServer) Recv() (*BigData, error) { + m := new(BigData) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _Dubbo3Greeter_BigUnaryTest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BigData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(Dubbo3GreeterServer).BigUnaryTest(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.Dubbo3Greeter/BigUnaryTest", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(Dubbo3GreeterServer).BigUnaryTest(ctx, req.(*BigData)) + } + return interceptor(ctx, in, info, handler) +} + +var _Dubbo3Greeter_serviceDesc = grpc.ServiceDesc{ + ServiceName: "protobuf.Dubbo3Greeter", + HandlerType: (*Dubbo3GreeterServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Dubbo3SayHello2", + Handler: _Dubbo3Greeter_Dubbo3SayHello2_Handler, + }, + { + MethodName: "BigUnaryTest", + Handler: _Dubbo3Greeter_BigUnaryTest_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Dubbo3SayHello", + Handler: _Dubbo3Greeter_Dubbo3SayHello_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { + StreamName: "BigStreamTest", + Handler: _Dubbo3Greeter_BigStreamTest_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "helloworld.proto", +} diff --git a/general/dubbo3/protobuf/grpc/helloworld.proto b/general/dubbo3/protobuf/grpc/helloworld.proto new file mode 100644 index 000000000..771948de0 --- /dev/null +++ b/general/dubbo3/protobuf/grpc/helloworld.proto @@ -0,0 +1,45 @@ +// Copyright 2015 The gRPC Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +syntax = "proto3"; + +option java_multiple_files = true; +option java_package = "org.apache.dubbo"; +option java_outer_classname = "HelloWorldProto"; +option objc_class_prefix = "HLW"; + +package protobuf; + +// The greeting service definition. +service Dubbo3Greeter { + // Sends a greeting + rpc Dubbo3SayHello (stream Dubbo3HelloRequest) returns (stream Dubbo3HelloReply) {} + rpc Dubbo3SayHello2 ( Dubbo3HelloRequest) returns ( Dubbo3HelloReply) {} + rpc BigStreamTest (stream BigData) returns ( stream BigData){} + rpc BigUnaryTest (BigData) returns (BigData){} +} + +// The request message containing the user's name. +message Dubbo3HelloRequest { + string myname = 1; +} + +// The response message containing the greetings +message Dubbo3HelloReply { + string msg = 1; +} + +message BigData { + bytes data = 1; + int32 wantSize = 2; +} \ No newline at end of file diff --git a/general/dubbo3/server/dubbo3-server/cmd/env.sh b/general/dubbo3/server/dubbo3-server/cmd/env.sh new file mode 100644 index 000000000..d4a72c2fe --- /dev/null +++ b/general/dubbo3/server/dubbo3-server/cmd/env.sh @@ -0,0 +1,2 @@ +export CONF_PROVIDER_FILE_PATH="../conf/server.yml" +export APP_LOG_CONF_FILE="../conf/log.yml" \ No newline at end of file diff --git a/general/dubbo3/server/dubbo3-server/cmd/server.go b/general/dubbo3/server/dubbo3-server/cmd/server.go new file mode 100644 index 000000000..7da959c86 --- /dev/null +++ b/general/dubbo3/server/dubbo3-server/cmd/server.go @@ -0,0 +1,76 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "fmt" + "os" + "os/signal" + "syscall" + "time" +) + +import ( + "github.com/apache/dubbo-go-samples/general/dubbo3/server/dubbo3-server/pkg" + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" + "github.com/apache/dubbo-go/common/logger" + _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" + "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/filter/filter_impl" + _ "github.com/apache/dubbo-go/protocol/dubbo3" + _ "github.com/apache/dubbo-go/registry/nacos" + _ "github.com/apache/dubbo-go/registry/protocol" + _ "github.com/apache/dubbo-go/registry/zookeeper" + _ "github.com/dubbogo/triple/pkg/triple" +) + +var ( + survivalTimeout = int(3 * time.Second) +) + +// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to "conf/server.yml" before run +func main() { + config.SetProviderService(pkg.NewGreeterProvider()) + config.Load() + initSignal() +} + +func initSignal() { + signals := make(chan os.Signal, 1) + // It is not possible to block SIGKILL or syscall.SIGSTOP + signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) + for { + sig := <-signals + logger.Infof("get signal %s", sig.String()) + switch sig { + case syscall.SIGHUP: + // reload() + default: + time.Sleep(time.Second * 5) + time.AfterFunc(time.Duration(survivalTimeout), func() { + logger.Warnf("app exit now by force...") + os.Exit(1) + }) + + // The program exits normally or timeout forcibly exits. + fmt.Println("provider app exit now...") + return + } + } +} diff --git a/general/dubbo3/server/dubbo3-server/conf/client.yml b/general/dubbo3/server/dubbo3-server/conf/client.yml new file mode 100644 index 000000000..615cd7433 --- /dev/null +++ b/general/dubbo3/server/dubbo3-server/conf/client.yml @@ -0,0 +1,59 @@ +# dubbo client yaml configure file + +check: true +# client +request_timeout: "3s" +# connect timeout +connect_timeout: "3s" + +# application config +application: + organization: "dubbo.io" + name: "GreeterGrpcTest" + module: "dubbo-go greeter grpc client" + version: "0.0.1" + environment: "dev" + +# registry config +registries: + "demoZk": + protocol: "zookeeper" + timeout: "3s" + address: "127.0.0.1:2181" + username: "" + password: "" + +# reference config +references: + "GrpcGreeterImpl": + registry: "demoZk" + protocol: "grpc" + interface: "org.apache.dubbo.GreeterGrpc$IGreeter" + cluster: "failover" + methods: + - name: "SayHello" + retries: 3 + +# protocol config +protocol_conf: + grpc: + reconnect_interval: 0 + connection_number: 2 + heartbeat_period: "5s" + session_timeout: "20s" + pool_size: 64 + pool_ttl: 600 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 10240 + session_name: "client" diff --git a/general/dubbo3/server/dubbo3-server/conf/log.yml b/general/dubbo3/server/dubbo3-server/conf/log.yml new file mode 100644 index 000000000..8c3f700a1 --- /dev/null +++ b/general/dubbo3/server/dubbo3-server/conf/log.yml @@ -0,0 +1,27 @@ +level: "info" +development: true +disableCaller: false +disableStacktrace: false +sampling: +encoding: "console" + +# encoder +encoderConfig: + messageKey: "message" + levelKey: "level" + timeKey: "time" + nameKey: "logger" + callerKey: "caller" + stacktraceKey: "stacktrace" + lineEnding: "" + levelEncoder: "capital" + timeEncoder: "iso8601" + durationEncoder: "seconds" + callerEncoder: "short" + nameEncoder: "" + +outputPaths: + - "stderr" +errorOutputPaths: + - "stderr" +initialFields: diff --git a/general/dubbo3/server/dubbo3-server/conf/server.yml b/general/dubbo3/server/dubbo3-server/conf/server.yml new file mode 100644 index 000000000..66890f334 --- /dev/null +++ b/general/dubbo3/server/dubbo3-server/conf/server.yml @@ -0,0 +1,56 @@ +# dubbo server yaml configure file + +# application config +application: + organization: "dubbo.io" + name: "GreeterGrpcServer" + module: "dubbo-go3.0 greeter server" + version: "0.0.1" + environment: "dev" + +# registry config +registries: + "demoConsul": + protocol: "zookeeper" + timeout: "3s" + address: "127.0.0.1:2181" + +# service config +services: + "GrpcGreeterImpl": + registry: "demoConsul" + protocol: "tri" +# interface: "org.apache.dubbo.GreeterGrpc$IGreeter" + interface: "protobuf.Dubbo3Greeter" + loadbalance: "random" + warmup: "100" + cluster: "failover" + methods: + - name: "SayHello" + retries: 1 + loadbalance: "random" + +# protocol config +protocols: + "tri": + name: "tri" + port: 20001 + +protocol_conf: + grpc: + session_number: 700 + session_timeout: "20s" + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 1024 + session_name: "server" \ No newline at end of file diff --git a/general/dubbo3/server/dubbo3-server/pkg/greeter.go b/general/dubbo3/server/dubbo3-server/pkg/greeter.go new file mode 100644 index 000000000..0e99c99ce --- /dev/null +++ b/general/dubbo3/server/dubbo3-server/pkg/greeter.go @@ -0,0 +1,106 @@ +/* +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package pkg + +import ( + "context" + "fmt" + dubbo3 "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/dubbo3" +) + +type GreeterProvider struct { + *dubbo3.Dubbo3GreeterProviderBase +} + +func NewGreeterProvider() *GreeterProvider { + return &GreeterProvider{ + Dubbo3GreeterProviderBase: &dubbo3.Dubbo3GreeterProviderBase{}, + } +} + +func (s *GreeterProvider) BigStreamTest(svr dubbo3.Dubbo3Greeter_BigStreamTestServer) error{ + c, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("stream server recv 1 = ", len(c.Data)) + c2, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("stream server recv 2 = ", len(c2.Data)) + c3, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("stream server recv 3 = ", len(c3.Data)) + + svr.Send(&dubbo3.BigData{ + Data: make([]byte, c.WantSize), + WantSize: 0, + }) + svr.Send(&dubbo3.BigData{ + Data: make([]byte, c2.WantSize), + WantSize: 0, + }) + return nil +} + +// Dubbo3SayHello2 is a unary-client rpc example +func (s *GreeterProvider) Dubbo3SayHello2(ctx context.Context, in *dubbo3.Dubbo3HelloRequest) (*dubbo3.Dubbo3HelloReply, error) { + fmt.Println("######### get server request name :" + in.Myname) + fmt.Println("get tri-req-id = ", ctx.Value("tri-req-id")) + fmt.Println("get tri-service-version = ", ctx.Value("tri-service-version")) + return &dubbo3.Dubbo3HelloReply{Msg: "Hello " + in.Myname}, nil +} + +// Dubbo3SayHello is a server rpc exmple +func (g *GreeterProvider) Dubbo3SayHello(svr dubbo3.Dubbo3Greeter_Dubbo3SayHelloServer) error { + c, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("server server recv 1 = ", c) + c2, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("server server recv 2 = ", c2) + c3, err := svr.Recv() + fmt.Println("server server recv 3 = ", c3) + + svr.Send(&dubbo3.Dubbo3HelloReply{ + Msg: c.Myname + c2.Myname, + }) + fmt.Println("server server send 1 = ", c.Myname+c2.Myname) + svr.Send(&dubbo3.Dubbo3HelloReply{ + Msg: c3.Myname, + }) + fmt.Println("server server send 2 = ", c3.Myname) + return nil +} +func (s *GreeterProvider) BigUnaryTest(ctx context.Context , in *dubbo3.BigData) (*dubbo3.BigData, error){ + fmt.Println("server unary recv len = ", len(in.Data)) + return &dubbo3.BigData{ + Data: make([]byte, in.WantSize), + }, nil +} + +func (g *GreeterProvider) Reference() string { + return "GrpcGreeterImpl" +} diff --git a/general/dubbo3/server/server/main.go b/general/dubbo3/server/server/main.go new file mode 100644 index 000000000..bf32de67a --- /dev/null +++ b/general/dubbo3/server/server/main.go @@ -0,0 +1,128 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "fmt" + pb "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/grpc" + "go.uber.org/atomic" + "golang.org/x/net/context" + "google.golang.org/grpc" + "google.golang.org/grpc/reflection" + "log" + "net" +) + +const ( + port = ":20001" +) + +// server is used to implement helloworld.GreeterServer. +type server struct{} + +// SayHello implements helloworld.GreeterServer +func (s *server) Dubbo3SayHello2(ctx context.Context, in *pb.Dubbo3HelloRequest) (*pb.Dubbo3HelloReply, error) { + fmt.Println("######### get server request name :" + in.Myname) + return &pb.Dubbo3HelloReply{Msg: "Hello " + in.Myname}, nil +} + +func (s *server) BigUnaryTest(ctx context.Context , in *pb.BigData) (*pb.BigData, error){ + fmt.Println("server unary recv len = ", len(in.Data)) + return &pb.BigData{ + Data: make([]byte, in.WantSize), + }, nil +} +var finish = 0 +var firstSend atomic.Int32 +var secondSend atomic.Int32 +var thirdRecv atomic.Int32 +var firstRecv atomic.Int32 +var secondRecv atomic.Int32 + +func (s *server) BigStreamTest(svr pb.Dubbo3Greeter_BigStreamTestServer ) error{ + c, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("firstRecv = ", firstRecv.Inc()) + fmt.Println("server server recv 1 len = ", len(c.Data)) + c2, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("secondRecv = ", secondRecv.Inc()) + //fmt.Println("server server recv 2 = ", len) + c3, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("server server recv 3 len = ", len(c3.Data)) + + fmt.Println("thirdRecv = ", thirdRecv.Inc()) + svr.Send(&pb.BigData{ + Data: make([]byte, c.WantSize), + }) + fmt.Println("server server send 1 len = ", c.WantSize) + fmt.Println("firstSend = ", firstSend.Inc()) + svr.Send(&pb.BigData{ + Data: make([]byte, c2.WantSize), + }) + fmt.Println("server server send 2 len = ", c2.WantSize) + fmt.Println("secondSend = ", secondSend.Inc()) + fmt.Println(finish) + return nil +} + +func (s *server) Dubbo3SayHello(svr pb.Dubbo3Greeter_Dubbo3SayHelloServer) error { + c, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("server server recv 1 = ", c) + c2, err := svr.Recv() + if err != nil { + return err + } + fmt.Println("server server recv 2 = ", c2) + c3, err := svr.Recv() + fmt.Println("server server recv 3 = ", c3) + + svr.Send(&pb.Dubbo3HelloReply{ + Msg: c.Myname + c2.Myname, + }) + fmt.Println("server server send 1 = ", c.Myname+c2.Myname) + svr.Send(&pb.Dubbo3HelloReply{ + Msg: c3.Myname, + }) + fmt.Println("server server send 2 = ", c3.Myname) + return nil +} + +func main() { + lis, err := net.Listen("tcp", port) + if err != nil { + log.Fatalf("failed to listen: %v", err) + } + s := grpc.NewServer() + pb.RegisterDubbo3GreeterServer(s, &server{}) + // Register reflection service on gRPC client. + reflection.Register(s) + if err := s.Serve(lis); err != nil { + log.Fatalf("failed to serve: %v", err) + } +} diff --git a/general/dubbo3/stream-client/dubbo3-client/cmd/client.go b/general/dubbo3/stream-client/dubbo3-client/cmd/client.go new file mode 100644 index 000000000..b10fc2c7a --- /dev/null +++ b/general/dubbo3/stream-client/dubbo3-client/cmd/client.go @@ -0,0 +1,248 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "context" + "fmt" + protobuf "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/dubbo3" + "go.uber.org/atomic" + "sync" + "time" +) + +import ( + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" + _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" + "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/filter/filter_impl" + _ "github.com/apache/dubbo-go/protocol/dubbo3" + _ "github.com/apache/dubbo-go/protocol/grpc" + _ "github.com/apache/dubbo-go/registry/zookeeper" + _ "github.com/apache/dubbo-go/registry/protocol" + "github.com/apache/dubbo-go-samples/general/dubbo3/stream-client/dubbo3-client/pkg" + dubbo3 "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/dubbo3" +) + +var grpcGreeterImpl = new(pkg.GrpcGreeterImpl) + +func init() { + config.SetConsumerService(grpcGreeterImpl) +} + +// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run +func main() { + config.Load() + time.Sleep(time.Second * 3) + //testStreamClient() + //testMultiThreadStreamClient() + wg := sync.WaitGroup{} + for i := 0; i < 200; i++{ + wg.Add(1) + go func() { + testBigData() + wg.Done() + }() + } + wg.Wait() +} + +var firstSend atomic.Int32 +var secondSend atomic.Int32 +var thirdSend atomic.Int32 +var firstRecv atomic.Int32 +var secondRecv atomic.Int32 + + +func testBigData(){ + ctx := context.Background() + //ctx = context.WithValue(ctx,"tri-req-id","id value" ) + dataSend := make([]byte, 300000) + copy( dataSend[:5] , []byte("hello")) + copy(dataSend[len(dataSend) - 5:] , []byte("world")) + req := dubbo3.BigData{ + WantSize: 300000, + Data: dataSend, + } + + r, err := grpcGreeterImpl.BigStreamTest(ctx) + if err != nil { + panic(err) + } + //start := time.Now().Nanosecond() + for i := 0; i < 3; i++{ + if err := r.Send(&req); err != nil { + fmt.Println("say hello err:", err) + } + //if i == 0{ + // fmt.Println("firstSend = ", firstSend.Inc()) + //} + //if i == 1{ + // fmt.Println("secondSend = ", secondSend.Inc()) + //} + //if i == 2{ + // thirdSend.Inc() + // fmt.Println("thirdSend = ", thirdSend.Inc()) + //} + req.WantSize++ + } + + rsp := &dubbo3.BigData{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + //fmt.Println("firstRecv = ", firstRecv.Inc()) + fmt.Printf("firstSend Got rsp = %+v\n", len(rsp.Data)) + rsp = &dubbo3.BigData{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + //fmt.Println("secondRecv = ", secondRecv.Inc()) + fmt.Printf("sendSend Got rsp = %+v\n", len(rsp.Data)) + //fmt.Println("time cost = ", time.Now().Nanosecond() - start) +} + +func testMultiThreadStreamClient() { + ctx := context.Background() + //ctx = context.WithValue(ctx,"tri-req-id","id value" ) + + wg := sync.WaitGroup{} + clientList := make([]protobuf.Dubbo3Greeter_Dubbo3SayHelloClient, 0,1000 ) + for i := 0; i < 1; i++ { + r, err := grpcGreeterImpl.Dubbo3SayHello(ctx) + if err != nil { + panic(err) + } + clientList = append(clientList, r) + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng1"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng2"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng3"}); err != nil { + fmt.Println("say hello err:", err) + } + + rsp := &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got rsp = %+v\n", rsp) + rsp = &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng1"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng2"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng3"}); err != nil { + fmt.Println("say hello err:", err) + } + + rsp = &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got rsp = %+v\n", rsp) + rsp = &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng1"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng2"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng3"}); err != nil { + fmt.Println("say hello err:", err) + } + + rsp = &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got rsp = %+v\n", rsp) + rsp = &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got rsp = %+v\n", rsp) + } + wg.Wait() + time.Sleep(time.Second*3) +} + +func testStreamClient() { + ctx := context.Background() + //ctx = context.WithValue(ctx,"tri-req-id","id value" ) + r, err := grpcGreeterImpl.Dubbo3SayHello(ctx) + if err != nil { + panic(err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng"}); err != nil { + fmt.Println("say hello err:", err) + } + + rsp := &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got rsp = %+v\n", rsp) + rsp = &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got rsp = %+v\n", rsp) + + r, err = grpcGreeterImpl.Dubbo3SayHello(ctx) + if err != nil { + panic(err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng"}); err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&dubbo3.Dubbo3HelloRequest{Myname: "jifeng"}); err != nil { + fmt.Println("say hello err:", err) + } + + rsp = &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got rsp = %+v\n", rsp) + rsp = &dubbo3.Dubbo3HelloReply{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got rsp = %+v\n", rsp) +} diff --git a/general/dubbo3/stream-client/dubbo3-client/cmd/env.sh b/general/dubbo3/stream-client/dubbo3-client/cmd/env.sh new file mode 100644 index 000000000..4ac7e8055 --- /dev/null +++ b/general/dubbo3/stream-client/dubbo3-client/cmd/env.sh @@ -0,0 +1,2 @@ +export CONF_CONSUMER_FILE_PATH="../conf/client.yml" +export APP_LOG_CONF_FILE="../conf/log.yml" \ No newline at end of file diff --git a/general/dubbo3/stream-client/dubbo3-client/conf/client.yml b/general/dubbo3/stream-client/dubbo3-client/conf/client.yml new file mode 100644 index 000000000..3def9b9e9 --- /dev/null +++ b/general/dubbo3/stream-client/dubbo3-client/conf/client.yml @@ -0,0 +1,59 @@ +# dubbo client yaml configure file + +check: true +# client +request_timeout: "3s" +# connect timeout +connect_timeout: "3s" + +# application config +application: + organization: "dubbo.io" + name: "GreeterGrpcConsumer" + module: "dubbo-go3.0 greeter client" + version: "0.0.1" + environment: "dev" + +# registry config +registries: + "demoConsul": + protocol: "zookeeper" + timeout: "3s" + address: "127.0.0.1:2181" + +# reference config +references: + "GrpcGreeterImpl": + registry: "demoConsul" + protocol: "tri" +# interface: "org.apache.dubbo.GreeterGrpc$IGreeter" + interface: "protobuf.Dubbo3Greeter" + url: tri://localhost:20001 + cluster: "failover" + methods: + - name: "SayHello" + retries: 3 + +# protocol config +protocol_conf: + tri: + reconnect_interval: 0 + connection_number: 2 + heartbeat_period: "5s" + session_timeout: "20s" + pool_size: 64 + pool_ttl: 600 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 10240 + session_name: "client" \ No newline at end of file diff --git a/general/dubbo3/stream-client/dubbo3-client/conf/log.yml b/general/dubbo3/stream-client/dubbo3-client/conf/log.yml new file mode 100644 index 000000000..8c3f700a1 --- /dev/null +++ b/general/dubbo3/stream-client/dubbo3-client/conf/log.yml @@ -0,0 +1,27 @@ +level: "info" +development: true +disableCaller: false +disableStacktrace: false +sampling: +encoding: "console" + +# encoder +encoderConfig: + messageKey: "message" + levelKey: "level" + timeKey: "time" + nameKey: "logger" + callerKey: "caller" + stacktraceKey: "stacktrace" + lineEnding: "" + levelEncoder: "capital" + timeEncoder: "iso8601" + durationEncoder: "seconds" + callerEncoder: "short" + nameEncoder: "" + +outputPaths: + - "stderr" +errorOutputPaths: + - "stderr" +initialFields: diff --git a/general/dubbo3/stream-client/dubbo3-client/pkg/hello.go b/general/dubbo3/stream-client/dubbo3-client/pkg/hello.go new file mode 100644 index 000000000..341feb594 --- /dev/null +++ b/general/dubbo3/stream-client/dubbo3-client/pkg/hello.go @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package pkg + +import ( + "context" + dubbo32 "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/dubbo3" + dubbo3 "github.com/dubbogo/triple/pkg/triple" +) + +type GrpcGreeterImpl struct { + Dubbo3SayHello func(ctx context.Context) (dubbo32.Dubbo3Greeter_Dubbo3SayHelloClient, error) + BigStreamTest func(ctx context.Context)(dubbo32.Dubbo3Greeter_BigStreamTestClient, error) +} + +func (u *GrpcGreeterImpl) Reference() string { + return "GrpcGreeterImpl" +} + +func (u *GrpcGreeterImpl) GetDubboStub(cc *dubbo3.TripleConn) dubbo32.Dubbo3GreeterClient { + return dubbo32.NewDubbo3GreeterDubbo3Client(cc) +} diff --git a/general/dubbo3/stream-client/grpc-client/main.go b/general/dubbo3/stream-client/grpc-client/main.go new file mode 100644 index 000000000..63d2107aa --- /dev/null +++ b/general/dubbo3/stream-client/grpc-client/main.go @@ -0,0 +1,116 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "fmt" + pb "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/grpc" + "golang.org/x/net/context" + "google.golang.org/grpc" + "log" + "sync" +) + +const ( + address = "localhost:20001" +) + +func main() { + // Set up a connection to the grpc-client. + conn, err := grpc.Dial(address, grpc.WithInsecure()) + if err != nil { + log.Fatalf("did not connect: %v", err) + } + defer conn.Close() + c := pb.NewDubbo3GreeterClient(conn) + + + BigDataReq := pb.BigData{ + WantSize: 300000, + Data: make([]byte, 300000), + } + + wg := sync.WaitGroup{} + + // todo multi thread error + for i := 0; i < 200; i++ { + wg.Add(1) + go func() { + defer wg.Done() + //start := time.Now().Nanosecond() + + // Test BigStream + r, err := c.BigStreamTest(context.Background()) + if err != nil { + fmt.Println("say hello err:", err) + } + if err := r.Send(&BigDataReq); err != nil { + fmt.Println("say hello err:", err) + } + BigDataReq.WantSize++ + if err := r.Send(&BigDataReq); err != nil { + fmt.Println("say hello err:", err) + } + BigDataReq.WantSize++ + //time.Sleep(time.Second * 10) + if err := r.Send(&BigDataReq); err != nil { + fmt.Println("say hello err:", err) + } + rsp := &pb.BigData{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("firstSend Got len = %+v\n", len(rsp.Data)) + rsp = &pb.BigData{} + if err := r.RecvMsg(rsp); err != nil { + fmt.Println("err = ", err) + } + fmt.Printf("secondSend Got len = %+v\n", len(rsp.Data)) + + // Test SayHello + //r, err := c.Dubbo3SayHello(context.Background()) + //if err != nil { + // fmt.Println("say hello err:", err) + //} + //if err := r.Send(&pb.Dubbo3HelloRequest{Myname: name}); err != nil { + // fmt.Println("say hello err:", err) + //} + //if err := r.Send(&pb.Dubbo3HelloRequest{Myname: name}); err != nil { + // fmt.Println("say hello err:", err) + //} + ////time.Sleep(time.Second * 10) + //if err := r.Send(&pb.Dubbo3HelloRequest{Myname: name}); err != nil { + // fmt.Println("say hello err:", err) + //} + //rsp := &pb.Dubbo3HelloReply{} + //if err := r.RecvMsg(rsp); err != nil { + // fmt.Println("err = ", err) + //} + //fmt.Printf("firstSend Got rsp = %+v\n", rsp) + //rsp = &pb.Dubbo3HelloReply{} + //if err := r.RecvMsg(rsp); err != nil { + // fmt.Println("err = ", err) + //} + //fmt.Printf("firstSend Got rsp = %+v\n", rsp) + + + //fmt.Println("time cost = ", time.Now().Nanosecond() - start) + }() + } + wg.Wait() +} diff --git a/general/dubbo3/unary-client/dubbo3-client/cmd/client.go b/general/dubbo3/unary-client/dubbo3-client/cmd/client.go new file mode 100644 index 000000000..3c5b22043 --- /dev/null +++ b/general/dubbo3/unary-client/dubbo3-client/cmd/client.go @@ -0,0 +1,147 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "context" + "fmt" + pb "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/dubbo3" + "github.com/apache/dubbo-go-samples/general/dubbo3/unary-client/dubbo3-client/pkg" + "github.com/dubbogo/gost/log" + "sync" + "time" +) + +import ( + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" + _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" + "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/filter/filter_impl" + _ "github.com/apache/dubbo-go/protocol/dubbo3" + _ "github.com/apache/dubbo-go/protocol/grpc" + _ "github.com/apache/dubbo-go/registry/protocol" + _ "github.com/apache/dubbo-go/registry/zookeeper" +) + +var grpcGreeterImpl = new(pkg.GrpcGreeterImpl) + +func init() { + config.SetConsumerService(grpcGreeterImpl) +} + +// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run +func main() { + config.Load() + time.Sleep(3 * time.Second) + + gxlog.CInfo("\n\n\nstart to test dubbo") + reply := &pb.Dubbo3HelloReply{} + req := &pb.Dubbo3HelloRequest{ + Myname: "jifeng", + } + //BigDataReq := pb.BigData{ + // WantSize: 300000, + // Data: make([]byte, 300000), + // } + ctx := context.Background() + ctx = context.WithValue(ctx, "tri-req-id", "test_value_XXXXXXXX") + wg := sync.WaitGroup{} + + for i := 0; i < 1; i++ { + wg.Add(1) + go func() { + //rsp, err := grpcGreeterImpl.BigUnaryTest(ctx, &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + ////time.Sleep(time.Second) + // + //rsp, err = grpcGreeterImpl.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + // + //rsp, err = grpcGreeterImpl.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + // + //rsp, err = grpcGreeterImpl.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + // + //rsp, err = grpcGreeterImpl.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + // + //rsp, err = grpcGreeterImpl.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + ////time.Sleep(time.Second) + // + //rsp, err = grpcGreeterImpl.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + + err := grpcGreeterImpl.Dubbo3SayHello2(ctx, req, reply) + if err != nil { + panic(err) + } + fmt.Printf("client response result: %v\n", reply) + + //err = grpcGreeterImpl.Dubbo3SayHello2(ctx, req, reply) + //if err != nil { + // panic(err) + //} + //fmt.Printf("client response result: %v\n", reply) + // + //err = grpcGreeterImpl.Dubbo3SayHello2(ctx, req, reply) + //if err != nil { + // panic(err) + //} + //fmt.Printf("client response result: %v\n", reply) + // + //err = grpcGreeterImpl.Dubbo3SayHello2(ctx, req, reply) + //if err != nil { + // panic(err) + //} + //fmt.Printf("client response result: %v\n", reply) + // + //err = grpcGreeterImpl.Dubbo3SayHello2(ctx, req, reply) + //if err != nil { + // panic(err) + //} + //fmt.Printf("client response result: %v\n", reply) + ////wg.Done() + wg.Done() + }() + } + wg.Wait() +} diff --git a/general/dubbo3/unary-client/dubbo3-client/cmd/env.sh b/general/dubbo3/unary-client/dubbo3-client/cmd/env.sh new file mode 100644 index 000000000..4ac7e8055 --- /dev/null +++ b/general/dubbo3/unary-client/dubbo3-client/cmd/env.sh @@ -0,0 +1,2 @@ +export CONF_CONSUMER_FILE_PATH="../conf/client.yml" +export APP_LOG_CONF_FILE="../conf/log.yml" \ No newline at end of file diff --git a/general/dubbo3/unary-client/dubbo3-client/conf/client.yml b/general/dubbo3/unary-client/dubbo3-client/conf/client.yml new file mode 100644 index 000000000..9e945f4db --- /dev/null +++ b/general/dubbo3/unary-client/dubbo3-client/conf/client.yml @@ -0,0 +1,61 @@ +# dubbo client yaml configure file + +check: true +# client +request_timeout: "3s" +# connect timeout +connect_timeout: "3s" + +# application config +application: + organization: "dubbo.io" + name: "GreeterGrpcConsumer" + module: "dubbo-go greeter grpc client" + version: "0.0.1" + environment: "dev" + +# registry config +registries: + "demoZk": + protocol: "zookeeper" + timeout: "3s" + address: "127.0.0.1:2181" + username: "" + password: "" + +# reference config +references: + "GrpcGreeterImpl": + registry: "demoZk" + protocol: "tri" +# interface: "org.apache.dubbo.GreeterGrpc$IGreeter" + interface: "protobuf.Dubbo3Greeter" + url: tri://localhost:20001 + cluster: "failover" + methods: + - name: "SayHello" + retries: 3 + +# protocol config +protocol_conf: + tri: + reconnect_interval: 0 + connection_number: 2 + heartbeat_period: "5s" + session_timeout: "20s" + pool_size: 64 + pool_ttl: 600 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 10240 + session_name: "client" \ No newline at end of file diff --git a/general/dubbo3/unary-client/dubbo3-client/conf/log.yml b/general/dubbo3/unary-client/dubbo3-client/conf/log.yml new file mode 100644 index 000000000..8c3f700a1 --- /dev/null +++ b/general/dubbo3/unary-client/dubbo3-client/conf/log.yml @@ -0,0 +1,27 @@ +level: "info" +development: true +disableCaller: false +disableStacktrace: false +sampling: +encoding: "console" + +# encoder +encoderConfig: + messageKey: "message" + levelKey: "level" + timeKey: "time" + nameKey: "logger" + callerKey: "caller" + stacktraceKey: "stacktrace" + lineEnding: "" + levelEncoder: "capital" + timeEncoder: "iso8601" + durationEncoder: "seconds" + callerEncoder: "short" + nameEncoder: "" + +outputPaths: + - "stderr" +errorOutputPaths: + - "stderr" +initialFields: diff --git a/general/dubbo3/unary-client/dubbo3-client/pkg/hello.go b/general/dubbo3/unary-client/dubbo3-client/pkg/hello.go new file mode 100644 index 000000000..85df32d1d --- /dev/null +++ b/general/dubbo3/unary-client/dubbo3-client/pkg/hello.go @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package pkg + +import ( + "context" + //_ "github.com/apache/dubbo-go/protocol/dubbo3/impl" + dubbo32 "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/dubbo3" + dubbo3 "github.com/dubbogo/triple/pkg/triple" +) + +type GrpcGreeterImpl struct { + Dubbo3SayHello2 func(ctx context.Context, in *dubbo32.Dubbo3HelloRequest, out *dubbo32.Dubbo3HelloReply) error + BigUnaryTest func(ctx context.Context, in*dubbo32.BigData) (*dubbo32.BigData,error) +} + +func (u *GrpcGreeterImpl) Reference() string { + return "GrpcGreeterImpl" +} + +func (u *GrpcGreeterImpl) GetDubboStub(cc *dubbo3.TripleConn) dubbo32.Dubbo3GreeterClient { + return dubbo32.NewDubbo3GreeterDubbo3Client(cc) +} diff --git a/general/dubbo3/unary-client/grpc-client/main.go b/general/dubbo3/unary-client/grpc-client/main.go new file mode 100644 index 000000000..fd85b2dde --- /dev/null +++ b/general/dubbo3/unary-client/grpc-client/main.go @@ -0,0 +1,116 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "fmt" + pb "github.com/apache/dubbo-go-samples/general/dubbo3/protobuf/grpc" + "log" + "sync" + + "golang.org/x/net/context" + "google.golang.org/grpc" +) + +const ( + address = "localhost:20001" +) + +func main() { + // Set up a connection to the client. + conn, err := grpc.Dial(address, grpc.WithInsecure()) + if err != nil { + log.Fatalf("did not connect: %v", err) + } + defer conn.Close() + c := pb.NewDubbo3GreeterClient(conn) + + // Contact the client and print out its response. + //name := defaultName + //if len(os.Args) > 1 { + // name = os.Args[1] + //} + //BigDataReq := pb.BigData{ + // WantSize: 200000, + // Data: make([]byte, 30000), + //} + req := &pb.Dubbo3HelloRequest{ + Myname: "jifeng", + } + ctx := context.Background() + + wg := sync.WaitGroup{} + for i := 0; i < 1; i++ { + wg.Add(1) + go func() { + // Test Big Unary + reply ,err := c.Dubbo3SayHello2(ctx, req) + if err != nil { + panic(err) + } + fmt.Printf("client response result: %v\n", reply) + //rsp, err := c.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + //rsp, err = c.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + // + //rsp, err = c.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + // + //rsp, err = c.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + + //rsp, err = c.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + // + //rsp, err = c.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + // + //rsp, err = c.BigUnaryTest(context.Background(), &BigDataReq) + //if err != nil{ + // panic(err) + //} + //fmt.Println("rsp len = ", len(rsp.Data)) + //r, err := c.Dubbo3SayHello2(context.Background(), &pb.Dubbo3HelloRequest{Myname: name}) + //if err != nil { + // fmt.Print("could not greet: %v", err) + //} + //log.Printf("####### get client %+v", r) + wg.Done() + }() + } + wg.Wait() +} diff --git a/go.mod b/go.mod index 87e2863b6..c1faa3c3f 100644 --- a/go.mod +++ b/go.mod @@ -1,28 +1,49 @@ module github.com/apache/dubbo-go-samples require ( - github.com/alibaba/sentinel-golang v0.6.2 + github.com/alibaba/sentinel-golang v1.0.2 github.com/apache/dubbo-go v1.5.5 - github.com/apache/dubbo-go-hessian2 v1.7.0 + github.com/apache/dubbo-go-hessian2 v1.8.2 github.com/bwmarrin/snowflake v0.3.0 github.com/dk-lockdown/seata-golang v0.1.0-fix - github.com/dubbogo/gost v1.9.5 + github.com/dubbogo/gost v1.11.2 + github.com/dubbogo/triple v0.0.0-20210318081906-6fdf7ced4828 github.com/emicklei/go-restful/v3 v3.4.0 github.com/golang/protobuf v1.4.3 - github.com/google/go-cmp v0.5.0 // indirect + github.com/labstack/echo/v4 v4.1.15 // indirect + github.com/micro/go-micro/v2 v2.9.1 // indirect github.com/opentracing/opentracing-go v1.2.0 github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 github.com/openzipkin/zipkin-go v0.2.2 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.8.0 - github.com/stretchr/testify v1.6.1 + github.com/prometheus/client_golang v1.9.0 + github.com/stretchr/testify v1.7.0 github.com/uber/jaeger-client-go v2.22.1+incompatible github.com/uber/jaeger-lib v2.2.0+incompatible // indirect - google.golang.org/grpc v1.26.0 + go.uber.org/atomic v1.7.0 + golang.org/x/net v0.0.0-20201224014010-6772e930b67b + google.golang.org/grpc v1.35.0 + gopkg.in/go-playground/assert.v1 v1.2.1 // indirect + gopkg.in/go-playground/validator.v9 v9.29.1 // indirect ) -replace ( - github.com/envoyproxy/go-control-plane => github.com/envoyproxy/go-control-plane v0.8.0 -) +replace github.com/envoyproxy/go-control-plane => github.com/envoyproxy/go-control-plane v0.8.0 + +replace github.com/dubbogo/net => ../net + +replace github.com/apache/dubbo-go => ../dubbo-go //github.com/LaurenceLiZhixin/dubbo-go v1.5.2-0.20210209070605-a5cc93a648bb + +replace github.com/dubbogo/triple => ../triple //github.com/LaurenceLiZhixin/dubbo-go v1.5.2-0.20210209070605-a5cc93a648bb + +//replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 + +// +//replace golang.org/x/net => github.com/dubbogo/net v0.0.0-20210209064142-0e3827157a56 + +//replace github.com/apache/dubbo-go => ../dubbo-go + +//replace github.com/dubbogo/triple => ../triple +// +//replace golang.org/x/net => ../net //github.com/dubbogo/net v0.0.0-20210208122052-3ebc7bbc2dd8 go 1.13 diff --git a/go.sum b/go.sum index 4720dc5fa..d53b6849e 100644 --- a/go.sum +++ b/go.sum @@ -64,11 +64,19 @@ github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dX github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Davmuz/gqt v0.0.0-20161229104334-7589d282c7c3/go.mod h1:KGpIXmreS66GwCW4jGO6iN9AqD1S41uJ4r6snjioW00= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/LaurenceLiZhixin/dubbo-go v1.5.1 h1:CA9lVLRCk5EKQyvOSAFlP2o8ailRge+MTMBzzyM0mfA= +github.com/LaurenceLiZhixin/dubbo-go v1.5.1/go.mod h1:lxwgtF+27mSFQsSrBLaVbdQpwCp+pBN/mHP4w4/N2Qc= +github.com/LaurenceLiZhixin/dubbo-go v1.5.2-0.20210208122730-f794555aa6fa h1:Tur9Vbid70kt97V98oLVX3t+NSU+dYJKwsiXuh+PLoE= +github.com/LaurenceLiZhixin/dubbo-go v1.5.2-0.20210208122730-f794555aa6fa/go.mod h1:Uq5t7DOImhXMvXE5kFGtBqbh/hUwsitk04hlENf/OJk= +github.com/LaurenceLiZhixin/dubbo-go v1.5.2-0.20210209070605-a5cc93a648bb h1:2UsfRP+GVDSfXX3sCYwl8JISkD/BRtDMKhZsz0z7xbw= +github.com/LaurenceLiZhixin/dubbo-go v1.5.2-0.20210209070605-a5cc93a648bb/go.mod h1:l0BIczwL6RcPGsyboiYtkpy4EPP+EgGTDlvmkqgPVrA= github.com/Microsoft/go-winio v0.4.3/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/Microsoft/go-winio v0.4.13/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 h1:ygIc8M6trr62pF5DucadTWGdEB4mEyvzi0e2nbcmcyA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c/go.mod h1:7xhjOwRV2+0HXGmM0jxaEu+ZiXJFoVZOTfL/dmqbrD8= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/NYTimes/gziphandler v1.0.1 h1:iLrQrdwjDd52kHDA5op2UBJFjmOb9g+7scBan4RN8F0= github.com/NYTimes/gziphandler v1.0.1/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= @@ -84,6 +92,8 @@ github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrU github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUWq3EgK3CesDbo8upS2Vm9/P3FtgI+Jk= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/Workiva/go-datastructures v1.0.50 h1:slDmfW6KCHcC7U+LP3DDBbm4fqTwZGn1beOFPfGaLvo= +github.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA= github.com/Workiva/go-datastructures v1.0.52 h1:PLSK6pwn8mYdaoaCZEMsXBpBotr4HHn9abU0yMQt0NI= github.com/Workiva/go-datastructures v1.0.52/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA= github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af h1:DBNMBMuMiWYu0b+8KMJuWmfCkcxl09JwdlqwDZZ6U14= @@ -100,17 +110,31 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alibaba/sentinel-golang v0.6.2 h1:1OjjpljJbNKWp9p5RJKxOqS1gHGZPUWPlCcokv5xYJs= github.com/alibaba/sentinel-golang v0.6.2/go.mod h1:5jemKdyCQCKVf+quEia53fo9a17OSe+wnl9HX2NbNpc= +github.com/alibaba/sentinel-golang v1.0.1 h1:WlhN0XUxRyfkiDc8TO6CcRrnakwFP9zFtvJTYxZRCgI= +github.com/alibaba/sentinel-golang v1.0.1/go.mod h1:QsB99f/z35D2AiMrAWwgWE85kDTkBUIkcmPrRt+61NI= +github.com/alibaba/sentinel-golang v1.0.2 h1:Acopq74hOtZN4MV1v811MQ6QcqPFLDSczTrRXv9zpIg= +github.com/alibaba/sentinel-golang v1.0.2/go.mod h1:QsB99f/z35D2AiMrAWwgWE85kDTkBUIkcmPrRt+61NI= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190808125512-07798873deee/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ= github.com/aliyun/alibaba-cloud-sdk-go v1.61.18 h1:zOVTBdCKFd9JbCKz9/nt+FovbjPFmb7mUnp8nH9fQBA= github.com/aliyun/alibaba-cloud-sdk-go v1.61.18/go.mod h1:v8ESoHo4SyHmuB4b1tJqDHxfTGEciD+yhvOU/5s1Rfk= github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/dubbo-getty v1.3.10 h1:ys5mwjPdxG/KwkPjS6EI0RzQtU6p6FCPoKpaFEzpAL0= github.com/apache/dubbo-getty v1.3.10/go.mod h1:x6rraK01BL5C7jUM2fPl5KMkAxLVIx54ZB8/XEOik9Y= +github.com/apache/dubbo-getty v1.4.1 h1:M9yaFhemThQSWtRwmJNrxNuv7FzydlFx5EY8oq1v+lw= +github.com/apache/dubbo-getty v1.4.1/go.mod h1:ansXgKxxyhCOiQL29nO5ce1MDcEKmCyZuNR9oMs3hek= +github.com/apache/dubbo-getty v1.4.3 h1:PCKpryDasKOxwT5MBC6MIMO+0NLOaHF6Xco9YXQw7HI= +github.com/apache/dubbo-getty v1.4.3/go.mod h1:ansXgKxxyhCOiQL29nO5ce1MDcEKmCyZuNR9oMs3hek= github.com/apache/dubbo-go v1.5.5 h1:bQX+eGANPFl/ldfvctQJdw5HKfTGBpiWx1gaXrrYwMA= github.com/apache/dubbo-go v1.5.5/go.mod h1:KAty5L/vcHjh3qcTfC4R5Nfd0tkk7MLJnux/IQKfQLg= +github.com/apache/dubbo-go-hessian2 v1.6.2/go.mod h1:7rEw9guWABQa6Aqb8HeZcsYPHsOS7XT1qtJvkmI6c5w= github.com/apache/dubbo-go-hessian2 v1.7.0 h1:u2XxIuepu/zb6JcGZc7EbvKboXdKoJbf7rbmeq6SF1w= github.com/apache/dubbo-go-hessian2 v1.7.0/go.mod h1:7rEw9guWABQa6Aqb8HeZcsYPHsOS7XT1qtJvkmI6c5w= +github.com/apache/dubbo-go-hessian2 v1.8.0 h1:+GJQHxWd/WUw2p4hbfCal/zjKvGVb8yJZzOke8IEazc= +github.com/apache/dubbo-go-hessian2 v1.8.0/go.mod h1:7rEw9guWABQa6Aqb8HeZcsYPHsOS7XT1qtJvkmI6c5w= +github.com/apache/dubbo-go-hessian2 v1.8.2 h1:CQq2Mmlrk6Fqmudwl9Dqps8drTrBFnmXRlzgOjj0FqA= +github.com/apache/dubbo-go-hessian2 v1.8.2/go.mod h1:xQUjE7F8PX49nm80kChFvepA/AvqAZ0oh/UaB6+6pBE= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= @@ -120,6 +144,10 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg= github.com/armon/go-metrics v0.3.0 h1:B7AQgHi8QSEi4uHu7Sbsga+IJDU+CENgjxoo81vDUqU= github.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs= +github.com/armon/go-metrics v0.3.4 h1:Xqf+7f2Vhl9tsqDYmXhnXInUdcrtgpRNpIA15/uldSc= +github.com/armon/go-metrics v0.3.4/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= +github.com/armon/go-metrics v0.3.5-0.20201104215618-6fd5a4ddf425 h1:23nUvGE+8HYFc0AUXuYxgFws6IdyzOrSJJmKfPMJmi8= +github.com/armon/go-metrics v0.3.5-0.20201104215618-6fd5a4ddf425/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= @@ -127,6 +155,7 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkY github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.41/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0 h1:0xphMHGMLBrPMfxR2AmVjZKcMEESEgWF8Kru94BNByk= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= @@ -166,6 +195,9 @@ github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= @@ -199,6 +231,7 @@ github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= @@ -208,6 +241,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creasty/defaults v1.3.0 h1:uG+RAxYbJgOPCOdKEcec9ZJXeva7Y6mj/8egdzwmLtw= +github.com/creasty/defaults v1.3.0/go.mod h1:CIEEvs7oIVZm30R8VxtFJs+4k201gReYyuYHJxZc68I= github.com/creasty/defaults v1.5.1 h1:j8WexcS3d/t4ZmllX4GEkl4wIB/trOr035ajcLHCISM= github.com/creasty/defaults v1.5.1/go.mod h1:FPZ+Y0WNrbqOVw+c6av63eyHUAl6pMHZwqLPvXUZGfY= github.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc= @@ -247,11 +282,54 @@ github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/dubbogo/getty v1.3.7 h1:xlkYD2/AH34iGteuLMsGjLl2PwBVrbIhHjf3tlUsv1M= github.com/dubbogo/getty v1.3.7/go.mod h1:XWO4+wAaMqgnBN9Ykv2YxxOAkGxymg6LGO9RK+EiCDY= +github.com/dubbogo/go-zookeeper v1.0.1 h1:irLzvOsDOTNsN8Sv9tvYYxVu6DCQfLtziZQtUHmZgz8= +github.com/dubbogo/go-zookeeper v1.0.1/go.mod h1:fn6n2CAEer3novYgk9ULLwAjuV8/g4DdC2ENwRb6E+c= github.com/dubbogo/go-zookeeper v1.0.2 h1:xmEnPL8SlCe3/+J5ZR9e8qE35LmFVYe8VVpDakjNM4A= github.com/dubbogo/go-zookeeper v1.0.2/go.mod h1:fn6n2CAEer3novYgk9ULLwAjuV8/g4DdC2ENwRb6E+c= +github.com/dubbogo/go-zookeeper v1.0.3 h1:UkuY+rBsxdT7Bs63QAzp9z7XqQ53W1j8E5rwl83me8g= +github.com/dubbogo/go-zookeeper v1.0.3/go.mod h1:fn6n2CAEer3novYgk9ULLwAjuV8/g4DdC2ENwRb6E+c= github.com/dubbogo/gost v1.9.0/go.mod h1:pPTjVyoJan3aPxBPNUX0ADkXjPibLo+/Ib0/fADXSG8= +github.com/dubbogo/gost v1.9.1/go.mod h1:pPTjVyoJan3aPxBPNUX0ADkXjPibLo+/Ib0/fADXSG8= github.com/dubbogo/gost v1.9.5 h1:UeG4y0O55lR3dzgdmCm/7bMWvpKrlpR7fsfKjrcXq/g= github.com/dubbogo/gost v1.9.5/go.mod h1:QNM5RaeRdNWehUu8S0hUP5Qa8QUfGf6KH1JhqOVFvEI= +github.com/dubbogo/gost v1.10.1 h1:39kF9Cd5JOiMpmwG6dX1/aLWNFqFv9gHp8HrhzMmjLY= +github.com/dubbogo/gost v1.10.1/go.mod h1:+mQGS51XQEUWZP2JeGZTxJwipjRKtJO7Tr+FOg+72rI= +github.com/dubbogo/gost v1.11.0 h1:9KtyWQz1gMlAfwzen5iyhMdoe08SPBBUVhco4rdgJ9I= +github.com/dubbogo/gost v1.11.0/go.mod h1:w8Yw29eDWtRVo3tx9nPpHkNZnOi4SRx1fZf7eVlAAU4= +github.com/dubbogo/gost v1.11.2 h1:NanyHmvzE1HrgI2T9H/jE/N1wkxFEj+IbM1A4RT9H7Q= +github.com/dubbogo/gost v1.11.2/go.mod h1:3QQEj50QOhkWTERT785YZ5ZxIRGNdR11FCLP7FzHsMc= +github.com/dubbogo/gost v1.11.3 h1:PSP9KQyuRJugmPLqC18MFgoIL0g1G4n/9FTKgQYjjbE= +github.com/dubbogo/jsonparser v1.0.1/go.mod h1:tYAtpctvSP/tWw4MeelsowSPgXQRVHHWbqL6ynps8jU= +github.com/dubbogo/net v0.0.0-20210208122052-3ebc7bbc2dd8 h1:1lzbhfZqWMvunVbn2DYarj9F0mYG1NodMBJyDpKUUUg= +github.com/dubbogo/net v0.0.0-20210208122052-3ebc7bbc2dd8/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +github.com/dubbogo/net v0.0.0-20210209064142-0e3827157a56 h1:SGuRExIHI3zirhNOzZYvjfE5Pix6wFR3ZWSby1o9IBE= +github.com/dubbogo/net v0.0.0-20210209064142-0e3827157a56/go.mod h1:c+UEOYQYSvuxEb0Lnb/dNiD5jhxOYIa044Pw5gaANzY= +github.com/dubbogo/net v0.0.2-0.20210301082523-598c5b483149 h1:5l836FmJx+o4ZQ8HQoNlmkdu/CB0XSa8N9Cn9nEoy/Q= +github.com/dubbogo/net v0.0.2-0.20210301082523-598c5b483149/go.mod h1:B6/ka3g8VzcyrmdCH4VkHP1K0aHeI37FmclS+TCwIBU= +github.com/dubbogo/net v0.0.2-0.20210312095142-e0595532fde0 h1:py5ROrTvAmvYO5IK5gxGPwbGFmo7AHrZFxp7avqOSJY= +github.com/dubbogo/net v0.0.2-0.20210312095142-e0595532fde0/go.mod h1:B6/ka3g8VzcyrmdCH4VkHP1K0aHeI37FmclS+TCwIBU= +github.com/dubbogo/net v0.0.2-0.20210314060136-1d6159530542/go.mod h1:B6/ka3g8VzcyrmdCH4VkHP1K0aHeI37FmclS+TCwIBU= +github.com/dubbogo/triple v0.0.0-20210108081039-4fe35975aff1 h1:CJF2ubkPMLP6L8ehXdaitqr7yTAY27IYvGuD/qy+BI8= +github.com/dubbogo/triple v0.0.0-20210108081039-4fe35975aff1/go.mod h1:GpLPajP2b/G8zNtG8R30BhJEuwzh29X48oqi7OLgALk= +github.com/dubbogo/triple v0.0.0-20210109081225-7eb79b3a65e1 h1:Z2S9bLf96TYWpBvu8R+607wdAwzKLoIPqBO9ayroccE= +github.com/dubbogo/triple v0.0.0-20210109081225-7eb79b3a65e1/go.mod h1:GpLPajP2b/G8zNtG8R30BhJEuwzh29X48oqi7OLgALk= +github.com/dubbogo/triple v0.0.0-20210121123924-b520a38ad388 h1:Pk4/dSYY5j+LqPCJ0cVU8R9Ch+2aJYA/wRoD9vRwi7s= +github.com/dubbogo/triple v0.0.0-20210121123924-b520a38ad388/go.mod h1:BjcB5hCtXrvEQ0C6SpILTXYCRoP54qUiFd88ELNa4nI= +github.com/dubbogo/triple v0.0.0-20210126122925-f5ca080bd156 h1:/7YqdIxdCjpW7jkszouum4MfXgW0gDG22y3Z50I2HXE= +github.com/dubbogo/triple v0.0.0-20210126122925-f5ca080bd156/go.mod h1:Jsn9daeAcyuES89X9qee2Wl2TpLJsoe8QMuUOvl6uBo= +github.com/dubbogo/triple v0.0.0-20210205060737-5ed455ad6017 h1:IF1qNx/jru+oZYgJOZisTaBKnmwrfr+Y8vy9XPwYFzk= +github.com/dubbogo/triple v0.0.0-20210205060737-5ed455ad6017/go.mod h1:ULV/Y9oyHId8sZaNfGi9yWomJ0Q22JThWcOawAaVUJw= +github.com/dubbogo/triple v0.0.0-20210208121229-c7d4a3834d59 h1:lpsV2OQtCkCdqp0PTBp9J+y4/oLQe/mWBMGtGySfYnA= +github.com/dubbogo/triple v0.0.0-20210208121229-c7d4a3834d59/go.mod h1:QsqNdWM4lKUdhx0CZQ9jo5vrH3plLi9xonIO5pZNxsA= +github.com/dubbogo/triple v0.0.0-20210209063802-ba75c3ed4425/go.mod h1:H0+IdFdLkIm5m8rCn8ANoJQuIp+K1U/7ifm8f4EUPvA= +github.com/dubbogo/triple v0.0.0-20210209070209-fbd5ecacd554 h1:/s4kdqKbNb6phSv3q2uktnOz53Xy61wa0b+2qKztuOw= +github.com/dubbogo/triple v0.0.0-20210209070209-fbd5ecacd554/go.mod h1:F/zbWMfPo/JB1wX03Pg61uY2KcguFBnYizSAbhYY/d8= +github.com/dubbogo/triple v0.0.0-20210301083516-185f5a3b1234 h1:2u3jO/06/Itk5pI15ObaX1r/+wmwPiO64/AEo+E8ECM= +github.com/dubbogo/triple v0.0.0-20210301083516-185f5a3b1234/go.mod h1:v1szRcUO/P3lbe2NveWHBLsI4d3fF9tVCg5f8CB3WE8= +github.com/dubbogo/triple v0.0.0-20210312095439-fac31783582e h1:Pf57Wga7yr5DG1Vhgjz78EE+oDK87+DJb3myWdtOaBc= +github.com/dubbogo/triple v0.0.0-20210312095439-fac31783582e/go.mod h1:ePIQ4gmj5lSA0x7UEDkcdKDWtJb+Tdh7zLuI7Rq2ap0= +github.com/dubbogo/triple v0.0.0-20210314060249-a8daea612f94 h1:njPcvq1+x/RMMKjE62R+G3cJQ7hlka64A5aOioGIBMA= +github.com/dubbogo/triple v0.0.0-20210314060249-a8daea612f94/go.mod h1:/jrqKfnQRjI91dFT3cgUuDkG3AuFPTTMOya6RdCiVcE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -260,12 +338,14 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/ef-ds/deque v1.0.4-0.20190904040645-54cb57c252a1/go.mod h1:HvODWzv6Y6kBf3Ah2WzN1bHjDUezGLaAhwuWVwfpEJs= +github.com/elazarl/go-bindata-assetfs v0.0.0-20160803192304-e1a2a7ec64b0 h1:ZoRgc53qJCfSLimXqJDrmBhnt5GChDsExMCK7t48o0Y= github.com/elazarl/go-bindata-assetfs v0.0.0-20160803192304-e1a2a7ec64b0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1/YsqVWoWNLQO+fusocsw354rqGTZtAgw= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful/v3 v3.0.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emicklei/go-restful/v3 v3.4.0 h1:IIDhql3oyWZj1ay2xBZGb4sTOWMad0HVW8rwhVxN/Yk= github.com/emicklei/go-restful/v3 v3.4.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= @@ -289,12 +369,16 @@ github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVB github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/frankban/quicktest v1.4.1 h1:Wv2VwvNn73pAdFIVUQRXYDFp31lXKbqblIXo/Q5GPSg= github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= +github.com/frankban/quicktest v1.11.0 h1:Yyrghcw93e1jKo4DTZkRFTTFvBsVhzbblBUPNU1vW6Q= +github.com/frankban/quicktest v1.11.0/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= +github.com/frankban/quicktest v1.11.1/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= github.com/gin-gonic/gin v1.6.2/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= @@ -316,6 +400,7 @@ github.com/go-git/go-git-fixtures/v4 v4.0.1/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1 github.com/go-git/go-git/v5 v5.1.0/go.mod h1:ZKfuPUoY1ZqIG4QG9BDBh3G4gLM5zvPuSJAozQrZuyM= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-ini/ini v1.44.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -341,6 +426,7 @@ github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEK github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-redis/redis v6.15.5+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= +github.com/go-resty/resty/v2 v2.1.0/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8= github.com/go-resty/resty/v2 v2.3.0 h1:JOOeAvjSlapTT92p8xiS19Zxev1neGikoHsXJeOq8So= github.com/go-resty/resty/v2 v2.3.0/go.mod h1:UpN9CgLZNsv4e9XG50UU8xdI0F43UQ4HmxLBDwaroHU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= @@ -366,6 +452,7 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= @@ -377,6 +464,7 @@ github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18h github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= @@ -393,6 +481,7 @@ github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:x github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= @@ -408,12 +497,16 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -423,6 +516,10 @@ github.com/google/tcpproxy v0.0.0-20180808230851-dfa16c61dad2/go.mod h1:DavVbd41 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= @@ -451,38 +548,53 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmg github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= github.com/hashicorp/consul v1.8.0 h1:yRKMKZyPLqUxl37t4nFt5OuGmTXoFhTJrakhfnYKCYA= github.com/hashicorp/consul v1.8.0/go.mod h1:Gg9/UgAQ9rdY3CTvzQZ6g2jcIb7NlIfjI+0pvLk5D1A= +github.com/hashicorp/consul v1.8.5 h1:vvDag8U77MIhDCwnR+yOoABlMIcRqml7Id3h8crW+i8= +github.com/hashicorp/consul v1.8.5/go.mod h1:bNsHf1jYs36NJLuxmtMovGelihVDYBNm+0xifkufuPI= +github.com/hashicorp/consul v1.9.0 h1:g61sZAigyz020T/6rX9orB3c4VRWV8pim7bHmUuxsG0= +github.com/hashicorp/consul v1.9.0/go.mod h1:iF0ucJpzFd7juWyutjxNBaxdWal2kJM2GPDlkkk2CG4= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/api v1.4.0/go.mod h1:xc8u05kyMa3Wjr9eEAsIAo3dg8+LywT5E/Cl7cNS5nU= github.com/hashicorp/consul/api v1.5.0 h1:Yo2bneoGy68A7aNwmuETFnPhjyBEm7n3vzRacEVMjvI= github.com/hashicorp/consul/api v1.5.0/go.mod h1:LqwrLNW876eYSuUOo4ZLHBcdKc038txr/IMfbLPATa4= +github.com/hashicorp/consul/api v1.7.0/go.mod h1:1NSuaUUkFaJzMasbfq/11wKYWSR67Xn6r2DXKhuDNFg= +github.com/hashicorp/consul/api v1.8.0 h1:/djwFfq2mSyZeP6iqRpmYUzsJtzG5I9SlP3FJvSlbTE= +github.com/hashicorp/consul/api v1.8.0/go.mod h1:sDjTOq0yUyv5G4h+BqSea7Fn6BU+XbolEz1952UB+mk= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.4.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= github.com/hashicorp/consul/sdk v0.5.0 h1:WC4594Wp/LkEeML/OdQKEC1yqBmEYkRp6i7X5u0zDAs= github.com/hashicorp/consul/sdk v0.5.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= +github.com/hashicorp/consul/sdk v0.6.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= +github.com/hashicorp/consul/sdk v0.7.0 h1:H6R9d008jDcHPQPAqPNuydAshJ4v5/8URdFnUvK/+sc= +github.com/hashicorp/consul/sdk v0.7.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-bexpr v0.1.2 h1:ijMXI4qERbzxbCnkxmfUtwMyjrrk3y+Vt0MxojNCbBs= github.com/hashicorp/go-bexpr v0.1.2/go.mod h1:ANbpTX1oAql27TZkKVeW8p1w8NTdnyzPe/0qqPCKohU= github.com/hashicorp/go-checkpoint v0.0.0-20171009173528-1545e56e46de/go.mod h1:xIwEieBHERyEvaeKF/TcHh1Hu+lxPM+n2vT1+g9I4m4= +github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-connlimit v0.2.0 h1:OZjcfNxH/hPh/bT2Iw5yOJcLzz+zuIWpsp3I1S4Pjw4= github.com/hashicorp/go-connlimit v0.2.0/go.mod h1:OUj9FGL1tPIhl/2RCfzYHrIiWj+VVPGNyVPnUX8AqS0= +github.com/hashicorp/go-connlimit v0.3.0 h1:oAojHGjFxUTTTA8c5XXnDqWJ2HLuWbDiBPTpWvNzvqM= +github.com/hashicorp/go-connlimit v0.3.0/go.mod h1:OUj9FGL1tPIhl/2RCfzYHrIiWj+VVPGNyVPnUX8AqS0= github.com/hashicorp/go-discover v0.0.0-20200501174627-ad1e96bde088 h1:jBvElOilnIl6mm8S6gva/dfeTJCcMs9TGO6/2C6k52E= github.com/hashicorp/go-discover v0.0.0-20200501174627-ad1e96bde088/go.mod h1:vZu6Opqf49xX5lsFAu7iFNewkcVF1sn/wyapZh5ytlg= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= @@ -491,11 +603,20 @@ github.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrj github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.12.0 h1:d4QkX8FRTYaKaCZBoXYY8zJX2BXjWxurN/GA2tkrmZM= github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.14.1 h1:nQcJDQwIAGnmoUWp8ubocEX40cCml/17YkF6csQLReU= +github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.1.0 h1:vN9wG1D6KG6YHRTWr8512cxGOVgTMEfgEdSj/hr8MPc= github.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.2.0 h1:l6UW37iCXwZkZoAbEYnptSHVE/cQ5bOTPYG5W3vf9+8= +github.com/hashicorp/go-immutable-radix v1.2.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.3.0 h1:8exGP7ego3OmkfksihtSouGMZ+hQrhxx+FVELeXpVPE= +github.com/hashicorp/go-immutable-radix v1.3.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jUIEJnBlbgKS1N2Q61QkHiZyR1g= github.com/hashicorp/go-memdb v1.0.3 h1:iiqzNk8jKB6/sLRj623Ui/Vi1zf21LOUpgzGjTge6a8= github.com/hashicorp/go-memdb v1.0.3/go.mod h1:LWQ8R70vPrS4OEY9k28D2z8/Zzyu34NVzeRibGAzHO0= +github.com/hashicorp/go-memdb v1.3.0 h1:xdXq34gBOMEloa9rlGStLxmfX/dyIK8htOv36dQUwHU= +github.com/hashicorp/go-memdb v1.3.0/go.mod h1:Mluclgwib3R93Hk5fxEfiRhB+6Dar64wWh71LpNSe3g= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= @@ -504,6 +625,7 @@ github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHh github.com/hashicorp/go-multierror v1.1.0 h1:B9UzwGQJehnUY1yNrnwREHc3fGbC2xefo8g4TbElacI= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= +github.com/hashicorp/go-raftchunking v0.6.1 h1:moEnaG3gcwsWNyIBJoD5PCByE+Ewkqxh6N05CT+MbwA= github.com/hashicorp/go-raftchunking v0.6.1/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0= github.com/hashicorp/go-raftchunking v0.6.3-0.20191002164813-7e9e8525653a h1:FmnBDwGwlTgugDGbVxwV8UavqSMACbGrUpfc98yFLR4= github.com/hashicorp/go-raftchunking v0.6.3-0.20191002164813-7e9e8525653a/go.mod h1:xbXnmKqX9/+RhPkJ4zrEx4738HacP72aaUPlT2RZ4sU= @@ -511,6 +633,9 @@ github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.6.2 h1:bHM2aVXwBtBJWxHtkSrWuI4umABCUczs52eiUS9nSiw= github.com/hashicorp/go-retryablehttp v0.6.2/go.mod h1:gEx6HMUGxYYhJScX7W1Il64m6cc2C1mDaW3NQ9sY1FY= +github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-retryablehttp v0.6.7 h1:8/CAEZt/+F7kR7GevNHulKkUjLht3CPmn7egmhieNKo= +github.com/hashicorp/go-retryablehttp v0.6.7/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= @@ -528,19 +653,28 @@ github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0 h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI= +github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hil v0.0.0-20160711231837-1e86c6b523c5 h1:uk280DXEbQiCOZgCOI3elFSeNxf8YIZiNsbr2pQLYD0= github.com/hashicorp/hil v0.0.0-20160711231837-1e86c6b523c5/go.mod h1:KHvg/R2/dPtaePb16oW4qIyzkMxXOL38xjRN64adsts= +github.com/hashicorp/hil v0.0.0-20200423225030-a18a1cd20038 h1:n9J0rwVWXDpNd5iZnwY7w4WZyq53/rROeI7OVvLW8Ok= +github.com/hashicorp/hil v0.0.0-20200423225030-a18a1cd20038/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/mdns v1.0.1 h1:XFSOubp8KWB+Jd2PDyaX5xUd5bhSP/+pTDZVDMzZJM8= github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= +github.com/hashicorp/mdns v1.0.3 h1:hPneYJlzSjxFBmUlnDGXRykxBZ++dQAJhU57gCO7TzI= +github.com/hashicorp/mdns v1.0.3/go.mod h1:P9sIDVQGUBr2GtS4qS2QCBdtgqP7TBt6d8looU5l5r4= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/memberlist v0.2.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/memberlist v0.2.2 h1:5+RffWKwqJ71YPu9mWsF7ZOscZmwfasdA8kbdC7AO2g= @@ -551,24 +685,38 @@ github.com/hashicorp/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7 github.com/hashicorp/raft v1.1.2-0.20191002163536-9c6bd3e3eb17/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= github.com/hashicorp/raft v1.1.2 h1:oxEL5DDeurYxLd3UbcY/hccgSPhLLpiBZ1YxtWEq59c= github.com/hashicorp/raft v1.1.2/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= +github.com/hashicorp/raft v1.2.0 h1:mHzHIrF0S91d3A7RPBvuqkgB4d/7oFJZyvf1Q4m7GA0= +github.com/hashicorp/raft v1.2.0/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= +github.com/hashicorp/raft-autopilot v0.1.1 h1:f8Dv2y1Vq8ttuH2+oh5l87Paj/BINpMm5TBrMLx+qGQ= +github.com/hashicorp/raft-autopilot v0.1.1/go.mod h1:HUBUSYtpQRVkgjvvoOgsZPvwe6b6FZJ1xXtaftRZvrA= github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea h1:xykPFhrBAS2J0VBzVa5e80b5ZtYuNQtgXjN40qBZlD4= github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/serf v0.9.0/go.mod h1:YL0HO+FifKOW2u1ke99DGVu1zhcpZzNwrLIqBC7vbYU= github.com/hashicorp/serf v0.9.2 h1:yJoyfZXo4Pk2p/M/viW+YLibBFiIbKoP79gu7kDAFP0= github.com/hashicorp/serf v0.9.2/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= +github.com/hashicorp/serf v0.9.3/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= +github.com/hashicorp/serf v0.9.4/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= +github.com/hashicorp/serf v0.9.5 h1:EBWvyu9tcRszt3Bxp3KNssBMP1KuHWyO51lz9+786iM= +github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= github.com/hashicorp/vault/api v1.0.5-0.20191108163347-bdd38fca2cff h1:cl94LQIrs/mNbh3ny1R8lM1gtYcUBa7HnGtOCi35SlQ= github.com/hashicorp/vault/api v1.0.5-0.20191108163347-bdd38fca2cff/go.mod h1:Uf8LaHyrYsgVgHzO2tMZKhqRGlL3UJ6XaSwW2EA1Iqo= +github.com/hashicorp/vault/api v1.0.5-0.20200717191844-f687267c8086 h1:OKsyxKi2sNmqm1Gv93adf2AID2FOBFdCbbZn9fGtIdg= +github.com/hashicorp/vault/api v1.0.5-0.20200717191844-f687267c8086/go.mod h1:R3Umvhlxi2TN7Ex2hzOowyeNb+SfbVWI973N+ctaFMk= github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= github.com/hashicorp/vault/sdk v0.1.14-0.20191108161836-82f2b5571044/go.mod h1:PcekaFGiPJyHnFy+NZhP6ll650zEw51Ag7g/YEa+EOU= github.com/hashicorp/vault/sdk v0.1.14-0.20191112033314-390e96e22eb2 h1:mKYi4Fm2uSfe94Ji89CoAaP7SPEEkfdtaUlgRGGb2go= github.com/hashicorp/vault/sdk v0.1.14-0.20191112033314-390e96e22eb2/go.mod h1:PcekaFGiPJyHnFy+NZhP6ll650zEw51Ag7g/YEa+EOU= +github.com/hashicorp/vault/sdk v0.1.14-0.20200519221838-e0cfd64bc267 h1:e1ok06zGrWJW91rzRroyl5nRNqraaBe4d5hiKcVZuHM= +github.com/hashicorp/vault/sdk v0.1.14-0.20200519221838-e0cfd64bc267/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= github.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443 h1:O/pT5C1Q3mVXMyuqg7yuAWUg/jMZR1/0QTzTRdNR6Uw= github.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443/go.mod h1:bEpDU35nTu0ey1EXjwNwPjI9xErAsoOCmcMb9GKvyxo= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d h1:kJCB4vdITiW1eC1vq2e6IsrXKrZit1bv/TDYFGMp4BQ= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hashicorp/yamux v0.0.0-20200609203250-aecfd211c9ce h1:7UnVY3T/ZnHUrfviiAgIUjg2PXxsQfs5bphsG8F7Keo= +github.com/hashicorp/yamux v0.0.0-20200609203250-aecfd211c9ce/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= @@ -593,6 +741,7 @@ github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5i github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/joyent/triton-go v0.0.0-20180628001255-830d2b111e62/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA= github.com/joyent/triton-go v1.7.1-0.20200416154420-6801d15b779f h1:ENpDacvnr8faw5ugQmEF1QYk+f/Y9lXFvuYmRxykago= github.com/joyent/triton-go v1.7.1-0.20200416154420-6801d15b779f/go.mod h1:KDSfL7qe5ZfQqvlDMkVjCztbmcpp/c8M77vhQP8ZPvk= @@ -628,6 +777,7 @@ github.com/k0kubun/pp v3.0.1+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3t github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/kolo/xmlrpc v0.0.0-20190717152603-07c4ee3fd181/go.mod h1:o03bZfuBwAXHetKXuInt4S7omeXUu62/A845kiycsSQ= @@ -639,6 +789,8 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 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= @@ -667,6 +819,7 @@ github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVL github.com/lucas-clemente/quic-go v0.14.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.4 h1:8KGKTcQQGm0Kv7vEbKFErAoAOFyyacLStRtQSeYtvkY= github.com/magiconair/properties v1.8.4/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= @@ -703,6 +856,8 @@ github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.27 h1:aEH/kqUzUxGJ/UHcEKdJY+ugH6WEzsEBBSPa8zuy1aM= github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/miekg/dns v1.1.31 h1:sJFOl9BgwbYAWOGEwr61FU28pqsBNdpRBnhGXtO06Oo= +github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.1.0 h1:tEElEatulEHDeedTxwckzyYMA5c86fbmNIUL1hBIiTg= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= @@ -724,9 +879,14 @@ github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1D github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.2.3 h1:f/MjBEBDLttYCGfRaKBbKSRVF5aV2O6fnBpzknuE3jU= github.com/mitchellh/mapstructure v1.2.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.0 h1:7ks8ZkOP5/ujthUsT07rNv+nkLXCQWKNHuwzOAesEks= github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.0.0 h1:ATSdz4NWrmWPOF1CeCBU4sMCno2hgqdbSrRPFWQSVZI= github.com/mitchellh/pointerstructure v1.0.0/go.mod h1:k4XwG94++jLVsSiTxo7qdIfXA9pj9EAeo0QsNNJOLZ8= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -746,9 +906,15 @@ github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/nacos-group/nacos-sdk-go v1.0.0 h1:CufUF7DZca2ZzIrJtMMCDih1sA58BWCglArLMCZArUc= github.com/nacos-group/nacos-sdk-go v1.0.0/go.mod h1:hlAPn3UdzlxIlSILAyOXKxjFSvDJ9oLzTJ9hLAK1KzA= github.com/nacos-group/nacos-sdk-go v1.0.1 h1:VNmXGlSS28xOmkO5Nxk5WRp6f1HMosAmG9pDtcnUFcw= github.com/nacos-group/nacos-sdk-go v1.0.1/go.mod h1:hlAPn3UdzlxIlSILAyOXKxjFSvDJ9oLzTJ9hLAK1KzA= +github.com/nacos-group/nacos-sdk-go v1.0.3/go.mod h1:hlAPn3UdzlxIlSILAyOXKxjFSvDJ9oLzTJ9hLAK1KzA= +github.com/nacos-group/nacos-sdk-go v1.0.5 h1:xwLS0Ao7fSB3HoDFR+JRZ1fh0HuvgHPOWBdals37Oxc= +github.com/nacos-group/nacos-sdk-go v1.0.5/go.mod h1:hlAPn3UdzlxIlSILAyOXKxjFSvDJ9oLzTJ9hLAK1KzA= +github.com/nacos-group/nacos-sdk-go v1.0.6 h1:0OqjS37qIKKKZKRQSJ5pNFGRrfzP7+gD4L6dvOkPFZw= +github.com/nacos-group/nacos-sdk-go v1.0.6/go.mod h1:hlAPn3UdzlxIlSILAyOXKxjFSvDJ9oLzTJ9hLAK1KzA= github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= @@ -828,6 +994,8 @@ github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0 github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.2.6+incompatible h1:6aCX4/YZ9v8q69hTyiR7dNLnTA3fgtKHVVW5BCd5Znw= github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI= +github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8/go.mod h1:B1+S9LNcuMyLH/4HMTViQOJevkGiik3wW2AN9zb2fNQ= github.com/pingcap/check v0.0.0-20200212061837-5e12011dc712 h1:R8gStypOBmpnHEx1qi//SaqxJVI4inOqljg/Aj5/390= github.com/pingcap/check v0.0.0-20200212061837-5e12011dc712/go.mod h1:PYMCGwN0JHjoqGr3HrZoD+b8Tgx8bKnArhSq8YVzUMc= @@ -861,9 +1029,12 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= +github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0 h1:zvJNkoCFAnYFNC24FV8nW4JdRJ3GIFcLbg65lL/JDcw= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= +github.com/prometheus/client_golang v1.9.0 h1:Rrch9mh17XcxvEu9D9DEpb4isxjGBtcevQjKvxPRQIU= +github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -877,9 +1048,12 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0 h1:RHRyE8UocrbjU+6UvRzwi6HjiDfxrrBU91TtbKzkGp4= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +github.com/prometheus/common v0.15.0 h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM= +github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -899,6 +1073,7 @@ github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qq github.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03 h1:Wdi9nwnhFNAlseAOekn6B5G/+GMtks9UKbvRU/CMM/o= github.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/zerolog v1.4.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= @@ -918,8 +1093,15 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUt github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shirou/gopsutil v0.0.0-20181107111621-48177ef5f880/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v2.19.9+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v2.19.12+incompatible h1:WRstheAymn1WOPesh+24+bZKFkqrdCR8JOc77v4xV3Q= github.com/shirou/gopsutil v2.19.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v2.20.9+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v3.20.11-0.20201116082039-2fb5da2f2449+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v3.20.11+incompatible h1:LJr4ZQK4mPpIV5gOa4jCOKOGb4ty4DZO54I4FGqIpto= +github.com/shirou/gopsutil v3.20.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil/v3 v3.20.10 h1:7zomV9HJv6UGk225YtvEa5+camNLpbua3MAz/GqiVJY= +github.com/shirou/gopsutil/v3 v3.20.10/go.mod h1:igHnfak0qnw1biGeI2qKQvu0ZkwvEkUcCLlYhZzdr/4= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -958,12 +1140,14 @@ 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/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -974,6 +1158,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -992,6 +1178,7 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc h1:yUaosFVTJwnltaHbSNC3i82I92quFs+OFPRl8kNMVwo= github.com/tmc/grpc-websocket-proxy v0.0.0-20200122045848-3419fae592fc/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3 h1:kF/7m/ZU+0D4Jj5eZ41Zm3IH/J8OElK1Qtd7tVKAwLk= github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3/go.mod h1:QDlpd3qS71vYtakd2hmdpqhJ9nwv6mD6A30bQ1BPBFE= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= @@ -1030,6 +1217,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= +github.com/zouyx/agollo/v3 v3.4.4/go.mod h1:ag0XmE1r4iAgPd6PUnU9TJ0DMEjM1VKX1HUNqQJ2ywU= github.com/zouyx/agollo/v3 v3.4.5 h1:7YCxzY9ZYaH9TuVUBvmI6Tk0mwMggikah+cfbYogcHQ= github.com/zouyx/agollo/v3 v3.4.5/go.mod h1:LJr3kDmm23QSW+F1Ol4TMHDa7HvJvscMdVxJ2IpUTVc= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -1049,6 +1237,9 @@ go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= @@ -1061,6 +1252,7 @@ go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +go.uber.org/zap v1.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM= go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= @@ -1091,12 +1283,16 @@ golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200930160638-afb6bcd081ae h1:duLSQW+DZ5MsXKX7kc4rXlq6/mmxz4G6ewJuBPlhRe0= +golang.org/x/crypto v0.0.0-20200930160638-afb6bcd081ae/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1114,6 +1310,7 @@ golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCc golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -1147,23 +1344,35 @@ golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191027093000-83d349e8ac1a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200930145003-4acb6c075d10/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1200,34 +1409,52 @@ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201007082116-8445cc04cbdf/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211 h1:9UQO31fZ+0aKQOFldThf7BKPMJTiBfWycGh/u3UoO88= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201024232916-9f70ab9862d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201223074533-0d417f636930 h1:vRgIt+nup/B/BwIS0g2oC0haq0iqbV3ZA+u6+0TlNCo= +golang.org/x/sys v0.0.0-20201223074533-0d417f636930/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1252,6 +1479,7 @@ golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191107010934-f79515f33823/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1260,10 +1488,14 @@ golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200325203130-f53864d0dba1/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200513154647-78b527d18275/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200928182047-19e03678916f h1:VwGa2Wf+rHGIxvsssCkUNIyFv8jQY0VCBCNWtikoWq0= golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1298,6 +1530,12 @@ google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBr google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1 h1:aQktFqmDE2yjveXJlVIfslDFmFnUXSqG0i6KRcJAeMc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210106152847-07624b53cd92 h1:jOTk2Z6KYaWoptUFqZ167cS8peoUPjFEXrsqfVkkCGc= +google.golang.org/genproto v0.0.0-20210106152847-07624b53cd92/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1310,8 +1548,26 @@ google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.34.0 h1:raiipEjMOIC/TO2AvyTxP25XFdLxNIBwzDh3FM3XztI= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0 h1:o1bcQ6imQMIOpdrO3SWf2z5RV72WbDwdXuK0MDlc8As= +google.golang.org/grpc/examples v0.0.0-20210107225343-0bd76be2bb6b/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= +google.golang.org/grpc/examples v0.0.0-20210109011638-fb40d83340e8/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= +google.golang.org/grpc/examples v0.0.0-20210122012134-2c42474aca0c h1:SiWBD+cC77TBL94mBP6CZSlkxifkQpckpyGHcetepgc= +google.golang.org/grpc/examples v0.0.0-20210122012134-2c42474aca0c/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= +google.golang.org/grpc/examples v0.0.0-20210301210255-fc8f38cccf75 h1:IFbcGka/Xo8VIhRtCz9UBaDblKK7/iwLiXwm9D62Jzk= +google.golang.org/grpc/examples v0.0.0-20210301210255-fc8f38cccf75/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1320,6 +1576,11 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= @@ -1354,6 +1615,8 @@ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.4.1 h1:H0TmLt7/KmzlrDOpa1F+zr0Tk90PbJYBfsVUmRLrf9Y= gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/telegram-bot-api.v4 v4.6.4/go.mod h1:5DpGO5dbumb40px+dXcwCpcjmeHNYLpk0bp3XRNvWDM= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= @@ -1361,14 +1624,17 @@ gopkg.in/yaml.v2 v2.0.0-20170712054546-1be3d31502d6/go.mod h1:JAlM8MvJe8wmxCU4Bl gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1400,6 +1666,7 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8 sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= vimagination.zapto.org/byteio v0.0.0-20200222190125-d27cba0f0b10 h1:pxt6fVJP67Hxo1qk8JalUghLlk3abYByl+3e0JYfUlE= vimagination.zapto.org/byteio v0.0.0-20200222190125-d27cba0f0b10/go.mod h1:fl9OF22g6MTKgvHA1hqMXe/L7+ULWofVTwbC9loGu7A=