From 73838c26e2f8b36208e5b5777f454ebb3571487a Mon Sep 17 00:00:00 2001 From: SoXX Date: Sat, 6 Jul 2024 22:08:19 +0200 Subject: [PATCH 01/13] feat: updated protobuf files --- pkg/grpc/plug.pb.go | 32 ++++++++++++++++---------------- pkg/grpc/plug_grpc.pb.go | 27 ++++++++++----------------- scripts/README.md | 6 +++--- 3 files changed, 29 insertions(+), 36 deletions(-) diff --git a/pkg/grpc/plug.pb.go b/pkg/grpc/plug.pb.go index fc4fbcd..dfd0067 100644 --- a/pkg/grpc/plug.pb.go +++ b/pkg/grpc/plug.pb.go @@ -1,15 +1,15 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 -// protoc v3.19.6 +// protoc-gen-go v1.28.1 +// protoc v3.12.4 // source: plug.proto package gRPC import ( + timestamp "github.com/golang/protobuf/ptypes/timestamp" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -78,8 +78,8 @@ type PingRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // Optional message field, can be removed if not needed - Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // Optional message field, can be removed if not needed + Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *PingRequest) Reset() { @@ -121,7 +121,7 @@ func (x *PingRequest) GetMessage() string { return "" } -func (x *PingRequest) GetTimestamp() *timestamppb.Timestamp { +func (x *PingRequest) GetTimestamp() *timestamp.Timestamp { if x != nil { return x.Timestamp } @@ -133,8 +133,8 @@ type PongResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // Optional message field, can be removed if not needed - Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // Optional message field, can be removed if not needed + Timestamp *timestamp.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *PongResponse) Reset() { @@ -176,7 +176,7 @@ func (x *PongResponse) GetMessage() string { return "" } -func (x *PongResponse) GetTimestamp() *timestamppb.Timestamp { +func (x *PongResponse) GetTimestamp() *timestamp.Timestamp { if x != nil { return x.Timestamp } @@ -419,13 +419,13 @@ func file_plug_proto_rawDescGZIP() []byte { var file_plug_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_plug_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_plug_proto_goTypes = []interface{}{ - (PlugTaskState)(0), // 0: PlugTaskState - (*PingRequest)(nil), // 1: PingRequest - (*PongResponse)(nil), // 2: PongResponse - (*PlugTaskStatus)(nil), // 3: PlugTaskStatus - (*PlugTask)(nil), // 4: PlugTask - (*PlugTaskCreation)(nil), // 5: PlugTaskCreation - (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp + (PlugTaskState)(0), // 0: PlugTaskState + (*PingRequest)(nil), // 1: PingRequest + (*PongResponse)(nil), // 2: PongResponse + (*PlugTaskStatus)(nil), // 3: PlugTaskStatus + (*PlugTask)(nil), // 4: PlugTask + (*PlugTaskCreation)(nil), // 5: PlugTaskCreation + (*timestamp.Timestamp)(nil), // 6: google.protobuf.Timestamp } var file_plug_proto_depIdxs = []int32{ 6, // 0: PingRequest.timestamp:type_name -> google.protobuf.Timestamp diff --git a/pkg/grpc/plug_grpc.pb.go b/pkg/grpc/plug_grpc.pb.go index b4dfb18..26b8695 100644 --- a/pkg/grpc/plug_grpc.pb.go +++ b/pkg/grpc/plug_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 -// - protoc v3.19.6 +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.12.4 // source: plug.proto package gRPC @@ -18,13 +18,6 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 -const ( - PlugConnector_TaskStart_FullMethodName = "/PlugConnector/TaskStart" - PlugConnector_TaskStatus_FullMethodName = "/PlugConnector/TaskStatus" - PlugConnector_TaskCancel_FullMethodName = "/PlugConnector/TaskCancel" - PlugConnector_Ping_FullMethodName = "/PlugConnector/Ping" -) - // PlugConnectorClient is the client API for PlugConnector service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -45,7 +38,7 @@ func NewPlugConnectorClient(cc grpc.ClientConnInterface) PlugConnectorClient { func (c *plugConnectorClient) TaskStart(ctx context.Context, in *PlugTaskCreation, opts ...grpc.CallOption) (*PlugTaskStatus, error) { out := new(PlugTaskStatus) - err := c.cc.Invoke(ctx, PlugConnector_TaskStart_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/PlugConnector/TaskStart", in, out, opts...) if err != nil { return nil, err } @@ -54,7 +47,7 @@ func (c *plugConnectorClient) TaskStart(ctx context.Context, in *PlugTaskCreatio func (c *plugConnectorClient) TaskStatus(ctx context.Context, in *PlugTask, opts ...grpc.CallOption) (*PlugTaskStatus, error) { out := new(PlugTaskStatus) - err := c.cc.Invoke(ctx, PlugConnector_TaskStatus_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/PlugConnector/TaskStatus", in, out, opts...) if err != nil { return nil, err } @@ -63,7 +56,7 @@ func (c *plugConnectorClient) TaskStatus(ctx context.Context, in *PlugTask, opts func (c *plugConnectorClient) TaskCancel(ctx context.Context, in *PlugTask, opts ...grpc.CallOption) (*PlugTaskStatus, error) { out := new(PlugTaskStatus) - err := c.cc.Invoke(ctx, PlugConnector_TaskCancel_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/PlugConnector/TaskCancel", in, out, opts...) if err != nil { return nil, err } @@ -72,7 +65,7 @@ func (c *plugConnectorClient) TaskCancel(ctx context.Context, in *PlugTask, opts func (c *plugConnectorClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PongResponse, error) { out := new(PongResponse) - err := c.cc.Invoke(ctx, PlugConnector_Ping_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, "/PlugConnector/Ping", in, out, opts...) if err != nil { return nil, err } @@ -129,7 +122,7 @@ func _PlugConnector_TaskStart_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: PlugConnector_TaskStart_FullMethodName, + FullMethod: "/PlugConnector/TaskStart", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PlugConnectorServer).TaskStart(ctx, req.(*PlugTaskCreation)) @@ -147,7 +140,7 @@ func _PlugConnector_TaskStatus_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: PlugConnector_TaskStatus_FullMethodName, + FullMethod: "/PlugConnector/TaskStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PlugConnectorServer).TaskStatus(ctx, req.(*PlugTask)) @@ -165,7 +158,7 @@ func _PlugConnector_TaskCancel_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: PlugConnector_TaskCancel_FullMethodName, + FullMethod: "/PlugConnector/TaskCancel", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PlugConnectorServer).TaskCancel(ctx, req.(*PlugTask)) @@ -183,7 +176,7 @@ func _PlugConnector_Ping_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: PlugConnector_Ping_FullMethodName, + FullMethod: "/PlugConnector/Ping", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(PlugConnectorServer).Ping(ctx, req.(*PingRequest)) diff --git a/scripts/README.md b/scripts/README.md index c615f7c..73da469 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -7,9 +7,9 @@ To generate the gRPC files you need to do the following: 1. You need to install the [gRPC Compiler](https://grpc.io/docs/protoc-installation/) 2. Install the Golang Plugin for the compiler ````bash - go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - ```` - + go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 + go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2 + `````` ## Generate: 1. Download the Git submodules (if you didn't clone this repo with ``git clone --recurse-submodules``) ```bash From 054a5d27a9877b39e7fbec5c4f728777c85e5965 Mon Sep 17 00:00:00 2001 From: SoXX Date: Sun, 7 Jul 2024 00:26:24 +0200 Subject: [PATCH 02/13] feat: updated to latest otterSpaceSDK --- go.mod | 25 +++++-- go.sum | 160 +++++++++++++++++++++++++++++++++++++------ pkg/otter/connect.go | 14 ++-- pkg/plug/grpc.go | 12 ++-- pkg/plug/server.go | 10 +-- 5 files changed, 175 insertions(+), 46 deletions(-) diff --git a/go.mod b/go.mod index 6bd5ff7..1330ee8 100644 --- a/go.mod +++ b/go.mod @@ -3,19 +3,30 @@ module git.dragse.it/anthrove/plug-sdk go 1.22.0 require ( - git.dragse.it/anthrove/otter-space-sdk v1.0.0 - github.com/matoous/go-nanoid/v2 v2.0.0 + git.dragse.it/anthrove/otter-space-sdk/v2 v2.1.0 + github.com/golang/protobuf v1.5.4 + github.com/matoous/go-nanoid/v2 v2.1.0 google.golang.org/grpc v1.61.1 - google.golang.org/protobuf v1.32.0 + google.golang.org/protobuf v1.33.0 ) require ( - github.com/golang/protobuf v1.5.3 // indirect - github.com/neo4j/neo4j-go-driver/v5 v5.17.0 // indirect + github.com/go-gorp/gorp/v3 v3.1.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect + github.com/jackc/pgx/v5 v5.5.5 // indirect + github.com/jackc/puddle/v2 v2.2.1 // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.5 // indirect + github.com/lib/pq v1.10.9 // indirect + github.com/rubenv/sql-migrate v1.6.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/stretchr/testify v1.8.4 // indirect + golang.org/x/crypto v0.22.0 // indirect golang.org/x/net v0.21.0 // indirect - golang.org/x/sys v0.17.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect + gorm.io/driver/postgres v1.5.9 // indirect + gorm.io/gorm v1.25.10 // indirect ) diff --git a/go.sum b/go.sum index a93002e..2b4cf5f 100644 --- a/go.sum +++ b/go.sum @@ -1,45 +1,163 @@ -git.dragse.it/anthrove/otter-space-sdk v1.0.0 h1:sJ5d8yMFAosP9+315PxZc5yzYUdzAJEEyxoKDmc8YoE= -git.dragse.it/anthrove/otter-space-sdk v1.0.0/go.mod h1:QI2W7gm1GflcAeipEoyLZ3hj86DlIgwT9Lisc4c99Vs= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +git.dragse.it/anthrove/otter-space-sdk/v2 v2.1.0 h1:n3vePctwrBWDRccztsWYaBXejoEtno5ADT/c284hSFQ= +git.dragse.it/anthrove/otter-space-sdk/v2 v2.1.0/go.mod h1:kyN5WtWd0AjWipXGZnxaBz4bv3rT7Eyw0HmfkCB27AU= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.15 h1:afEHXdil9iAm03BmhjzKyXnnEBtjaLJefdU7DV0IFes= +github.com/containerd/containerd v1.7.15/go.mod h1:ISzRRTMF8EXNpJlTzyr2XMhN+j9K302C21/+cr3kUnY= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= +github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/matoous/go-nanoid v1.5.0/go.mod h1:zyD2a71IubI24efhpvkJz+ZwfwagzgSO6UNiFsZKN7U= -github.com/matoous/go-nanoid/v2 v2.0.0 h1:d19kur2QuLeHmJBkvYkFdhFBzLoo1XVm2GgTpL+9Tj0= -github.com/matoous/go-nanoid/v2 v2.0.0/go.mod h1:FtS4aGPVfEkxKxhdWPAspZpZSh1cOjtM7Ej/So3hR0g= -github.com/neo4j/neo4j-go-driver/v5 v5.17.0 h1:Bdqg1Y8Hd3uLYToXtBjysDYXTdMiP7zeUNUEwfbJkSo= -github.com/neo4j/neo4j-go-driver/v5 v5.17.0/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= +github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= +github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/matoous/go-nanoid/v2 v2.1.0 h1:P64+dmq21hhWdtvZfEAofnvJULaRR1Yib0+PnU669bE= +github.com/matoous/go-nanoid/v2 v2.1.0/go.mod h1:KlbGNQ+FhrUNIHUxZdL63t7tl4LaPkZNpUULS8H4uVM= +github.com/mattn/go-sqlite3 v1.14.19 h1:fhGleo2h1p8tVChob4I9HpmVFIAkKGpiukdrgQbWfGI= +github.com/mattn/go-sqlite3 v1.14.19/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= +github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rubenv/sql-migrate v1.6.1 h1:bo6/sjsan9HaXAsNxYP/jCEDUGibHp8JmOBw7NTGRos= +github.com/rubenv/sql-migrate v1.6.1/go.mod h1:tPzespupJS0jacLfhbwto/UjSX+8h2FdWB7ar+QlHa0= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/testcontainers/testcontainers-go v0.31.0 h1:W0VwIhcEVhRflwL9as3dhY6jXjVCA27AkmbnZ+UTh3U= +github.com/testcontainers/testcontainers-go v0.31.0/go.mod h1:D2lAoA0zUFiSY+eAflqK5mcUx/A5hrrORaEQrd0SefI= +github.com/testcontainers/testcontainers-go/modules/postgres v0.31.0 h1:isAwFS3KNKRbJMbWv+wolWqOFUECmjYZ+sIRZCIBc/E= +github.com/testcontainers/testcontainers-go/modules/postgres v0.31.0/go.mod h1:ZNYY8vumNCEG9YI59A9d6/YaMY49uwRhmeU563EzFGw= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/driver/postgres v1.5.9 h1:DkegyItji119OlcaLjqN11kHoUgZ/j13E0jkJZgD6A8= +gorm.io/driver/postgres v1.5.9/go.mod h1:DX3GReXH+3FPWGrrgffdvCk3DQ1dwDPdmbenSkweRGI= +gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= +gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= diff --git a/pkg/otter/connect.go b/pkg/otter/connect.go index f90479a..0b9f581 100644 --- a/pkg/otter/connect.go +++ b/pkg/otter/connect.go @@ -2,19 +2,19 @@ package otter import ( "context" - - "git.dragse.it/anthrove/otter-space-sdk/pkg/graph" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" ) -func ConnectToDatabase(ctx context.Context, endpoint string, username string, password string, debug bool) (graph.OtterSpace, error) { - var graphConnection graph.OtterSpace +func ConnectToDatabase(ctx context.Context, config models.DatabaseConfig) (database.OtterSpace, error) { + var otterSpace database.OtterSpace var err error - graphConnection = graph.NewGraphConnection(debug) - err = graphConnection.Connect(ctx, endpoint, username, password) + otterSpace = database.NewPostgresqlConnection() + err = otterSpace.Connect(ctx, config) if err != nil { return nil, err } - return graphConnection, err + return otterSpace, err } diff --git a/pkg/plug/grpc.go b/pkg/plug/grpc.go index af2148e..f6156c6 100644 --- a/pkg/plug/grpc.go +++ b/pkg/plug/grpc.go @@ -2,11 +2,11 @@ package plug import ( "context" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" "google.golang.org/protobuf/types/known/timestamppb" "log" - "git.dragse.it/anthrove/otter-space-sdk/pkg/graph" - "git.dragse.it/anthrove/otter-space-sdk/pkg/models" gRPC "git.dragse.it/anthrove/plug-sdk/pkg/grpc" gonanoid "github.com/matoous/go-nanoid/v2" ) @@ -14,11 +14,11 @@ import ( type server struct { gRPC.UnimplementedPlugConnectorServer ctx map[string]context.CancelFunc - database graph.OtterSpace + database database.OtterSpace taskExecutionFunction TaskExecution } -func NewGrpcServer(database graph.OtterSpace, taskExecutionFunction TaskExecution) gRPC.PlugConnectorServer { +func NewGrpcServer(database database.OtterSpace, taskExecutionFunction TaskExecution) gRPC.PlugConnectorServer { return &server{ ctx: make(map[string]context.CancelFunc), database: database, @@ -27,7 +27,7 @@ func NewGrpcServer(database graph.OtterSpace, taskExecutionFunction TaskExecutio } func (s *server) TaskStart(ctx context.Context, creation *gRPC.PlugTaskCreation) (*gRPC.PlugTaskStatus, error) { - var anthroveUser models.AnthroveUser + var anthroveUser models.User var plugTaskState gRPC.PlugTaskStatus var err error @@ -39,7 +39,7 @@ func (s *server) TaskStart(ctx context.Context, creation *gRPC.PlugTaskCreation) plugTaskState.TaskId = id plugTaskState.TaskState = gRPC.PlugTaskState_RUNNING - anthroveUser.UserID = models.AnthroveUserID(creation.UserId) + anthroveUser.ID = models.AnthroveUserID(creation.UserId) // gRPC closes the context after the call ended. So the whole scrapping stopped without waiting // by using this method we assign a new context to each new request we get. diff --git a/pkg/plug/server.go b/pkg/plug/server.go index d78af9f..04b2579 100644 --- a/pkg/plug/server.go +++ b/pkg/plug/server.go @@ -3,21 +3,21 @@ package plug import ( "context" "fmt" - "git.dragse.it/anthrove/otter-space-sdk/pkg/models" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" "net" - "git.dragse.it/anthrove/otter-space-sdk/pkg/graph" pb "git.dragse.it/anthrove/plug-sdk/pkg/grpc" "google.golang.org/grpc" ) -type TaskExecution func(ctx context.Context, graph graph.OtterSpace, sourceUsername string, anthroveUser models.AnthroveUser, deepScrape bool, cancelFunction func()) error +type TaskExecution func(ctx context.Context, graph database.OtterSpace, sourceUsername string, anthroveUser models.User, deepScrape bool, cancelFunction func()) error type Server struct { address string port string ctx context.Context - database graph.OtterSpace + database database.OtterSpace taskExecutionFunction TaskExecution } @@ -49,7 +49,7 @@ func (s *Server) Listen() error { return nil } -func (s *Server) WithGraphConnection(graph graph.OtterSpace) { +func (s *Server) WithGraphConnection(graph database.OtterSpace) { s.database = graph } From 8e3aeda53433801110fa646492126031f3a05f65 Mon Sep 17 00:00:00 2001 From: SoXX Date: Sun, 7 Jul 2024 00:42:00 +0200 Subject: [PATCH 03/13] feat: updated to latest protobuf --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index ea9e992..e11af0c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "third_party/grpc-proto"] path = third_party/grpc-proto url = https://git.dragse.it/anthrove/grpc-proto.git - branch = release/v2.0.0 \ No newline at end of file + branch = release/v3.0.0 \ No newline at end of file From 9b8321f5f656c9898e05c2db2e336438ade9159b Mon Sep 17 00:00:00 2001 From: SoXX Date: Sun, 7 Jul 2024 00:43:21 +0200 Subject: [PATCH 04/13] feat: updated to latest protobuf --- pkg/grpc/plug.pb.go | 229 ++++++++++++++++++++++++++++++++------- pkg/grpc/plug_grpc.pb.go | 36 ++++++ third_party/grpc-proto | 2 +- 3 files changed, 227 insertions(+), 40 deletions(-) diff --git a/pkg/grpc/plug.pb.go b/pkg/grpc/plug.pb.go index dfd0067..99a50ec 100644 --- a/pkg/grpc/plug.pb.go +++ b/pkg/grpc/plug.pb.go @@ -293,6 +293,7 @@ type PlugTaskCreation struct { UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` UserSourceName string `protobuf:"bytes,2,opt,name=user_source_name,json=userSourceName,proto3" json:"user_source_name,omitempty"` DeepScrape bool `protobuf:"varint,3,opt,name=deep_scrape,json=deepScrape,proto3" json:"deep_scrape,omitempty"` + ApiKey string `protobuf:"bytes,4,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` } func (x *PlugTaskCreation) Reset() { @@ -348,6 +349,115 @@ func (x *PlugTaskCreation) GetDeepScrape() bool { return false } +func (x *PlugTaskCreation) GetApiKey() string { + if x != nil { + return x.ApiKey + } + return "" +} + +type SendMessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *SendMessageRequest) Reset() { + *x = SendMessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_plug_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageRequest) ProtoMessage() {} + +func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_plug_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead. +func (*SendMessageRequest) Descriptor() ([]byte, []int) { + return file_plug_proto_rawDescGZIP(), []int{5} +} + +func (x *SendMessageRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *SendMessageRequest) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type SendMessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` +} + +func (x *SendMessageResponse) Reset() { + *x = SendMessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_plug_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageResponse) ProtoMessage() {} + +func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_plug_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead. +func (*SendMessageResponse) Descriptor() ([]byte, []int) { + return file_plug_proto_rawDescGZIP(), []int{6} +} + +func (x *SendMessageResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + var File_plug_proto protoreflect.FileDescriptor var file_plug_proto_rawDesc = []byte{ @@ -374,34 +484,47 @@ var file_plug_proto_rawDesc = []byte{ 0x61, 0x74, 0x65, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x23, 0x0a, 0x08, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, - 0x6b, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x10, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, - 0x65, 0x70, 0x5f, 0x73, 0x63, 0x72, 0x61, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x64, 0x65, 0x65, 0x70, 0x53, 0x63, 0x72, 0x61, 0x70, 0x65, 0x2a, 0x43, 0x0a, 0x0d, 0x50, - 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, - 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, - 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, - 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, - 0x32, 0xb9, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x75, 0x67, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x11, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x0f, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x09, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x0f, 0x2e, 0x50, - 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, - 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x09, 0x2e, 0x50, 0x6c, - 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x0f, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, - 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, - 0x0c, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, - 0x50, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x33, 0x5a, 0x31, - 0x67, 0x69, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x67, 0x73, 0x65, 0x2e, 0x69, 0x74, 0x2f, 0x61, 0x6e, - 0x74, 0x68, 0x72, 0x6f, 0x76, 0x65, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x2d, 0x5b, 0x52, 0x45, 0x50, - 0x4c, 0x41, 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x5d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x52, 0x50, - 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6b, 0x49, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x10, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, + 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, + 0x65, 0x65, 0x70, 0x5f, 0x73, 0x63, 0x72, 0x61, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x64, 0x65, 0x65, 0x70, 0x53, 0x63, 0x72, 0x61, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x70, 0x69, 0x4b, 0x65, 0x79, 0x22, 0x47, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2f, + 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2a, + 0x43, 0x0a, 0x0d, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, + 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, + 0x45, 0x44, 0x10, 0x03, 0x32, 0xf3, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x75, 0x67, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x11, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x0f, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, + 0x1a, 0x0f, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x28, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, + 0x09, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x1a, 0x0f, 0x2e, 0x50, 0x6c, 0x75, + 0x67, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x50, + 0x69, 0x6e, 0x67, 0x12, 0x0c, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x0d, 0x2e, 0x50, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x38, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x13, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, + 0x74, 0x2e, 0x64, 0x72, 0x61, 0x67, 0x73, 0x65, 0x2e, 0x69, 0x74, 0x2f, 0x61, 0x6e, 0x74, 0x68, + 0x72, 0x6f, 0x76, 0x65, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x2d, 0x5b, 0x52, 0x45, 0x50, 0x4c, 0x41, + 0x43, 0x45, 0x5f, 0x4d, 0x45, 0x5d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x52, 0x50, 0x43, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -417,7 +540,7 @@ func file_plug_proto_rawDescGZIP() []byte { } var file_plug_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_plug_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_plug_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_plug_proto_goTypes = []interface{}{ (PlugTaskState)(0), // 0: PlugTaskState (*PingRequest)(nil), // 1: PingRequest @@ -425,22 +548,26 @@ var file_plug_proto_goTypes = []interface{}{ (*PlugTaskStatus)(nil), // 3: PlugTaskStatus (*PlugTask)(nil), // 4: PlugTask (*PlugTaskCreation)(nil), // 5: PlugTaskCreation - (*timestamp.Timestamp)(nil), // 6: google.protobuf.Timestamp + (*SendMessageRequest)(nil), // 6: SendMessageRequest + (*SendMessageResponse)(nil), // 7: SendMessageResponse + (*timestamp.Timestamp)(nil), // 8: google.protobuf.Timestamp } var file_plug_proto_depIdxs = []int32{ - 6, // 0: PingRequest.timestamp:type_name -> google.protobuf.Timestamp - 6, // 1: PongResponse.timestamp:type_name -> google.protobuf.Timestamp + 8, // 0: PingRequest.timestamp:type_name -> google.protobuf.Timestamp + 8, // 1: PongResponse.timestamp:type_name -> google.protobuf.Timestamp 0, // 2: PlugTaskStatus.task_state:type_name -> PlugTaskState 5, // 3: PlugConnector.TaskStart:input_type -> PlugTaskCreation 4, // 4: PlugConnector.TaskStatus:input_type -> PlugTask 4, // 5: PlugConnector.TaskCancel:input_type -> PlugTask 1, // 6: PlugConnector.Ping:input_type -> PingRequest - 3, // 7: PlugConnector.TaskStart:output_type -> PlugTaskStatus - 3, // 8: PlugConnector.TaskStatus:output_type -> PlugTaskStatus - 3, // 9: PlugConnector.TaskCancel:output_type -> PlugTaskStatus - 2, // 10: PlugConnector.Ping:output_type -> PongResponse - 7, // [7:11] is the sub-list for method output_type - 3, // [3:7] is the sub-list for method input_type + 6, // 7: PlugConnector.SendMessage:input_type -> SendMessageRequest + 3, // 8: PlugConnector.TaskStart:output_type -> PlugTaskStatus + 3, // 9: PlugConnector.TaskStatus:output_type -> PlugTaskStatus + 3, // 10: PlugConnector.TaskCancel:output_type -> PlugTaskStatus + 2, // 11: PlugConnector.Ping:output_type -> PongResponse + 7, // 12: PlugConnector.SendMessage:output_type -> SendMessageResponse + 8, // [8:13] is the sub-list for method output_type + 3, // [3:8] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name 3, // [3:3] is the sub-list for extension extendee 0, // [0:3] is the sub-list for field type_name @@ -512,6 +639,30 @@ func file_plug_proto_init() { return nil } } + file_plug_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plug_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -519,7 +670,7 @@ func file_plug_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_plug_proto_rawDesc, NumEnums: 1, - NumMessages: 5, + NumMessages: 7, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/grpc/plug_grpc.pb.go b/pkg/grpc/plug_grpc.pb.go index 26b8695..e40e36e 100644 --- a/pkg/grpc/plug_grpc.pb.go +++ b/pkg/grpc/plug_grpc.pb.go @@ -26,6 +26,7 @@ type PlugConnectorClient interface { TaskStatus(ctx context.Context, in *PlugTask, opts ...grpc.CallOption) (*PlugTaskStatus, error) TaskCancel(ctx context.Context, in *PlugTask, opts ...grpc.CallOption) (*PlugTaskStatus, error) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PongResponse, error) + SendMessage(ctx context.Context, in *SendMessageRequest, opts ...grpc.CallOption) (*SendMessageResponse, error) } type plugConnectorClient struct { @@ -72,6 +73,15 @@ func (c *plugConnectorClient) Ping(ctx context.Context, in *PingRequest, opts .. return out, nil } +func (c *plugConnectorClient) SendMessage(ctx context.Context, in *SendMessageRequest, opts ...grpc.CallOption) (*SendMessageResponse, error) { + out := new(SendMessageResponse) + err := c.cc.Invoke(ctx, "/PlugConnector/SendMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // PlugConnectorServer is the server API for PlugConnector service. // All implementations must embed UnimplementedPlugConnectorServer // for forward compatibility @@ -80,6 +90,7 @@ type PlugConnectorServer interface { TaskStatus(context.Context, *PlugTask) (*PlugTaskStatus, error) TaskCancel(context.Context, *PlugTask) (*PlugTaskStatus, error) Ping(context.Context, *PingRequest) (*PongResponse, error) + SendMessage(context.Context, *SendMessageRequest) (*SendMessageResponse, error) mustEmbedUnimplementedPlugConnectorServer() } @@ -99,6 +110,9 @@ func (UnimplementedPlugConnectorServer) TaskCancel(context.Context, *PlugTask) ( func (UnimplementedPlugConnectorServer) Ping(context.Context, *PingRequest) (*PongResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") } +func (UnimplementedPlugConnectorServer) SendMessage(context.Context, *SendMessageRequest) (*SendMessageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendMessage not implemented") +} func (UnimplementedPlugConnectorServer) mustEmbedUnimplementedPlugConnectorServer() {} // UnsafePlugConnectorServer may be embedded to opt out of forward compatibility for this service. @@ -184,6 +198,24 @@ func _PlugConnector_Ping_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _PlugConnector_SendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMessageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PlugConnectorServer).SendMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/PlugConnector/SendMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PlugConnectorServer).SendMessage(ctx, req.(*SendMessageRequest)) + } + return interceptor(ctx, in, info, handler) +} + // PlugConnector_ServiceDesc is the grpc.ServiceDesc for PlugConnector service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -207,6 +239,10 @@ var PlugConnector_ServiceDesc = grpc.ServiceDesc{ MethodName: "Ping", Handler: _PlugConnector_Ping_Handler, }, + { + MethodName: "SendMessage", + Handler: _PlugConnector_SendMessage_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "plug.proto", diff --git a/third_party/grpc-proto b/third_party/grpc-proto index f658396..9cd117f 160000 --- a/third_party/grpc-proto +++ b/third_party/grpc-proto @@ -1 +1 @@ -Subproject commit f65839620ceccdbf5fe2bbc0769a8d5fecab348c +Subproject commit 9cd117f2c2cd0fcbe58325700c1074d73470387e From 6be508532e37bd21df907bef8e03b0af9fa32232 Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 14:33:06 +0200 Subject: [PATCH 05/13] feat: added Message Functions and renamed to be more clean --- pkg/plug/server.go | 47 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/pkg/plug/server.go b/pkg/plug/server.go index 04b2579..d187d22 100644 --- a/pkg/plug/server.go +++ b/pkg/plug/server.go @@ -3,43 +3,62 @@ package plug import ( "context" "fmt" + "log" + "net" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database" "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" - "net" pb "git.dragse.it/anthrove/plug-sdk/pkg/grpc" "google.golang.org/grpc" ) -type TaskExecution func(ctx context.Context, graph database.OtterSpace, sourceUsername string, anthroveUser models.User, deepScrape bool, cancelFunction func()) error +type TaskExecution func(ctx context.Context, database database.OtterSpace, sourceUsername string, anthroveUser models.User, deepScrape bool, apiKey string, cancelFunction func()) error +type SendMessageExecution func(ctx context.Context, userSourceID string, message string) -type Server struct { +type Plug struct { address string port string ctx context.Context database database.OtterSpace taskExecutionFunction TaskExecution + sendMessageExecution SendMessageExecution + source models.Source } -func NewServer(ctx context.Context, address string, port string) Server { - return Server{ +func NewPlug(ctx context.Context, address string, port string, source models.Source) Plug { + return Plug{ ctx: ctx, address: address, port: port, + source: source, } } -func (s *Server) Listen() error { +func (p *Plug) Listen() error { var err error - lis, err := net.Listen("tcp", fmt.Sprintf("%s:%s", s.address, s.port)) + plugSource, err := p.database.GetSourceByDomain(p.ctx, models.AnthroveSourceDomain(p.source.Domain)) + if err != nil { + return err + } + + if plugSource == nil { + log.Printf("no source found for domain %p, initilazing source!", p.source.Domain) + err := p.database.CreateSource(p.ctx, &p.source) + if err != nil { + return err + } + } + + lis, err := net.Listen("tcp", fmt.Sprintf("%p:%p", p.address, p.port)) if err != nil { return err } grpcServer := grpc.NewServer() - pb.RegisterPlugConnectorServer(grpcServer, NewGrpcServer(s.database, s.taskExecutionFunction)) + pb.RegisterPlugConnectorServer(grpcServer, NewGrpcServer(p.database, p.taskExecutionFunction)) err = grpcServer.Serve(lis) if err != nil { @@ -49,10 +68,14 @@ func (s *Server) Listen() error { return nil } -func (s *Server) WithGraphConnection(graph database.OtterSpace) { - s.database = graph +func (p *Plug) WithOtterSpace(graph database.OtterSpace) { + p.database = graph } -func (s *Server) TaskExecutionFunction(function TaskExecution) { - s.taskExecutionFunction = function +func (p *Plug) TaskExecutionFunction(function TaskExecution) { + p.taskExecutionFunction = function +} + +func (p *Plug) SendMessageExecution(function SendMessageExecution) { + p.sendMessageExecution = function } From f48c8a4f4f55c5541b6ef3e5ffb891e6f5d02484 Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 14:56:17 +0200 Subject: [PATCH 06/13] feat: implemented the new Message Function --- pkg/plug/grpc.go | 20 +++++++++++++++++--- pkg/plug/server.go | 4 ++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pkg/plug/grpc.go b/pkg/plug/grpc.go index f6156c6..18fb5e0 100644 --- a/pkg/plug/grpc.go +++ b/pkg/plug/grpc.go @@ -2,10 +2,11 @@ package plug import ( "context" + "log" + "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database" "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" "google.golang.org/protobuf/types/known/timestamppb" - "log" gRPC "git.dragse.it/anthrove/plug-sdk/pkg/grpc" gonanoid "github.com/matoous/go-nanoid/v2" @@ -16,13 +17,15 @@ type server struct { ctx map[string]context.CancelFunc database database.OtterSpace taskExecutionFunction TaskExecution + sendMessageExecution SendMessageExecution } -func NewGrpcServer(database database.OtterSpace, taskExecutionFunction TaskExecution) gRPC.PlugConnectorServer { +func NewGrpcServer(database database.OtterSpace, taskExecutionFunction TaskExecution, sendMessageExecution SendMessageExecution) gRPC.PlugConnectorServer { return &server{ ctx: make(map[string]context.CancelFunc), database: database, taskExecutionFunction: taskExecutionFunction, + sendMessageExecution: sendMessageExecution, } } @@ -49,7 +52,7 @@ func (s *server) TaskStart(ctx context.Context, creation *gRPC.PlugTaskCreation) go func() { // FIXME: better implement this methode, works for now but needs refactoring - err := s.taskExecutionFunction(ctx, s.database, creation.UserSourceName, anthroveUser, creation.DeepScrape, func() { + err := s.taskExecutionFunction(ctx, s.database, creation.UserSourceName, anthroveUser, creation.DeepScrape, creation.ApiKey, func() { s.removeTask(id) }) if err != nil { @@ -101,3 +104,14 @@ func (s *server) Ping(_ context.Context, request *gRPC.PingRequest) (*gRPC.PongR } return &response, nil } + +func (s *server) SendMessage(ctx context.Context, request *gRPC.SendMessageRequest) (*gRPC.SendMessageResponse, error) { + messageResponse := gRPC.SendMessageResponse{Success: true} + + err := s.sendMessageExecution(ctx, request.UserId, request.Message) + if err != nil { + return nil, err + } + + return &messageResponse, nil +} diff --git a/pkg/plug/server.go b/pkg/plug/server.go index d187d22..a7ddf55 100644 --- a/pkg/plug/server.go +++ b/pkg/plug/server.go @@ -14,7 +14,7 @@ import ( ) type TaskExecution func(ctx context.Context, database database.OtterSpace, sourceUsername string, anthroveUser models.User, deepScrape bool, apiKey string, cancelFunction func()) error -type SendMessageExecution func(ctx context.Context, userSourceID string, message string) +type SendMessageExecution func(ctx context.Context, userSourceID string, message string) error type Plug struct { address string @@ -58,7 +58,7 @@ func (p *Plug) Listen() error { grpcServer := grpc.NewServer() - pb.RegisterPlugConnectorServer(grpcServer, NewGrpcServer(p.database, p.taskExecutionFunction)) + pb.RegisterPlugConnectorServer(grpcServer, NewGrpcServer(p.database, p.taskExecutionFunction, p.sendMessageExecution)) err = grpcServer.Serve(lis) if err != nil { From eea349af6d456586833f4b96bdcd9b47d58e6bcd Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 15:07:48 +0200 Subject: [PATCH 07/13] ci: added build check --- .gitea/workflows/ build_check.yaml | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .gitea/workflows/ build_check.yaml diff --git a/.gitea/workflows/ build_check.yaml b/.gitea/workflows/ build_check.yaml new file mode 100644 index 0000000..5d405ce --- /dev/null +++ b/.gitea/workflows/ build_check.yaml @@ -0,0 +1,39 @@ +name: Gitea Build Check +run-name: ${{ gitea.actor }} is testing the build +on: + push: + branches: + - main + pull_request: + branches: [ "main" ] + +jobs: + Build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + + - name: Setup Go environment + uses: https://github.com/actions/setup-go@v5 + with: + # The Go version to download (if necessary) and use. Supports semver spec and ranges. + go-version: 1.22.0 # optional + # Path to the go.mod file. + go-version-file: ./go.mod # optional + # Set this option to true if you want the action to always check for the latest available version that satisfies the version spec + check-latest: true # optional + # Used to specify whether caching is needed. Set to true, if you'd like to enable caching. + cache: true # optional + + - name: Execute Go Test files with coverage report + run: TESTCONTAINERS_RYUK_DISABLED=true go test -v ./... -json -coverprofile="coverage.out" | tee "test-report.out" + + - uses: sonarsource/sonarqube-scan-action@master + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: ${{ vars.SONAR_HOST_URL }} + with: + args: > + -Dsonar.projectKey=Anthrove---plug-sdk \ No newline at end of file From 9f873ef0e403de18b608dba37642a4dcc04c6375 Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 15:08:23 +0200 Subject: [PATCH 08/13] ci: updated brach allowance --- .gitea/workflows/ build_check.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/ build_check.yaml b/.gitea/workflows/ build_check.yaml index 5d405ce..1f19da6 100644 --- a/.gitea/workflows/ build_check.yaml +++ b/.gitea/workflows/ build_check.yaml @@ -4,6 +4,7 @@ on: push: branches: - main + - V2 pull_request: branches: [ "main" ] From b8b80d1be90ed6ed75b9b4e08963c3a847289ecc Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 15:16:37 +0200 Subject: [PATCH 09/13] ci: removed unneeded env variable --- .gitea/workflows/ build_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/ build_check.yaml b/.gitea/workflows/ build_check.yaml index 1f19da6..4e6ffdf 100644 --- a/.gitea/workflows/ build_check.yaml +++ b/.gitea/workflows/ build_check.yaml @@ -29,7 +29,7 @@ jobs: cache: true # optional - name: Execute Go Test files with coverage report - run: TESTCONTAINERS_RYUK_DISABLED=true go test -v ./... -json -coverprofile="coverage.out" | tee "test-report.out" + run: go test -v ./... -json -coverprofile="coverage.out" | tee "test-report.out" - uses: sonarsource/sonarqube-scan-action@master env: From df4cb56c8996c3e7c52db3316f4bbe863f540281 Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 15:16:59 +0200 Subject: [PATCH 10/13] feat: updated module name --- go.mod | 2 +- pkg/plug/grpc.go | 2 +- pkg/plug/server.go | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 1330ee8..32c2028 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module git.dragse.it/anthrove/plug-sdk +module git.dragse.it/anthrove/plug-sdk/v2 go 1.22.0 diff --git a/pkg/plug/grpc.go b/pkg/plug/grpc.go index 18fb5e0..0772010 100644 --- a/pkg/plug/grpc.go +++ b/pkg/plug/grpc.go @@ -8,7 +8,7 @@ import ( "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" "google.golang.org/protobuf/types/known/timestamppb" - gRPC "git.dragse.it/anthrove/plug-sdk/pkg/grpc" + gRPC "git.dragse.it/anthrove/plug-sdk/v2/pkg/grpc" gonanoid "github.com/matoous/go-nanoid/v2" ) diff --git a/pkg/plug/server.go b/pkg/plug/server.go index a7ddf55..8f9ac15 100644 --- a/pkg/plug/server.go +++ b/pkg/plug/server.go @@ -9,7 +9,7 @@ import ( "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/database" "git.dragse.it/anthrove/otter-space-sdk/v2/pkg/models" - pb "git.dragse.it/anthrove/plug-sdk/pkg/grpc" + pb "git.dragse.it/anthrove/plug-sdk/v2/pkg/grpc" "google.golang.org/grpc" ) @@ -44,14 +44,14 @@ func (p *Plug) Listen() error { } if plugSource == nil { - log.Printf("no source found for domain %p, initilazing source!", p.source.Domain) + log.Printf("no source found for domain %s, initilazing source!", p.source.Domain) err := p.database.CreateSource(p.ctx, &p.source) if err != nil { return err } } - lis, err := net.Listen("tcp", fmt.Sprintf("%p:%p", p.address, p.port)) + lis, err := net.Listen("tcp", fmt.Sprintf("%s:%s", p.address, p.port)) if err != nil { return err } From 7a508ece7e335039bc30b7421859aa2964452c40 Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 15:19:03 +0200 Subject: [PATCH 11/13] feat: dependencies --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 32c2028..fcf0bb1 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/golang/protobuf v1.5.4 github.com/matoous/go-nanoid/v2 v2.1.0 google.golang.org/grpc v1.61.1 - google.golang.org/protobuf v1.33.0 + google.golang.org/protobuf v1.34.2 ) require ( diff --git a/go.sum b/go.sum index 2b4cf5f..036f719 100644 --- a/go.sum +++ b/go.sum @@ -149,8 +149,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 7d218b38ffd63fa5f705b5d8685da93293a7766f Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 15:25:26 +0200 Subject: [PATCH 12/13] docs: updated readme --- README.md | 60 ++++++++++++++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 95ba089..bcdee5a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Anthrove Plug SDK -Anthrove Plug SDK is a Golang-based Software Development Kit (SDK) that provides a gRPC server implementation for the Anthrove system. This SDK enables users to easily set up a server, establish a graph database connection, and set a task execution function. +Anthrove Plug SDK is a Golang-based Software Development Kit (SDK) that provides a gRPC server implementation for the Anthrove system. This SDK enables users to easily set up a server, establish a database connection, and set a task execution function. ## Installation @@ -14,40 +14,36 @@ go get git.dragse.it/anthrove/plug-sdk Below is a basic example of how to use the SDK: ````go -package main +import "git.dragse.it/anthrove/plug-sdk/v2/pkg/plug" -import ( - "context" - "git.dragse.it/anthrove/plug-sdk/pkg/otter" - "log" - "net" - "git.dragse.it/anthrove/otter-space-sdk/pkg/graph" - "git.dragse.it/anthrove/otter-space-sdk/pkg/models" - "git.dragse.it/anthrove/plug-sdk/pkg/plug" -) - -func main() { - var ctx context.Context - - // Initialize a new server - server := plug.NewServer(ctx, "localhost", "8080") - - graph := otter.ConnectToDatabase(ctx, "endpoint", "username", "password", false) - - // Set the graph database connection - server.WithGraphConnection(graph) - - // Set the task execution function - server.TaskExecutionFunction(taskExecution) - - // Listen for connections - if err := server.Listen(); err != nil { - log.Fatalf("Failed to listen: %v", err) - } +// Define what Source this Plug is used for +source := models.Source{ + DisplayName: "e621", + Domain: "e621.net", + Icon: "e621.net/icon.png", } -func taskExecution(ctx context.Context, graph graph.OtterSpace, sourceUsername string, anthroveUser models.AnthroveUser, deepScrape bool, cancelFunction func()) error { - // SOME EXECUTION MAGIC +// Create a new Plug instance +p := plug.NewPlug(ctx, "localhost", "50051", source) + +// Set the OtterSpace database +p.WithOtterSpace(database) + +// Set the task execution function +p.TaskExecutionFunction(func(ctx context.Context, database database.OtterSpace, sourceUsername string, anthroveUser models.User, deepScrape bool, apiKey string, cancelFunction func()) error { +// Your task execution logic here +}) + +// Set the send message execution function +p.SendMessageExecution(func(ctx context.Context, userSourceID string, message string) error { +// Your message sending logic here +}) + +// Start the server +err := p.Listen() + if err != nil { + log.Fatalf("Failed to start server: %v", err) } + ```` From c638aa53db596e19800e265c501fb4687b6f1cee Mon Sep 17 00:00:00 2001 From: David Janowski Date: Mon, 8 Jul 2024 15:29:14 +0200 Subject: [PATCH 13/13] ci: ignore generated grpc files --- .gitea/workflows/ build_check.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/ build_check.yaml b/.gitea/workflows/ build_check.yaml index 4e6ffdf..235df93 100644 --- a/.gitea/workflows/ build_check.yaml +++ b/.gitea/workflows/ build_check.yaml @@ -37,4 +37,5 @@ jobs: SONAR_HOST_URL: ${{ vars.SONAR_HOST_URL }} with: args: > - -Dsonar.projectKey=Anthrove---plug-sdk \ No newline at end of file + -Dsonar.projectKey=Anthrove---plug-sdk + -Dsonar.exclusions=pkg/grpc/* \ No newline at end of file