From 0b4a0da3fca7cbc7f171d8c6f4345e94f6551a89 Mon Sep 17 00:00:00 2001 From: Jonni Liljamo Date: Tue, 26 Nov 2024 10:38:38 +0200 Subject: [PATCH] feat!: iteration number whatever, revamp whooo! * change a bunch of field types, positions, names * rename services * bidirectional worker control service --- go/proto/coordinatorcontrol.pb.go | 606 ++++++++++++++++++ go/proto/coordinatorcontrol_grpc.pb.go | 333 ++++++++++ go/proto/shared/target.pb.go | 260 +++----- go/proto/shared/worker.pb.go | 53 +- justfile | 2 +- ...omaster.proto => coordinatorcontrol.proto} | 16 +- proto/shared/target.proto | 17 +- proto/shared/worker.proto | 8 +- proto/workercontrol.proto | 29 + proto/workertomaster.proto | 19 - rust/emerwen-proto/build.rs | 26 +- rust/emerwen-proto/src/lib.rs | 14 - 12 files changed, 1110 insertions(+), 273 deletions(-) create mode 100644 go/proto/coordinatorcontrol.pb.go create mode 100644 go/proto/coordinatorcontrol_grpc.pb.go rename proto/{webtomaster.proto => coordinatorcontrol.proto} (84%) create mode 100644 proto/workercontrol.proto delete mode 100644 proto/workertomaster.proto diff --git a/go/proto/coordinatorcontrol.pb.go b/go/proto/coordinatorcontrol.pb.go new file mode 100644 index 0000000..e6e2e3e --- /dev/null +++ b/go/proto/coordinatorcontrol.pb.go @@ -0,0 +1,606 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.1 +// protoc v5.28.3 +// source: coordinatorcontrol.proto + +package proto + +import ( + shared "git.src.quest/~liljamo/emerwen-proto/go/proto/shared" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type WorkersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Workers []*shared.Worker `protobuf:"bytes,1,rep,name=workers,proto3" json:"workers,omitempty"` +} + +func (x *WorkersResponse) Reset() { + *x = WorkersResponse{} + mi := &file_coordinatorcontrol_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkersResponse) ProtoMessage() {} + +func (x *WorkersResponse) ProtoReflect() protoreflect.Message { + mi := &file_coordinatorcontrol_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkersResponse.ProtoReflect.Descriptor instead. +func (*WorkersResponse) Descriptor() ([]byte, []int) { + return file_coordinatorcontrol_proto_rawDescGZIP(), []int{0} +} + +func (x *WorkersResponse) GetWorkers() []*shared.Worker { + if x != nil { + return x.Workers + } + return nil +} + +type NewWorkerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *NewWorkerRequest) Reset() { + *x = NewWorkerRequest{} + mi := &file_coordinatorcontrol_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NewWorkerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewWorkerRequest) ProtoMessage() {} + +func (x *NewWorkerRequest) ProtoReflect() protoreflect.Message { + mi := &file_coordinatorcontrol_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewWorkerRequest.ProtoReflect.Descriptor instead. +func (*NewWorkerRequest) Descriptor() ([]byte, []int) { + return file_coordinatorcontrol_proto_rawDescGZIP(), []int{1} +} + +func (x *NewWorkerRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type PatchWorkerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkerId string `protobuf:"bytes,1,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` +} + +func (x *PatchWorkerRequest) Reset() { + *x = PatchWorkerRequest{} + mi := &file_coordinatorcontrol_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PatchWorkerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatchWorkerRequest) ProtoMessage() {} + +func (x *PatchWorkerRequest) ProtoReflect() protoreflect.Message { + mi := &file_coordinatorcontrol_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatchWorkerRequest.ProtoReflect.Descriptor instead. +func (*PatchWorkerRequest) Descriptor() ([]byte, []int) { + return file_coordinatorcontrol_proto_rawDescGZIP(), []int{2} +} + +func (x *PatchWorkerRequest) GetWorkerId() string { + if x != nil { + return x.WorkerId + } + return "" +} + +func (x *PatchWorkerRequest) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +type DeleteWorkerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkerId string `protobuf:"bytes,1,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"` +} + +func (x *DeleteWorkerRequest) Reset() { + *x = DeleteWorkerRequest{} + mi := &file_coordinatorcontrol_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteWorkerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteWorkerRequest) ProtoMessage() {} + +func (x *DeleteWorkerRequest) ProtoReflect() protoreflect.Message { + mi := &file_coordinatorcontrol_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteWorkerRequest.ProtoReflect.Descriptor instead. +func (*DeleteWorkerRequest) Descriptor() ([]byte, []int) { + return file_coordinatorcontrol_proto_rawDescGZIP(), []int{3} +} + +func (x *DeleteWorkerRequest) GetWorkerId() string { + if x != nil { + return x.WorkerId + } + return "" +} + +type NewTargetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WorkerId string `protobuf:"bytes,1,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Addr string `protobuf:"bytes,3,opt,name=addr,proto3" json:"addr,omitempty"` + Interval int32 `protobuf:"varint,4,opt,name=interval,proto3" json:"interval,omitempty"` + Method shared.Method `protobuf:"varint,5,opt,name=method,proto3,enum=emerwen.shared.Method" json:"method,omitempty"` + OkCodes []int32 `protobuf:"varint,6,rep,packed,name=ok_codes,json=okCodes,proto3" json:"ok_codes,omitempty"` +} + +func (x *NewTargetRequest) Reset() { + *x = NewTargetRequest{} + mi := &file_coordinatorcontrol_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NewTargetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewTargetRequest) ProtoMessage() {} + +func (x *NewTargetRequest) ProtoReflect() protoreflect.Message { + mi := &file_coordinatorcontrol_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewTargetRequest.ProtoReflect.Descriptor instead. +func (*NewTargetRequest) Descriptor() ([]byte, []int) { + return file_coordinatorcontrol_proto_rawDescGZIP(), []int{4} +} + +func (x *NewTargetRequest) GetWorkerId() string { + if x != nil { + return x.WorkerId + } + return "" +} + +func (x *NewTargetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NewTargetRequest) GetAddr() string { + if x != nil { + return x.Addr + } + return "" +} + +func (x *NewTargetRequest) GetInterval() int32 { + if x != nil { + return x.Interval + } + return 0 +} + +func (x *NewTargetRequest) GetMethod() shared.Method { + if x != nil { + return x.Method + } + return shared.Method(0) +} + +func (x *NewTargetRequest) GetOkCodes() []int32 { + if x != nil { + return x.OkCodes + } + return nil +} + +type PatchTargetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TargetId string `protobuf:"bytes,1,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` + Addr *string `protobuf:"bytes,3,opt,name=addr,proto3,oneof" json:"addr,omitempty"` + Interval *int32 `protobuf:"varint,4,opt,name=interval,proto3,oneof" json:"interval,omitempty"` + Method *shared.Method `protobuf:"varint,5,opt,name=method,proto3,enum=emerwen.shared.Method,oneof" json:"method,omitempty"` + OkCodes []int32 `protobuf:"varint,6,rep,packed,name=ok_codes,json=okCodes,proto3" json:"ok_codes,omitempty"` +} + +func (x *PatchTargetRequest) Reset() { + *x = PatchTargetRequest{} + mi := &file_coordinatorcontrol_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PatchTargetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatchTargetRequest) ProtoMessage() {} + +func (x *PatchTargetRequest) ProtoReflect() protoreflect.Message { + mi := &file_coordinatorcontrol_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatchTargetRequest.ProtoReflect.Descriptor instead. +func (*PatchTargetRequest) Descriptor() ([]byte, []int) { + return file_coordinatorcontrol_proto_rawDescGZIP(), []int{5} +} + +func (x *PatchTargetRequest) GetTargetId() string { + if x != nil { + return x.TargetId + } + return "" +} + +func (x *PatchTargetRequest) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatchTargetRequest) GetAddr() string { + if x != nil && x.Addr != nil { + return *x.Addr + } + return "" +} + +func (x *PatchTargetRequest) GetInterval() int32 { + if x != nil && x.Interval != nil { + return *x.Interval + } + return 0 +} + +func (x *PatchTargetRequest) GetMethod() shared.Method { + if x != nil && x.Method != nil { + return *x.Method + } + return shared.Method(0) +} + +func (x *PatchTargetRequest) GetOkCodes() []int32 { + if x != nil { + return x.OkCodes + } + return nil +} + +type DeleteTargetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TargetId string `protobuf:"bytes,1,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` +} + +func (x *DeleteTargetRequest) Reset() { + *x = DeleteTargetRequest{} + mi := &file_coordinatorcontrol_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteTargetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteTargetRequest) ProtoMessage() {} + +func (x *DeleteTargetRequest) ProtoReflect() protoreflect.Message { + mi := &file_coordinatorcontrol_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteTargetRequest.ProtoReflect.Descriptor instead. +func (*DeleteTargetRequest) Descriptor() ([]byte, []int) { + return file_coordinatorcontrol_proto_rawDescGZIP(), []int{6} +} + +func (x *DeleteTargetRequest) GetTargetId() string { + if x != nil { + return x.TargetId + } + return "" +} + +var File_coordinatorcontrol_proto protoreflect.FileDescriptor + +var file_coordinatorcontrol_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x65, 0x6d, 0x65, 0x72, + 0x77, 0x65, 0x6e, 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, 0x0a, + 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x30, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x73, 0x22, 0x26, 0x0a, 0x10, 0x4e, 0x65, 0x77, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x12, 0x50, 0x61, + 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x32, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x49, 0x64, 0x22, 0xbe, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x65, 0x72, + 0x77, 0x65, 0x6e, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6b, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x6b, 0x43, + 0x6f, 0x64, 0x65, 0x73, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x63, 0x68, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x08, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6d, + 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x48, 0x03, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6b, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x07, 0x6f, 0x6b, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x32, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x32, 0xf4, 0x04, 0x0a, 0x19, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, + 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x6f, 0x72, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x4e, 0x65, + 0x77, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, + 0x6e, 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x55, 0x0a, + 0x0b, 0x50, 0x61, 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x65, + 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x63, + 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, + 0x09, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2c, 0x2e, 0x65, 0x6d, 0x65, + 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x55, 0x0a, 0x0b, 0x50, 0x61, 0x74, 0x63, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x2e, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x50, 0x61, 0x74, + 0x63, 0x68, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, + 0x6e, 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x2e, 0x73, 0x72, 0x63, 0x2e, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2f, 0x7e, 0x6c, 0x69, 0x6c, 0x6a, 0x61, 0x6d, 0x6f, 0x2f, 0x65, 0x6d, 0x65, 0x72, 0x77, + 0x65, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coordinatorcontrol_proto_rawDescOnce sync.Once + file_coordinatorcontrol_proto_rawDescData = file_coordinatorcontrol_proto_rawDesc +) + +func file_coordinatorcontrol_proto_rawDescGZIP() []byte { + file_coordinatorcontrol_proto_rawDescOnce.Do(func() { + file_coordinatorcontrol_proto_rawDescData = protoimpl.X.CompressGZIP(file_coordinatorcontrol_proto_rawDescData) + }) + return file_coordinatorcontrol_proto_rawDescData +} + +var file_coordinatorcontrol_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_coordinatorcontrol_proto_goTypes = []any{ + (*WorkersResponse)(nil), // 0: emerwen.coordinatorcontrol.WorkersResponse + (*NewWorkerRequest)(nil), // 1: emerwen.coordinatorcontrol.NewWorkerRequest + (*PatchWorkerRequest)(nil), // 2: emerwen.coordinatorcontrol.PatchWorkerRequest + (*DeleteWorkerRequest)(nil), // 3: emerwen.coordinatorcontrol.DeleteWorkerRequest + (*NewTargetRequest)(nil), // 4: emerwen.coordinatorcontrol.NewTargetRequest + (*PatchTargetRequest)(nil), // 5: emerwen.coordinatorcontrol.PatchTargetRequest + (*DeleteTargetRequest)(nil), // 6: emerwen.coordinatorcontrol.DeleteTargetRequest + (*shared.Worker)(nil), // 7: emerwen.shared.Worker + (shared.Method)(0), // 8: emerwen.shared.Method + (*emptypb.Empty)(nil), // 9: google.protobuf.Empty +} +var file_coordinatorcontrol_proto_depIdxs = []int32{ + 7, // 0: emerwen.coordinatorcontrol.WorkersResponse.workers:type_name -> emerwen.shared.Worker + 8, // 1: emerwen.coordinatorcontrol.NewTargetRequest.method:type_name -> emerwen.shared.Method + 8, // 2: emerwen.coordinatorcontrol.PatchTargetRequest.method:type_name -> emerwen.shared.Method + 9, // 3: emerwen.coordinatorcontrol.CoordinatorControlService.GetWorkers:input_type -> google.protobuf.Empty + 1, // 4: emerwen.coordinatorcontrol.CoordinatorControlService.NewWorker:input_type -> emerwen.coordinatorcontrol.NewWorkerRequest + 2, // 5: emerwen.coordinatorcontrol.CoordinatorControlService.PatchWorker:input_type -> emerwen.coordinatorcontrol.PatchWorkerRequest + 6, // 6: emerwen.coordinatorcontrol.CoordinatorControlService.DeleteTarget:input_type -> emerwen.coordinatorcontrol.DeleteTargetRequest + 4, // 7: emerwen.coordinatorcontrol.CoordinatorControlService.NewTarget:input_type -> emerwen.coordinatorcontrol.NewTargetRequest + 5, // 8: emerwen.coordinatorcontrol.CoordinatorControlService.PatchTarget:input_type -> emerwen.coordinatorcontrol.PatchTargetRequest + 3, // 9: emerwen.coordinatorcontrol.CoordinatorControlService.DeleteWorker:input_type -> emerwen.coordinatorcontrol.DeleteWorkerRequest + 0, // 10: emerwen.coordinatorcontrol.CoordinatorControlService.GetWorkers:output_type -> emerwen.coordinatorcontrol.WorkersResponse + 9, // 11: emerwen.coordinatorcontrol.CoordinatorControlService.NewWorker:output_type -> google.protobuf.Empty + 9, // 12: emerwen.coordinatorcontrol.CoordinatorControlService.PatchWorker:output_type -> google.protobuf.Empty + 9, // 13: emerwen.coordinatorcontrol.CoordinatorControlService.DeleteTarget:output_type -> google.protobuf.Empty + 9, // 14: emerwen.coordinatorcontrol.CoordinatorControlService.NewTarget:output_type -> google.protobuf.Empty + 9, // 15: emerwen.coordinatorcontrol.CoordinatorControlService.PatchTarget:output_type -> google.protobuf.Empty + 9, // 16: emerwen.coordinatorcontrol.CoordinatorControlService.DeleteWorker:output_type -> google.protobuf.Empty + 10, // [10:17] is the sub-list for method output_type + 3, // [3:10] 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 +} + +func init() { file_coordinatorcontrol_proto_init() } +func file_coordinatorcontrol_proto_init() { + if File_coordinatorcontrol_proto != nil { + return + } + file_coordinatorcontrol_proto_msgTypes[2].OneofWrappers = []any{} + file_coordinatorcontrol_proto_msgTypes[5].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coordinatorcontrol_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_coordinatorcontrol_proto_goTypes, + DependencyIndexes: file_coordinatorcontrol_proto_depIdxs, + MessageInfos: file_coordinatorcontrol_proto_msgTypes, + }.Build() + File_coordinatorcontrol_proto = out.File + file_coordinatorcontrol_proto_rawDesc = nil + file_coordinatorcontrol_proto_goTypes = nil + file_coordinatorcontrol_proto_depIdxs = nil +} diff --git a/go/proto/coordinatorcontrol_grpc.pb.go b/go/proto/coordinatorcontrol_grpc.pb.go new file mode 100644 index 0000000..30156a1 --- /dev/null +++ b/go/proto/coordinatorcontrol_grpc.pb.go @@ -0,0 +1,333 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v5.28.3 +// source: coordinatorcontrol.proto + +package proto + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + CoordinatorControlService_GetWorkers_FullMethodName = "/emerwen.coordinatorcontrol.CoordinatorControlService/GetWorkers" + CoordinatorControlService_NewWorker_FullMethodName = "/emerwen.coordinatorcontrol.CoordinatorControlService/NewWorker" + CoordinatorControlService_PatchWorker_FullMethodName = "/emerwen.coordinatorcontrol.CoordinatorControlService/PatchWorker" + CoordinatorControlService_DeleteTarget_FullMethodName = "/emerwen.coordinatorcontrol.CoordinatorControlService/DeleteTarget" + CoordinatorControlService_NewTarget_FullMethodName = "/emerwen.coordinatorcontrol.CoordinatorControlService/NewTarget" + CoordinatorControlService_PatchTarget_FullMethodName = "/emerwen.coordinatorcontrol.CoordinatorControlService/PatchTarget" + CoordinatorControlService_DeleteWorker_FullMethodName = "/emerwen.coordinatorcontrol.CoordinatorControlService/DeleteWorker" +) + +// CoordinatorControlServiceClient is the client API for CoordinatorControlService 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. +type CoordinatorControlServiceClient interface { + GetWorkers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*WorkersResponse, error) + NewWorker(ctx context.Context, in *NewWorkerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + PatchWorker(ctx context.Context, in *PatchWorkerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + DeleteTarget(ctx context.Context, in *DeleteTargetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + NewTarget(ctx context.Context, in *NewTargetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + PatchTarget(ctx context.Context, in *PatchTargetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + DeleteWorker(ctx context.Context, in *DeleteWorkerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) +} + +type coordinatorControlServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewCoordinatorControlServiceClient(cc grpc.ClientConnInterface) CoordinatorControlServiceClient { + return &coordinatorControlServiceClient{cc} +} + +func (c *coordinatorControlServiceClient) GetWorkers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*WorkersResponse, error) { + out := new(WorkersResponse) + err := c.cc.Invoke(ctx, CoordinatorControlService_GetWorkers_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *coordinatorControlServiceClient) NewWorker(ctx context.Context, in *NewWorkerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, CoordinatorControlService_NewWorker_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *coordinatorControlServiceClient) PatchWorker(ctx context.Context, in *PatchWorkerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, CoordinatorControlService_PatchWorker_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *coordinatorControlServiceClient) DeleteTarget(ctx context.Context, in *DeleteTargetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, CoordinatorControlService_DeleteTarget_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *coordinatorControlServiceClient) NewTarget(ctx context.Context, in *NewTargetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, CoordinatorControlService_NewTarget_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *coordinatorControlServiceClient) PatchTarget(ctx context.Context, in *PatchTargetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, CoordinatorControlService_PatchTarget_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *coordinatorControlServiceClient) DeleteWorker(ctx context.Context, in *DeleteWorkerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, CoordinatorControlService_DeleteWorker_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CoordinatorControlServiceServer is the server API for CoordinatorControlService service. +// All implementations must embed UnimplementedCoordinatorControlServiceServer +// for forward compatibility +type CoordinatorControlServiceServer interface { + GetWorkers(context.Context, *emptypb.Empty) (*WorkersResponse, error) + NewWorker(context.Context, *NewWorkerRequest) (*emptypb.Empty, error) + PatchWorker(context.Context, *PatchWorkerRequest) (*emptypb.Empty, error) + DeleteTarget(context.Context, *DeleteTargetRequest) (*emptypb.Empty, error) + NewTarget(context.Context, *NewTargetRequest) (*emptypb.Empty, error) + PatchTarget(context.Context, *PatchTargetRequest) (*emptypb.Empty, error) + DeleteWorker(context.Context, *DeleteWorkerRequest) (*emptypb.Empty, error) + mustEmbedUnimplementedCoordinatorControlServiceServer() +} + +// UnimplementedCoordinatorControlServiceServer must be embedded to have forward compatible implementations. +type UnimplementedCoordinatorControlServiceServer struct { +} + +func (UnimplementedCoordinatorControlServiceServer) GetWorkers(context.Context, *emptypb.Empty) (*WorkersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetWorkers not implemented") +} +func (UnimplementedCoordinatorControlServiceServer) NewWorker(context.Context, *NewWorkerRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method NewWorker not implemented") +} +func (UnimplementedCoordinatorControlServiceServer) PatchWorker(context.Context, *PatchWorkerRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method PatchWorker not implemented") +} +func (UnimplementedCoordinatorControlServiceServer) DeleteTarget(context.Context, *DeleteTargetRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteTarget not implemented") +} +func (UnimplementedCoordinatorControlServiceServer) NewTarget(context.Context, *NewTargetRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method NewTarget not implemented") +} +func (UnimplementedCoordinatorControlServiceServer) PatchTarget(context.Context, *PatchTargetRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method PatchTarget not implemented") +} +func (UnimplementedCoordinatorControlServiceServer) DeleteWorker(context.Context, *DeleteWorkerRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteWorker not implemented") +} +func (UnimplementedCoordinatorControlServiceServer) mustEmbedUnimplementedCoordinatorControlServiceServer() { +} + +// UnsafeCoordinatorControlServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to CoordinatorControlServiceServer will +// result in compilation errors. +type UnsafeCoordinatorControlServiceServer interface { + mustEmbedUnimplementedCoordinatorControlServiceServer() +} + +func RegisterCoordinatorControlServiceServer(s grpc.ServiceRegistrar, srv CoordinatorControlServiceServer) { + s.RegisterService(&CoordinatorControlService_ServiceDesc, srv) +} + +func _CoordinatorControlService_GetWorkers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoordinatorControlServiceServer).GetWorkers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CoordinatorControlService_GetWorkers_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoordinatorControlServiceServer).GetWorkers(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _CoordinatorControlService_NewWorker_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NewWorkerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoordinatorControlServiceServer).NewWorker(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CoordinatorControlService_NewWorker_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoordinatorControlServiceServer).NewWorker(ctx, req.(*NewWorkerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CoordinatorControlService_PatchWorker_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PatchWorkerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoordinatorControlServiceServer).PatchWorker(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CoordinatorControlService_PatchWorker_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoordinatorControlServiceServer).PatchWorker(ctx, req.(*PatchWorkerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CoordinatorControlService_DeleteTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteTargetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoordinatorControlServiceServer).DeleteTarget(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CoordinatorControlService_DeleteTarget_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoordinatorControlServiceServer).DeleteTarget(ctx, req.(*DeleteTargetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CoordinatorControlService_NewTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NewTargetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoordinatorControlServiceServer).NewTarget(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CoordinatorControlService_NewTarget_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoordinatorControlServiceServer).NewTarget(ctx, req.(*NewTargetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CoordinatorControlService_PatchTarget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PatchTargetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoordinatorControlServiceServer).PatchTarget(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CoordinatorControlService_PatchTarget_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoordinatorControlServiceServer).PatchTarget(ctx, req.(*PatchTargetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CoordinatorControlService_DeleteWorker_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteWorkerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoordinatorControlServiceServer).DeleteWorker(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CoordinatorControlService_DeleteWorker_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoordinatorControlServiceServer).DeleteWorker(ctx, req.(*DeleteWorkerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CoordinatorControlService_ServiceDesc is the grpc.ServiceDesc for CoordinatorControlService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CoordinatorControlService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "emerwen.coordinatorcontrol.CoordinatorControlService", + HandlerType: (*CoordinatorControlServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetWorkers", + Handler: _CoordinatorControlService_GetWorkers_Handler, + }, + { + MethodName: "NewWorker", + Handler: _CoordinatorControlService_NewWorker_Handler, + }, + { + MethodName: "PatchWorker", + Handler: _CoordinatorControlService_PatchWorker_Handler, + }, + { + MethodName: "DeleteTarget", + Handler: _CoordinatorControlService_DeleteTarget_Handler, + }, + { + MethodName: "NewTarget", + Handler: _CoordinatorControlService_NewTarget_Handler, + }, + { + MethodName: "PatchTarget", + Handler: _CoordinatorControlService_PatchTarget_Handler, + }, + { + MethodName: "DeleteWorker", + Handler: _CoordinatorControlService_DeleteWorker_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "coordinatorcontrol.proto", +} diff --git a/go/proto/shared/target.pb.go b/go/proto/shared/target.pb.go index dcb688b..c3a2999 100644 --- a/go/proto/shared/target.pb.go +++ b/go/proto/shared/target.pb.go @@ -20,6 +20,52 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type Method int32 + +const ( + Method_PING Method = 0 + Method_GET Method = 1 +) + +// Enum value maps for Method. +var ( + Method_name = map[int32]string{ + 0: "PING", + 1: "GET", + } + Method_value = map[string]int32{ + "PING": 0, + "GET": 1, + } +) + +func (x Method) Enum() *Method { + p := new(Method) + *p = x + return p +} + +func (x Method) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Method) Descriptor() protoreflect.EnumDescriptor { + return file_shared_target_proto_enumTypes[0].Descriptor() +} + +func (Method) Type() protoreflect.EnumType { + return &file_shared_target_proto_enumTypes[0] +} + +func (x Method) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Method.Descriptor instead. +func (Method) EnumDescriptor() ([]byte, []int) { + return file_shared_target_proto_rawDescGZIP(), []int{0} +} + type TargetState int32 const ( @@ -53,11 +99,11 @@ func (x TargetState) String() string { } func (TargetState) Descriptor() protoreflect.EnumDescriptor { - return file_shared_target_proto_enumTypes[0].Descriptor() + return file_shared_target_proto_enumTypes[1].Descriptor() } func (TargetState) Type() protoreflect.EnumType { - return &file_shared_target_proto_enumTypes[0] + return &file_shared_target_proto_enumTypes[1] } func (x TargetState) Number() protoreflect.EnumNumber { @@ -66,7 +112,7 @@ func (x TargetState) Number() protoreflect.EnumNumber { // Deprecated: Use TargetState.Descriptor instead. func (TargetState) EnumDescriptor() ([]byte, []int) { - return file_shared_target_proto_rawDescGZIP(), []int{0} + return file_shared_target_proto_rawDescGZIP(), []int{1} } type Target struct { @@ -74,15 +120,12 @@ type Target struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"` - Interval int32 `protobuf:"varint,3,opt,name=interval,proto3" json:"interval,omitempty"` - // Types that are assignable to Method: - // - // *Target_Ping - // *Target_Get - Method isTarget_Method `protobuf_oneof:"method"` - Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + TargetId string `protobuf:"bytes,1,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` + Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"` + Interval int32 `protobuf:"varint,3,opt,name=interval,proto3" json:"interval,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Method Method `protobuf:"varint,5,opt,name=method,proto3,enum=emerwen.shared.Method" json:"method,omitempty"` + OkCodes []int32 `protobuf:"varint,6,rep,packed,name=ok_codes,json=okCodes,proto3" json:"ok_codes,omitempty"` } func (x *Target) Reset() { @@ -115,9 +158,9 @@ func (*Target) Descriptor() ([]byte, []int) { return file_shared_target_proto_rawDescGZIP(), []int{0} } -func (x *Target) GetId() string { +func (x *Target) GetTargetId() string { if x != nil { - return x.Id + return x.TargetId } return "" } @@ -136,27 +179,6 @@ func (x *Target) GetInterval() int32 { return 0 } -func (m *Target) GetMethod() isTarget_Method { - if m != nil { - return m.Method - } - return nil -} - -func (x *Target) GetPing() *MethodPing { - if x, ok := x.GetMethod().(*Target_Ping); ok { - return x.Ping - } - return nil -} - -func (x *Target) GetGet() *MethodGET { - if x, ok := x.GetMethod().(*Target_Get); ok { - return x.Get - } - return nil -} - func (x *Target) GetName() string { if x != nil { return x.Name @@ -164,97 +186,14 @@ func (x *Target) GetName() string { return "" } -type isTarget_Method interface { - isTarget_Method() -} - -type Target_Ping struct { - Ping *MethodPing `protobuf:"bytes,4,opt,name=ping,proto3,oneof"` -} - -type Target_Get struct { - Get *MethodGET `protobuf:"bytes,5,opt,name=get,proto3,oneof"` -} - -func (*Target_Ping) isTarget_Method() {} - -func (*Target_Get) isTarget_Method() {} - -type MethodPing struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *MethodPing) Reset() { - *x = MethodPing{} - mi := &file_shared_target_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *MethodPing) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MethodPing) ProtoMessage() {} - -func (x *MethodPing) ProtoReflect() protoreflect.Message { - mi := &file_shared_target_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MethodPing.ProtoReflect.Descriptor instead. -func (*MethodPing) Descriptor() ([]byte, []int) { - return file_shared_target_proto_rawDescGZIP(), []int{1} -} - -type MethodGET struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OkCodes []int32 `protobuf:"varint,1,rep,packed,name=ok_codes,json=okCodes,proto3" json:"ok_codes,omitempty"` -} - -func (x *MethodGET) Reset() { - *x = MethodGET{} - mi := &file_shared_target_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *MethodGET) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MethodGET) ProtoMessage() {} - -func (x *MethodGET) ProtoReflect() protoreflect.Message { - mi := &file_shared_target_proto_msgTypes[2] +func (x *Target) GetMethod() Method { if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.Method } - return mi.MessageOf(x) + return Method_PING } -// Deprecated: Use MethodGET.ProtoReflect.Descriptor instead. -func (*MethodGET) Descriptor() ([]byte, []int) { - return file_shared_target_proto_rawDescGZIP(), []int{2} -} - -func (x *MethodGET) GetOkCodes() []int32 { +func (x *Target) GetOkCodes() []int32 { if x != nil { return x.OkCodes } @@ -266,30 +205,27 @@ var File_shared_target_proto protoreflect.FileDescriptor var file_shared_target_proto_rawDesc = []byte{ 0x0a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x61, 0x64, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x12, 0x30, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, - 0x6e, 0x67, 0x12, 0x2d, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x47, 0x45, 0x54, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, - 0x0c, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x22, 0x26, 0x0a, - 0x09, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x47, 0x45, 0x54, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6b, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x6b, - 0x43, 0x6f, 0x64, 0x65, 0x73, 0x2a, 0x2c, 0x0a, 0x0b, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x06, - 0x0a, 0x02, 0x55, 0x50, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x02, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x2e, 0x73, 0x72, 0x63, 0x2e, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7e, 0x6c, 0x69, 0x6c, 0x6a, 0x61, 0x6d, 0x6f, 0x2f, 0x65, 0x6d, - 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6b, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x6b, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x2a, 0x1b, 0x0a, 0x06, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x00, + 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x01, 0x2a, 0x2c, 0x0a, 0x0b, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x55, 0x50, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x2e, 0x73, + 0x72, 0x63, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7e, 0x6c, 0x69, 0x6c, 0x6a, 0x61, 0x6d, + 0x6f, 0x2f, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -304,22 +240,20 @@ func file_shared_target_proto_rawDescGZIP() []byte { return file_shared_target_proto_rawDescData } -var file_shared_target_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_shared_target_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_shared_target_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_shared_target_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_shared_target_proto_goTypes = []any{ - (TargetState)(0), // 0: emerwen.shared.TargetState - (*Target)(nil), // 1: emerwen.shared.Target - (*MethodPing)(nil), // 2: emerwen.shared.MethodPing - (*MethodGET)(nil), // 3: emerwen.shared.MethodGET + (Method)(0), // 0: emerwen.shared.Method + (TargetState)(0), // 1: emerwen.shared.TargetState + (*Target)(nil), // 2: emerwen.shared.Target } var file_shared_target_proto_depIdxs = []int32{ - 2, // 0: emerwen.shared.Target.ping:type_name -> emerwen.shared.MethodPing - 3, // 1: emerwen.shared.Target.get:type_name -> emerwen.shared.MethodGET - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 0, // 0: emerwen.shared.Target.method:type_name -> emerwen.shared.Method + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name } func init() { file_shared_target_proto_init() } @@ -327,17 +261,13 @@ func file_shared_target_proto_init() { if File_shared_target_proto != nil { return } - file_shared_target_proto_msgTypes[0].OneofWrappers = []any{ - (*Target_Ping)(nil), - (*Target_Get)(nil), - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_shared_target_proto_rawDesc, - NumEnums: 1, - NumMessages: 3, + NumEnums: 2, + NumMessages: 1, NumExtensions: 0, NumServices: 0, }, diff --git a/go/proto/shared/worker.pb.go b/go/proto/shared/worker.pb.go index c86a2f0..8097eb4 100644 --- a/go/proto/shared/worker.pb.go +++ b/go/proto/shared/worker.pb.go @@ -25,10 +25,10 @@ type Worker struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - AuthToken string `protobuf:"bytes,2,opt,name=auth_token,json=authToken,proto3" json:"auth_token,omitempty"` - Targets []*Target `protobuf:"bytes,3,rep,name=targets,proto3" json:"targets,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + WorkerId string `protobuf:"bytes,1,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + AuthToken string `protobuf:"bytes,3,opt,name=auth_token,json=authToken,proto3" json:"auth_token,omitempty"` + Targets []*Target `protobuf:"bytes,4,rep,name=targets,proto3" json:"targets,omitempty"` } func (x *Worker) Reset() { @@ -61,9 +61,16 @@ func (*Worker) Descriptor() ([]byte, []int) { return file_shared_worker_proto_rawDescGZIP(), []int{0} } -func (x *Worker) GetId() string { +func (x *Worker) GetWorkerId() string { if x != nil { - return x.Id + return x.WorkerId + } + return "" +} + +func (x *Worker) GetName() string { + if x != nil { + return x.Name } return "" } @@ -82,32 +89,26 @@ func (x *Worker) GetTargets() []*Target { return nil } -func (x *Worker) GetName() string { - if x != nil { - return x.Name - } - return "" -} - var File_shared_worker_proto protoreflect.FileDescriptor var file_shared_worker_proto_rawDesc = []byte{ 0x0a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x1a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7d, 0x0a, 0x06, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x30, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2e, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, - 0x2e, 0x73, 0x72, 0x63, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7e, 0x6c, 0x69, 0x6c, 0x6a, - 0x61, 0x6d, 0x6f, 0x2f, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x67, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8a, 0x01, 0x0a, 0x06, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x30, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, + 0x2e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x2e, 0x73, + 0x72, 0x63, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7e, 0x6c, 0x69, 0x6c, 0x6a, 0x61, 0x6d, + 0x6f, 0x2f, 0x65, 0x6d, 0x65, 0x72, 0x77, 0x65, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/justfile b/justfile index 54ee29a..d388e81 100644 --- a/justfile +++ b/justfile @@ -5,7 +5,7 @@ go-compile-protos: protoc --go_out=go/proto --go_opt=paths=source_relative \ --go-grpc_out=go/proto --go-grpc_opt=paths=source_relative \ --proto_path=proto \ - proto/webtomaster.proto proto/shared/target.proto proto/shared/worker.proto + proto/coordinatorcontrol.proto proto/shared/target.proto proto/shared/worker.proto rust-test: cargo test diff --git a/proto/webtomaster.proto b/proto/coordinatorcontrol.proto similarity index 84% rename from proto/webtomaster.proto rename to proto/coordinatorcontrol.proto index a6eba0f..acf77c7 100644 --- a/proto/webtomaster.proto +++ b/proto/coordinatorcontrol.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -package emerwen.webtomaster; +package emerwen.coordinatorcontrol; option go_package = "git.src.quest/~liljamo/emerwen-proto/go/proto"; @@ -7,7 +7,7 @@ import "google/protobuf/empty.proto"; import "shared/target.proto"; import "shared/worker.proto"; -service WebToMaster { +service CoordinatorControlService { rpc GetWorkers (google.protobuf.Empty) returns (WorkersResponse); rpc NewWorker (NewWorkerRequest) returns (google.protobuf.Empty); rpc PatchWorker (PatchWorkerRequest) returns (google.protobuf.Empty); @@ -39,10 +39,8 @@ message NewTargetRequest { string name = 2; string addr = 3; int32 interval = 4; - oneof method { - shared.MethodPing ping = 5; - shared.MethodGET get = 6; - } + shared.Method method = 5; + repeated int32 ok_codes = 6; } message PatchTargetRequest { @@ -50,10 +48,8 @@ message PatchTargetRequest { optional string name = 2; optional string addr = 3; optional int32 interval = 4; - oneof method { - shared.MethodPing ping = 5; - shared.MethodGET get = 6; - } + optional shared.Method method = 5; + repeated int32 ok_codes = 6; } message DeleteTargetRequest { diff --git a/proto/shared/target.proto b/proto/shared/target.proto index c0eda71..5820609 100644 --- a/proto/shared/target.proto +++ b/proto/shared/target.proto @@ -4,20 +4,17 @@ package emerwen.shared; option go_package = "git.src.quest/~liljamo/emerwen-proto/go/proto/shared"; message Target { - string id = 1; + string target_id = 1; string addr = 2; int32 interval = 3; - oneof method { - MethodPing ping = 4; - MethodGET get = 5; - } - string name = 6; + string name = 4; + Method method = 5; + repeated int32 ok_codes = 6; } -message MethodPing {} - -message MethodGET { - repeated int32 ok_codes = 1; +enum Method { + PING = 0; + GET = 1; } enum TargetState { diff --git a/proto/shared/worker.proto b/proto/shared/worker.proto index 6f60a6a..ad318bc 100644 --- a/proto/shared/worker.proto +++ b/proto/shared/worker.proto @@ -6,8 +6,8 @@ option go_package = "git.src.quest/~liljamo/emerwen-proto/go/proto/shared"; import "shared/target.proto"; message Worker { - string id = 1; - string auth_token = 2; - repeated shared.Target targets = 3; - string name = 4; + string worker_id = 1; + string name = 2; + string auth_token = 3; + repeated shared.Target targets = 4; } diff --git a/proto/workercontrol.proto b/proto/workercontrol.proto new file mode 100644 index 0000000..1b9d4e2 --- /dev/null +++ b/proto/workercontrol.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; +package emerwen.workercontrol; + +import "shared/target.proto"; + +service WorkerControlService { + rpc WorkerStream(stream WorkerMessage) returns (stream ServerCommand) {} +} + +message WorkerMessage { + oneof msg { + TargetStateMessage target_state = 1; + } +} + +message TargetStateMessage { + string target_id = 1; + shared.TargetState state = 2; +} + +message ServerCommand { + oneof cmd { + TargetsCommand targets = 1; + } +} + +message TargetsCommand { + repeated shared.Target targets = 1; +} diff --git a/proto/workertomaster.proto b/proto/workertomaster.proto deleted file mode 100644 index 95d0152..0000000 --- a/proto/workertomaster.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; -package emerwen.workertomaster; - -import "google/protobuf/empty.proto"; -import "shared/target.proto"; - -service WorkerToMaster { - rpc GetTargets (google.protobuf.Empty) returns (TargetsResponse); - rpc SetTargetState (SetTargetStateRequest) returns (google.protobuf.Empty); -} - -message TargetsResponse { - repeated shared.Target targets = 1; -} - -message SetTargetStateRequest { - string id = 1; - shared.TargetState state = 2; -} diff --git a/rust/emerwen-proto/build.rs b/rust/emerwen-proto/build.rs index f80ecd5..1b90c38 100644 --- a/rust/emerwen-proto/build.rs +++ b/rust/emerwen-proto/build.rs @@ -1,32 +1,10 @@ fn main() -> Result<(), Box> { tonic_build::configure() .include_file("mod.rs") - .type_attribute("Target", "#[derive(serde::Deserialize, serde::Serialize)]") - .type_attribute( - "Target.method", - "#[derive(serde::Deserialize, serde::Serialize)]", - ) - .type_attribute( - "NewTargetRequest.method", - "#[derive(serde::Deserialize, serde::Serialize)]", - ) - .type_attribute( - "PatchTargetRequest.method", - "#[derive(serde::Deserialize, serde::Serialize)]", - ) - .type_attribute( - "MethodPing", - "#[derive(serde::Deserialize, serde::Serialize)]", - ) - .type_attribute( - "MethodGET", - "#[derive(serde::Deserialize, serde::Serialize)]", - ) - .type_attribute("Worker", "#[derive(serde::Deserialize, serde::Serialize)]") .compile_protos( &[ - "../../proto/workertomaster.proto", - "../../proto/webtomaster.proto", + "../../proto/coordinatorcontrol.proto", + "../../proto/workercontrol.proto", "../../proto/shared/target.proto", "../../proto/shared/worker.proto", ], diff --git a/rust/emerwen-proto/src/lib.rs b/rust/emerwen-proto/src/lib.rs index f1f8f54..579f881 100644 --- a/rust/emerwen-proto/src/lib.rs +++ b/rust/emerwen-proto/src/lib.rs @@ -6,17 +6,3 @@ */ tonic::include_proto!("mod"); - -use emerwen::shared::{target::Method, MethodGet, MethodPing}; - -impl From for Method { - fn from(value: MethodPing) -> Self { - Method::Ping(value) - } -} - -impl From for Method { - fn from(value: MethodGet) -> Self { - Method::Get(value) - } -} -- 2.44.1