From 8fedd221fcc10388f929f0529b27139066837f6e Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Fri, 21 Aug 2020 12:32:33 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=B6=E6=AE=B5=E6=80=A7=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/grpc.sh | 11 +- internal/db/models/node_cluster_dao.go | 2 +- internal/db/models/node_dao.go | 148 +++- internal/db/models/node_dao_test.go | 17 + internal/db/models/node_model.go | 52 +- internal/db/models/server_dao.go | 51 +- internal/db/models/server_model.go | 2 + internal/rpc/pb/model_node.pb.go | 29 +- internal/rpc/pb/service_node.pb.go | 799 ++++++++++++++++-- internal/rpc/pb/service_node_cluster.pb.go | 209 ++++- internal/rpc/pb/service_server.pb.go | 689 +++++++++++++-- internal/rpc/protos/model_node.proto | 1 + internal/rpc/protos/service_node.proto | 52 +- .../rpc/protos/service_node_cluster.proto | 13 + internal/rpc/protos/service_server.proto | 43 +- internal/rpc/services/service_node.go | 124 ++- internal/rpc/services/service_node_cluster.go | 34 + internal/rpc/services/service_server.go | 186 ++++ internal/rpc/services/servie_server.go | 68 -- internal/rpc/utils/utils.go | 27 +- 20 files changed, 2294 insertions(+), 263 deletions(-) create mode 100644 internal/rpc/services/service_server.go delete mode 100644 internal/rpc/services/servie_server.go diff --git a/build/grpc.sh b/build/grpc.sh index 12a7d7e2..c28e18cf 100755 --- a/build/grpc.sh +++ b/build/grpc.sh @@ -1,11 +1,12 @@ #!/usr/bin/env bash ADMIN_PROJECT="../../EdgeAdmin" +NODE_PROJECT="../../EdgeNode" rm -f ../internal/rpc/pb/* protoc --go_out=plugins=grpc:../internal/rpc --proto_path=../internal/rpc/protos ../internal/rpc/protos/*.proto -#admin +# admin function pub() { cp ../internal/rpc/protos/service_${2}.proto ${1}/internal/rpc/protos/ cp ../internal/rpc/pb/service_${2}.pb.go ${1}/internal/rpc/pb/ @@ -18,3 +19,11 @@ pub ${ADMIN_PROJECT} node_grant pub ${ADMIN_PROJECT} server cp ../internal/rpc/pb/model_*.go ${ADMIN_PROJECT}/internal/rpc/pb/ + +# node +pub ${NODE_PROJECT} node + +cp ../internal/rpc/pb/model_node.pb.go ${NODE_PROJECT}/internal/rpc/pb/ +cp ../internal/rpc/pb/model_node_login.pb.go ${NODE_PROJECT}/internal/rpc/pb/ +cp ../internal/rpc/pb/model_node_grant.pb.go ${NODE_PROJECT}/internal/rpc/pb/ +cp ../internal/rpc/pb/model_node_cluster.pb.go ${NODE_PROJECT}/internal/rpc/pb/ \ No newline at end of file diff --git a/internal/db/models/node_cluster_dao.go b/internal/db/models/node_cluster_dao.go index 38e6f6ea..3a803cd5 100644 --- a/internal/db/models/node_cluster_dao.go +++ b/internal/db/models/node_cluster_dao.go @@ -43,7 +43,7 @@ func (this *NodeClusterDAO) DisableNodeCluster(id uint32) (rowsAffected int64, e } // 查找启用中的条目 -func (this *NodeClusterDAO) FindEnabledNodeCluster(id uint32) (*NodeCluster, error) { +func (this *NodeClusterDAO) FindEnabledNodeCluster(id int64) (*NodeCluster, error) { result, err := this.Query(). Pk(id). Attr("state", NodeClusterStateEnabled). diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index 66245398..d7b03c5f 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -69,9 +69,14 @@ func (this *NodeDAO) FindNodeName(id uint32) (string, error) { // 创建节点 func (this *NodeDAO) CreateNode(name string, clusterId int64) (nodeId int64, err error) { + uniqueId, err := this.genUniqueId() + if err != nil { + return 0, err + } + op := NewNodeOperator() op.Name = name - op.NodeId = rands.HexString(32) + op.UniqueId = uniqueId op.Secret = rands.String(32) op.ClusterId = clusterId op.IsOn = 1 @@ -93,10 +98,69 @@ func (this *NodeDAO) UpdateNode(nodeId int64, name string, clusterId int64) erro op.Id = nodeId op.Name = name op.ClusterId = clusterId + op.LatestVersion = dbs.SQL("latestVersion+1") _, err := this.Save(op) return err } +// 更新节点版本 +func (this *NodeDAO) UpdateNodeLatestVersion(nodeId int64) error { + if nodeId <= 0 { + return errors.New("invalid nodeId") + } + op := NewNodeOperator() + op.Id = nodeId + op.LatestVersion = dbs.SQL("latestVersion+1") + _, err := this.Save(op) + return err +} + +// 批量更新节点版本 +func (this *NodeDAO) UpdateAllNodesLatestVersionMatch(clusterId int64) error { + nodeIds, err := this.FindAllNodeIdsMatch(clusterId) + if err != nil { + return err + } + if len(nodeIds) == 0 { + return nil + } + _, err = this.Query(). + Pk(nodeIds). + Set("latestVersion", dbs.SQL("latestVersion+1")). + Update() + return err +} + +// 同步集群中的节点版本 +func (this *NodeDAO) SyncNodeVersionsWithCluster(clusterId int64) error { + if clusterId <= 0 { + return errors.New("invalid cluster") + } + _, err := this.Query(). + Attr("clusterId", clusterId). + Set("version", dbs.SQL("latestVersion")). + Update() + return err +} + +// 取得有变更的集群 +func (this *NodeDAO) FindChangedClusterIds() ([]int64, error) { + ones, _, err := this.Query(). + State(NodeStateEnabled). + Gt("latestVersion", 0). + Where("version!=latestVersion"). + Result("DISTINCT(clusterId) AS clusterId"). + FindOnes() + if err != nil { + return nil, err + } + result := []int64{} + for _, one := range ones { + result = append(result, one.GetInt64("clusterId")) + } + return result, nil +} + // 计算所有节点数量 func (this *NodeDAO) CountAllEnabledNodes() (int64, error) { return this.Query(). @@ -115,3 +179,85 @@ func (this *NodeDAO) ListEnabledNodes(offset int64, size int64) (result []*Node, FindAll() return } + +// 根据节点ID和密钥查询节点 +func (this *NodeDAO) FindEnabledNodeWithUniqueIdAndSecret(uniqueId string, secret string) (*Node, error) { + one, err := this.Query(). + Attr("uniqueId", uniqueId). + Attr("secret", secret). + State(NodeStateEnabled). + Find() + + if one != nil { + return one.(*Node), err + } + + return nil, err +} + +// 根据节点ID获取节点 +func (this *NodeDAO) FindEnabledNodeWithUniqueId(uniqueId string) (*Node, error) { + one, err := this.Query(). + Attr("uniqueId", uniqueId). + State(NodeStateEnabled). + Find() + + if one != nil { + return one.(*Node), err + } + + return nil, err +} + +// 获取节点集群ID +func (this *NodeDAO) FindNodeClusterId(nodeId int64) (int64, error) { + col, err := this.Query(). + Pk(nodeId). + Result("clusterId"). + FindCol(0) + return types.Int64(col), err +} + +// 匹配节点并返回节点ID +func (this *NodeDAO) FindAllNodeIdsMatch(clusterId int64) (result []int64, err error) { + query := this.Query() + query.State(NodeStateEnabled) + if clusterId > 0 { + query.Attr("clusterId", clusterId) + } + query.Result("id") + ones, _, err := query.FindOnes() + if err != nil { + return nil, err + } + for _, one := range ones { + result = append(result, one.GetInt64("id")) + } + return +} + +// 更改节点状态 +func (this *NodeDAO) UpdateNodeStatus(nodeId int64, statusJSON []byte) error { + _, err := this.Query(). + Pk(nodeId). + Set("status", string(statusJSON)). + Update() + return err +} + +// 生成唯一ID +func (this *NodeDAO) genUniqueId() (string, error) { + for { + uniqueId := rands.HexString(32) + ok, err := this.Query(). + Attr("uniqueId", uniqueId). + Exist() + if err != nil { + return "", err + } + if ok { + continue + } + return uniqueId, nil + } +} diff --git a/internal/db/models/node_dao_test.go b/internal/db/models/node_dao_test.go index 97c24b56..27378fb8 100644 --- a/internal/db/models/node_dao_test.go +++ b/internal/db/models/node_dao_test.go @@ -2,4 +2,21 @@ package models import ( _ "github.com/go-sql-driver/mysql" + "testing" ) + +func TestNodeDAO_FindAllNodeIdsMatch(t *testing.T) { + nodeIds, err := SharedNodeDAO.FindAllNodeIdsMatch(1) + if err != nil { + t.Fatal(err) + } + t.Log(nodeIds) +} + +func TestNodeDAO_FindChangedClusterIds(t *testing.T) { + clusterIds, err := SharedNodeDAO.FindChangedClusterIds() + if err != nil { + t.Fatal(err) + } + t.Log(clusterIds) +} diff --git a/internal/db/models/node_model.go b/internal/db/models/node_model.go index 1685343e..c6c604d9 100644 --- a/internal/db/models/node_model.go +++ b/internal/db/models/node_model.go @@ -2,33 +2,37 @@ package models // 节点 type Node struct { - Id uint32 `field:"id"` // ID - IsOn uint8 `field:"isOn"` // 是否启用 - NodeId string `field:"nodeId"` // 节点ID - Secret string `field:"secret"` // 密钥 - Name string `field:"name"` // 节点名 - Code string `field:"code"` // 代号 - ClusterId uint32 `field:"clusterId"` // 集群ID - RegionId uint32 `field:"regionId"` // 区域ID - GroupId uint32 `field:"groupId"` // 分组ID - CreatedAt uint32 `field:"createdAt"` // 创建时间 - Status string `field:"status"` // 最新的状态 - State uint8 `field:"state"` // 状态 + Id uint32 `field:"id"` // ID + IsOn uint8 `field:"isOn"` // 是否启用 + UniqueId string `field:"uniqueId"` // 节点ID + Secret string `field:"secret"` // 密钥 + Name string `field:"name"` // 节点名 + Code string `field:"code"` // 代号 + ClusterId uint32 `field:"clusterId"` // 集群ID + RegionId uint32 `field:"regionId"` // 区域ID + GroupId uint32 `field:"groupId"` // 分组ID + CreatedAt uint32 `field:"createdAt"` // 创建时间 + Status string `field:"status"` // 最新的状态 + Version uint32 `field:"version"` // 当前版本号 + LatestVersion uint32 `field:"latestVersion"` // 最后版本号 + State uint8 `field:"state"` // 状态 } type NodeOperator struct { - Id interface{} // ID - IsOn interface{} // 是否启用 - NodeId interface{} // 节点ID - Secret interface{} // 密钥 - Name interface{} // 节点名 - Code interface{} // 代号 - ClusterId interface{} // 集群ID - RegionId interface{} // 区域ID - GroupId interface{} // 分组ID - CreatedAt interface{} // 创建时间 - Status interface{} // 最新的状态 - State interface{} // 状态 + Id interface{} // ID + IsOn interface{} // 是否启用 + UniqueId interface{} // 节点ID + Secret interface{} // 密钥 + Name interface{} // 节点名 + Code interface{} // 代号 + ClusterId interface{} // 集群ID + RegionId interface{} // 区域ID + GroupId interface{} // 分组ID + CreatedAt interface{} // 创建时间 + Status interface{} // 最新的状态 + Version interface{} // 当前版本号 + LatestVersion interface{} // 最后版本号 + State interface{} // 状态 } func NewNodeOperator() *NodeOperator { diff --git a/internal/db/models/server_dao.go b/internal/db/models/server_dao.go index 9e6bb849..a9d318eb 100644 --- a/internal/db/models/server_dao.go +++ b/internal/db/models/server_dao.go @@ -5,6 +5,7 @@ import ( _ "github.com/go-sql-driver/mysql" "github.com/iwind/TeaGo/Tea" "github.com/iwind/TeaGo/dbs" + "github.com/iwind/TeaGo/rands" "github.com/iwind/TeaGo/types" ) @@ -37,15 +38,16 @@ func (this *ServerDAO) EnableServer(id uint32) (rowsAffected int64, err error) { } // 禁用条目 -func (this *ServerDAO) DisableServer(id uint32) (rowsAffected int64, err error) { - return this.Query(). +func (this *ServerDAO) DisableServer(id int64) (err error) { + _, err = this.Query(). Pk(id). Set("state", ServerStateDisabled). Update() + return } // 查找启用中的条目 -func (this *ServerDAO) FindEnabledServer(id uint32) (*Server, error) { +func (this *ServerDAO) FindEnabledServer(id int64) (*Server, error) { result, err := this.Query(). Pk(id). Attr("state", ServerStateEnabled). @@ -58,7 +60,13 @@ func (this *ServerDAO) FindEnabledServer(id uint32) (*Server, error) { // 创建服务 func (this *ServerDAO) CreateServer(adminId int64, userId int64, clusterId int64, configJSON string, includeNodesJSON string, excludeNodesJSON string) (serverId int64, err error) { + uniqueId, err := this.genUniqueId() + if err != nil { + return 0, err + } + op := NewServerOperator() + op.UniqueId = uniqueId op.UserId = userId op.AdminId = adminId op.ClusterId = clusterId @@ -119,3 +127,40 @@ func (this *ServerDAO) ListEnabledServers(offset int64, size int64) (result []*S FindAll() return } + +// 获取节点中的所有服务 +func (this *ServerDAO) FindAllEnabledServersWithNode(nodeId int64) (result []*Server, err error) { + // 节点所在集群 + clusterId, err := SharedNodeDAO.FindNodeClusterId(nodeId) + if err != nil { + return nil, err + } + if clusterId <= 0 { + return nil, nil + } + + _, err = this.Query(). + Attr("clusterId", clusterId). + State(ServerStateEnabled). + AscPk(). + Slice(&result). + FindAll() + return +} + +// 生成唯一ID +func (this *ServerDAO) genUniqueId() (string, error) { + for { + uniqueId := rands.HexString(32) + ok, err := this.Query(). + Attr("uniqueId", uniqueId). + Exist() + if err != nil { + return "", err + } + if ok { + continue + } + return uniqueId, nil + } +} diff --git a/internal/db/models/server_model.go b/internal/db/models/server_model.go index 73adb127..8c0c6730 100644 --- a/internal/db/models/server_model.go +++ b/internal/db/models/server_model.go @@ -3,6 +3,7 @@ package models // 服务 type Server struct { Id uint32 `field:"id"` // ID + UniqueId string `field:"uniqueId"` // 唯一ID IsOn uint8 `field:"isOn"` // 是否启用 UserId uint32 `field:"userId"` // 用户ID AdminId uint32 `field:"adminId"` // 管理员ID @@ -18,6 +19,7 @@ type Server struct { type ServerOperator struct { Id interface{} // ID + UniqueId interface{} // 唯一ID IsOn interface{} // 是否启用 UserId interface{} // 用户ID AdminId interface{} // 管理员ID diff --git a/internal/rpc/pb/model_node.pb.go b/internal/rpc/pb/model_node.pb.go index 1427f941..561d6e55 100644 --- a/internal/rpc/pb/model_node.pb.go +++ b/internal/rpc/pb/model_node.pb.go @@ -32,6 +32,7 @@ type Node struct { Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` Cluster *NodeCluster `protobuf:"bytes,32,opt,name=cluster,proto3" json:"cluster,omitempty"` Login *NodeLogin `protobuf:"bytes,33,opt,name=login,proto3" json:"login,omitempty"` } @@ -82,6 +83,13 @@ func (x *Node) GetName() string { return "" } +func (x *Node) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + func (x *Node) GetCluster() *NodeCluster { if x != nil { return x.Cluster @@ -103,16 +111,17 @@ var file_model_node_proto_rawDesc = []byte{ 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x18, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x67, - 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, - 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x23, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x05, 0x6c, - 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, + 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, + 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x06, 0x5a, + 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/internal/rpc/pb/service_node.pb.go b/internal/rpc/pb/service_node.pb.go index 1481787f..97e6fafe 100644 --- a/internal/rpc/pb/service_node.pb.go +++ b/internal/rpc/pb/service_node.pb.go @@ -620,6 +620,349 @@ func (x *FindEnabledNodeResponse) GetNode() *Node { return nil } +// 组合单个节点配置 +type ComposeNodeConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ComposeNodeConfigRequest) Reset() { + *x = ComposeNodeConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComposeNodeConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComposeNodeConfigRequest) ProtoMessage() {} + +func (x *ComposeNodeConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[12] + 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 ComposeNodeConfigRequest.ProtoReflect.Descriptor instead. +func (*ComposeNodeConfigRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{12} +} + +type ComposeNodeConfigResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConfigJSON []byte `protobuf:"bytes,1,opt,name=configJSON,proto3" json:"configJSON,omitempty"` +} + +func (x *ComposeNodeConfigResponse) Reset() { + *x = ComposeNodeConfigResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComposeNodeConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComposeNodeConfigResponse) ProtoMessage() {} + +func (x *ComposeNodeConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[13] + 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 ComposeNodeConfigResponse.ProtoReflect.Descriptor instead. +func (*ComposeNodeConfigResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{13} +} + +func (x *ComposeNodeConfigResponse) GetConfigJSON() []byte { + if x != nil { + return x.ConfigJSON + } + return nil +} + +// 节点stream +type NodeStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NodeStreamRequest) Reset() { + *x = NodeStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeStreamRequest) ProtoMessage() {} + +func (x *NodeStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[14] + 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 NodeStreamRequest.ProtoReflect.Descriptor instead. +func (*NodeStreamRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{14} +} + +type NodeStreamResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NodeStreamResponse) Reset() { + *x = NodeStreamResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeStreamResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeStreamResponse) ProtoMessage() {} + +func (x *NodeStreamResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[15] + 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 NodeStreamResponse.ProtoReflect.Descriptor instead. +func (*NodeStreamResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{15} +} + +// 更新节点状态 +type UpdateNodeStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + StatusJSON []byte `protobuf:"bytes,2,opt,name=statusJSON,proto3" json:"statusJSON,omitempty"` +} + +func (x *UpdateNodeStatusRequest) Reset() { + *x = UpdateNodeStatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeStatusRequest) ProtoMessage() {} + +func (x *UpdateNodeStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[16] + 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 UpdateNodeStatusRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeStatusRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{16} +} + +func (x *UpdateNodeStatusRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *UpdateNodeStatusRequest) GetStatusJSON() []byte { + if x != nil { + return x.StatusJSON + } + return nil +} + +type UpdateNodeStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeStatusResponse) Reset() { + *x = UpdateNodeStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeStatusResponse) ProtoMessage() {} + +func (x *UpdateNodeStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[17] + 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 UpdateNodeStatusResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeStatusResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{17} +} + +// 同步集群中的节点版本 +type SyncNodesVersionWithClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterId int64 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` +} + +func (x *SyncNodesVersionWithClusterRequest) Reset() { + *x = SyncNodesVersionWithClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncNodesVersionWithClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncNodesVersionWithClusterRequest) ProtoMessage() {} + +func (x *SyncNodesVersionWithClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[18] + 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 SyncNodesVersionWithClusterRequest.ProtoReflect.Descriptor instead. +func (*SyncNodesVersionWithClusterRequest) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{18} +} + +func (x *SyncNodesVersionWithClusterRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +type SyncNodesVersionWithClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SyncNodesVersionWithClusterResponse) Reset() { + *x = SyncNodesVersionWithClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncNodesVersionWithClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncNodesVersionWithClusterResponse) ProtoMessage() {} + +func (x *SyncNodesVersionWithClusterResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_proto_msgTypes[19] + 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 SyncNodesVersionWithClusterResponse.ProtoReflect.Descriptor instead. +func (*SyncNodesVersionWithClusterResponse) Descriptor() ([]byte, []int) { + return file_service_node_proto_rawDescGZIP(), []int{19} +} + var File_service_node_proto protoreflect.FileDescriptor var file_service_node_proto_rawDesc = []byte{ @@ -670,35 +1013,78 @@ var file_service_node_proto_rawDesc = []byte{ 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x32, - 0xbd, 0x03, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x3b, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, - 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, - 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, + 0x1a, 0x0a, 0x18, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x19, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x13, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, + 0x12, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x1a, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x42, 0x0a, 0x22, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x8f, 0x06, + 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, + 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x62, + 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, + 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3f, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x15, 0x2e, + 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, + 0x12, 0x4d, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6e, 0x0a, 0x1b, 0x73, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x26, + 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } @@ -714,42 +1100,58 @@ func file_service_node_proto_rawDescGZIP() []byte { return file_service_node_proto_rawDescData } -var file_service_node_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_service_node_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_service_node_proto_goTypes = []interface{}{ - (*CreateNodeRequest)(nil), // 0: pb.CreateNodeRequest - (*CreateNodeResponse)(nil), // 1: pb.CreateNodeResponse - (*CountAllEnabledNodesRequest)(nil), // 2: pb.CountAllEnabledNodesRequest - (*CountAllEnabledNodesResponse)(nil), // 3: pb.CountAllEnabledNodesResponse - (*ListEnabledNodesRequest)(nil), // 4: pb.ListEnabledNodesRequest - (*ListEnabledNodesResponse)(nil), // 5: pb.ListEnabledNodesResponse - (*DisableNodeRequest)(nil), // 6: pb.DisableNodeRequest - (*DisableNodeResponse)(nil), // 7: pb.DisableNodeResponse - (*UpdateNodeRequest)(nil), // 8: pb.UpdateNodeRequest - (*UpdateNodeResponse)(nil), // 9: pb.UpdateNodeResponse - (*FindEnabledNodeRequest)(nil), // 10: pb.FindEnabledNodeRequest - (*FindEnabledNodeResponse)(nil), // 11: pb.FindEnabledNodeResponse - (*NodeLogin)(nil), // 12: pb.NodeLogin - (*Node)(nil), // 13: pb.Node + (*CreateNodeRequest)(nil), // 0: pb.CreateNodeRequest + (*CreateNodeResponse)(nil), // 1: pb.CreateNodeResponse + (*CountAllEnabledNodesRequest)(nil), // 2: pb.CountAllEnabledNodesRequest + (*CountAllEnabledNodesResponse)(nil), // 3: pb.CountAllEnabledNodesResponse + (*ListEnabledNodesRequest)(nil), // 4: pb.ListEnabledNodesRequest + (*ListEnabledNodesResponse)(nil), // 5: pb.ListEnabledNodesResponse + (*DisableNodeRequest)(nil), // 6: pb.DisableNodeRequest + (*DisableNodeResponse)(nil), // 7: pb.DisableNodeResponse + (*UpdateNodeRequest)(nil), // 8: pb.UpdateNodeRequest + (*UpdateNodeResponse)(nil), // 9: pb.UpdateNodeResponse + (*FindEnabledNodeRequest)(nil), // 10: pb.FindEnabledNodeRequest + (*FindEnabledNodeResponse)(nil), // 11: pb.FindEnabledNodeResponse + (*ComposeNodeConfigRequest)(nil), // 12: pb.ComposeNodeConfigRequest + (*ComposeNodeConfigResponse)(nil), // 13: pb.ComposeNodeConfigResponse + (*NodeStreamRequest)(nil), // 14: pb.NodeStreamRequest + (*NodeStreamResponse)(nil), // 15: pb.NodeStreamResponse + (*UpdateNodeStatusRequest)(nil), // 16: pb.UpdateNodeStatusRequest + (*UpdateNodeStatusResponse)(nil), // 17: pb.UpdateNodeStatusResponse + (*SyncNodesVersionWithClusterRequest)(nil), // 18: pb.SyncNodesVersionWithClusterRequest + (*SyncNodesVersionWithClusterResponse)(nil), // 19: pb.SyncNodesVersionWithClusterResponse + (*NodeLogin)(nil), // 20: pb.NodeLogin + (*Node)(nil), // 21: pb.Node } var file_service_node_proto_depIdxs = []int32{ - 12, // 0: pb.CreateNodeRequest.Login:type_name -> pb.NodeLogin - 13, // 1: pb.ListEnabledNodesResponse.nodes:type_name -> pb.Node - 12, // 2: pb.UpdateNodeRequest.Login:type_name -> pb.NodeLogin - 13, // 3: pb.FindEnabledNodeResponse.node:type_name -> pb.Node + 20, // 0: pb.CreateNodeRequest.Login:type_name -> pb.NodeLogin + 21, // 1: pb.ListEnabledNodesResponse.nodes:type_name -> pb.Node + 20, // 2: pb.UpdateNodeRequest.Login:type_name -> pb.NodeLogin + 21, // 3: pb.FindEnabledNodeResponse.node:type_name -> pb.Node 0, // 4: pb.NodeService.createNode:input_type -> pb.CreateNodeRequest 2, // 5: pb.NodeService.countAllEnabledNodes:input_type -> pb.CountAllEnabledNodesRequest 4, // 6: pb.NodeService.listEnabledNodes:input_type -> pb.ListEnabledNodesRequest 6, // 7: pb.NodeService.disableNode:input_type -> pb.DisableNodeRequest 8, // 8: pb.NodeService.updateNode:input_type -> pb.UpdateNodeRequest 10, // 9: pb.NodeService.findEnabledNode:input_type -> pb.FindEnabledNodeRequest - 1, // 10: pb.NodeService.createNode:output_type -> pb.CreateNodeResponse - 3, // 11: pb.NodeService.countAllEnabledNodes:output_type -> pb.CountAllEnabledNodesResponse - 5, // 12: pb.NodeService.listEnabledNodes:output_type -> pb.ListEnabledNodesResponse - 7, // 13: pb.NodeService.disableNode:output_type -> pb.DisableNodeResponse - 9, // 14: pb.NodeService.updateNode:output_type -> pb.UpdateNodeResponse - 11, // 15: pb.NodeService.findEnabledNode:output_type -> pb.FindEnabledNodeResponse - 10, // [10:16] is the sub-list for method output_type - 4, // [4:10] is the sub-list for method input_type + 12, // 10: pb.NodeService.composeNodeConfig:input_type -> pb.ComposeNodeConfigRequest + 14, // 11: pb.NodeService.nodeStream:input_type -> pb.NodeStreamRequest + 16, // 12: pb.NodeService.updateNodeStatus:input_type -> pb.UpdateNodeStatusRequest + 18, // 13: pb.NodeService.syncNodesVersionWithCluster:input_type -> pb.SyncNodesVersionWithClusterRequest + 1, // 14: pb.NodeService.createNode:output_type -> pb.CreateNodeResponse + 3, // 15: pb.NodeService.countAllEnabledNodes:output_type -> pb.CountAllEnabledNodesResponse + 5, // 16: pb.NodeService.listEnabledNodes:output_type -> pb.ListEnabledNodesResponse + 7, // 17: pb.NodeService.disableNode:output_type -> pb.DisableNodeResponse + 9, // 18: pb.NodeService.updateNode:output_type -> pb.UpdateNodeResponse + 11, // 19: pb.NodeService.findEnabledNode:output_type -> pb.FindEnabledNodeResponse + 13, // 20: pb.NodeService.composeNodeConfig:output_type -> pb.ComposeNodeConfigResponse + 15, // 21: pb.NodeService.nodeStream:output_type -> pb.NodeStreamResponse + 17, // 22: pb.NodeService.updateNodeStatus:output_type -> pb.UpdateNodeStatusResponse + 19, // 23: pb.NodeService.syncNodesVersionWithCluster:output_type -> pb.SyncNodesVersionWithClusterResponse + 14, // [14:24] is the sub-list for method output_type + 4, // [4:14] is the sub-list for method input_type 4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension extendee 0, // [0:4] is the sub-list for field type_name @@ -907,6 +1309,102 @@ func file_service_node_proto_init() { return nil } } + file_service_node_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComposeNodeConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComposeNodeConfigResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeStreamResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeStatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncNodesVersionWithClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncNodesVersionWithClusterResponse); 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{ @@ -914,7 +1412,7 @@ func file_service_node_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_node_proto_rawDesc, NumEnums: 0, - NumMessages: 12, + NumMessages: 20, NumExtensions: 0, NumServices: 1, }, @@ -952,6 +1450,14 @@ type NodeServiceClient interface { UpdateNode(ctx context.Context, in *UpdateNodeRequest, opts ...grpc.CallOption) (*UpdateNodeResponse, error) // 查看单个节点 FindEnabledNode(ctx context.Context, in *FindEnabledNodeRequest, opts ...grpc.CallOption) (*FindEnabledNodeResponse, error) + // 组合单个节点配置 + ComposeNodeConfig(ctx context.Context, in *ComposeNodeConfigRequest, opts ...grpc.CallOption) (*ComposeNodeConfigResponse, error) + // 节点stream + NodeStream(ctx context.Context, opts ...grpc.CallOption) (NodeService_NodeStreamClient, error) + // 更新节点状态 + UpdateNodeStatus(ctx context.Context, in *UpdateNodeStatusRequest, opts ...grpc.CallOption) (*UpdateNodeStatusResponse, error) + // 同步集群中的节点版本 + SyncNodesVersionWithCluster(ctx context.Context, in *SyncNodesVersionWithClusterRequest, opts ...grpc.CallOption) (*SyncNodesVersionWithClusterResponse, error) } type nodeServiceClient struct { @@ -1016,6 +1522,64 @@ func (c *nodeServiceClient) FindEnabledNode(ctx context.Context, in *FindEnabled return out, nil } +func (c *nodeServiceClient) ComposeNodeConfig(ctx context.Context, in *ComposeNodeConfigRequest, opts ...grpc.CallOption) (*ComposeNodeConfigResponse, error) { + out := new(ComposeNodeConfigResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/composeNodeConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) NodeStream(ctx context.Context, opts ...grpc.CallOption) (NodeService_NodeStreamClient, error) { + stream, err := c.cc.NewStream(ctx, &_NodeService_serviceDesc.Streams[0], "/pb.NodeService/nodeStream", opts...) + if err != nil { + return nil, err + } + x := &nodeServiceNodeStreamClient{stream} + return x, nil +} + +type NodeService_NodeStreamClient interface { + Send(*NodeStreamRequest) error + Recv() (*NodeStreamResponse, error) + grpc.ClientStream +} + +type nodeServiceNodeStreamClient struct { + grpc.ClientStream +} + +func (x *nodeServiceNodeStreamClient) Send(m *NodeStreamRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *nodeServiceNodeStreamClient) Recv() (*NodeStreamResponse, error) { + m := new(NodeStreamResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *nodeServiceClient) UpdateNodeStatus(ctx context.Context, in *UpdateNodeStatusRequest, opts ...grpc.CallOption) (*UpdateNodeStatusResponse, error) { + out := new(UpdateNodeStatusResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/updateNodeStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeServiceClient) SyncNodesVersionWithCluster(ctx context.Context, in *SyncNodesVersionWithClusterRequest, opts ...grpc.CallOption) (*SyncNodesVersionWithClusterResponse, error) { + out := new(SyncNodesVersionWithClusterResponse) + err := c.cc.Invoke(ctx, "/pb.NodeService/syncNodesVersionWithCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // NodeServiceServer is the server API for NodeService service. type NodeServiceServer interface { // 创建节点 @@ -1030,6 +1594,14 @@ type NodeServiceServer interface { UpdateNode(context.Context, *UpdateNodeRequest) (*UpdateNodeResponse, error) // 查看单个节点 FindEnabledNode(context.Context, *FindEnabledNodeRequest) (*FindEnabledNodeResponse, error) + // 组合单个节点配置 + ComposeNodeConfig(context.Context, *ComposeNodeConfigRequest) (*ComposeNodeConfigResponse, error) + // 节点stream + NodeStream(NodeService_NodeStreamServer) error + // 更新节点状态 + UpdateNodeStatus(context.Context, *UpdateNodeStatusRequest) (*UpdateNodeStatusResponse, error) + // 同步集群中的节点版本 + SyncNodesVersionWithCluster(context.Context, *SyncNodesVersionWithClusterRequest) (*SyncNodesVersionWithClusterResponse, error) } // UnimplementedNodeServiceServer can be embedded to have forward compatible implementations. @@ -1054,6 +1626,18 @@ func (*UnimplementedNodeServiceServer) UpdateNode(context.Context, *UpdateNodeRe func (*UnimplementedNodeServiceServer) FindEnabledNode(context.Context, *FindEnabledNodeRequest) (*FindEnabledNodeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FindEnabledNode not implemented") } +func (*UnimplementedNodeServiceServer) ComposeNodeConfig(context.Context, *ComposeNodeConfigRequest) (*ComposeNodeConfigResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ComposeNodeConfig not implemented") +} +func (*UnimplementedNodeServiceServer) NodeStream(NodeService_NodeStreamServer) error { + return status.Errorf(codes.Unimplemented, "method NodeStream not implemented") +} +func (*UnimplementedNodeServiceServer) UpdateNodeStatus(context.Context, *UpdateNodeStatusRequest) (*UpdateNodeStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeStatus not implemented") +} +func (*UnimplementedNodeServiceServer) SyncNodesVersionWithCluster(context.Context, *SyncNodesVersionWithClusterRequest) (*SyncNodesVersionWithClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SyncNodesVersionWithCluster not implemented") +} func RegisterNodeServiceServer(s *grpc.Server, srv NodeServiceServer) { s.RegisterService(&_NodeService_serviceDesc, srv) @@ -1167,6 +1751,86 @@ func _NodeService_FindEnabledNode_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _NodeService_ComposeNodeConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ComposeNodeConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).ComposeNodeConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/ComposeNodeConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).ComposeNodeConfig(ctx, req.(*ComposeNodeConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_NodeStream_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(NodeServiceServer).NodeStream(&nodeServiceNodeStreamServer{stream}) +} + +type NodeService_NodeStreamServer interface { + Send(*NodeStreamResponse) error + Recv() (*NodeStreamRequest, error) + grpc.ServerStream +} + +type nodeServiceNodeStreamServer struct { + grpc.ServerStream +} + +func (x *nodeServiceNodeStreamServer) Send(m *NodeStreamResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *nodeServiceNodeStreamServer) Recv() (*NodeStreamRequest, error) { + m := new(NodeStreamRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _NodeService_UpdateNodeStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).UpdateNodeStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/UpdateNodeStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).UpdateNodeStatus(ctx, req.(*UpdateNodeStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeService_SyncNodesVersionWithCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SyncNodesVersionWithClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServiceServer).SyncNodesVersionWithCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeService/SyncNodesVersionWithCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServiceServer).SyncNodesVersionWithCluster(ctx, req.(*SyncNodesVersionWithClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _NodeService_serviceDesc = grpc.ServiceDesc{ ServiceName: "pb.NodeService", HandlerType: (*NodeServiceServer)(nil), @@ -1195,7 +1859,26 @@ var _NodeService_serviceDesc = grpc.ServiceDesc{ MethodName: "findEnabledNode", Handler: _NodeService_FindEnabledNode_Handler, }, + { + MethodName: "composeNodeConfig", + Handler: _NodeService_ComposeNodeConfig_Handler, + }, + { + MethodName: "updateNodeStatus", + Handler: _NodeService_UpdateNodeStatus_Handler, + }, + { + MethodName: "syncNodesVersionWithCluster", + Handler: _NodeService_SyncNodesVersionWithCluster_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "nodeStream", + Handler: _NodeService_NodeStream_Handler, + ServerStreams: true, + ClientStreams: true, + }, }, - Streams: []grpc.StreamDesc{}, Metadata: "service_node.proto", } diff --git a/internal/rpc/pb/service_node_cluster.pb.go b/internal/rpc/pb/service_node_cluster.pb.go index 011cd6e2..58b373d0 100644 --- a/internal/rpc/pb/service_node_cluster.pb.go +++ b/internal/rpc/pb/service_node_cluster.pb.go @@ -29,6 +29,7 @@ const ( // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 +// 获取所有集群的信息 type FindAllEnabledNodeClustersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -114,6 +115,92 @@ func (x *FindAllEnabledNodeClustersResponse) GetClusters() []*NodeCluster { return nil } +// 获取变更的集群 +type FindAllChangedClustersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FindAllChangedClustersRequest) Reset() { + *x = FindAllChangedClustersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllChangedClustersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllChangedClustersRequest) ProtoMessage() {} + +func (x *FindAllChangedClustersRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_proto_msgTypes[2] + 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 FindAllChangedClustersRequest.ProtoReflect.Descriptor instead. +func (*FindAllChangedClustersRequest) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{2} +} + +type FindAllChangedClustersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Clusters []*NodeCluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` +} + +func (x *FindAllChangedClustersResponse) Reset() { + *x = FindAllChangedClustersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_cluster_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllChangedClustersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllChangedClustersResponse) ProtoMessage() {} + +func (x *FindAllChangedClustersResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_cluster_proto_msgTypes[3] + 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 FindAllChangedClustersResponse.ProtoReflect.Descriptor instead. +func (*FindAllChangedClustersResponse) Descriptor() ([]byte, []int) { + return file_service_node_cluster_proto_rawDescGZIP(), []int{3} +} + +func (x *FindAllChangedClustersResponse) GetClusters() []*NodeCluster { + if x != nil { + return x.Clusters + } + return nil +} + var File_service_node_cluster_proto protoreflect.FileDescriptor var file_service_node_cluster_proto_rawDesc = []byte{ @@ -128,16 +215,29 @@ var file_service_node_cluster_proto_rawDesc = []byte{ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x32, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x67, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, - 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, - 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, - 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x32, 0xde, 0x01, 0x0a, 0x12, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x67, 0x0a, 0x16, 0x66, 0x69, 0x6e, + 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x21, 0x2e, 0x70, + 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -152,21 +252,26 @@ func file_service_node_cluster_proto_rawDescGZIP() []byte { return file_service_node_cluster_proto_rawDescData } -var file_service_node_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_service_node_cluster_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_service_node_cluster_proto_goTypes = []interface{}{ (*FindAllEnabledNodeClustersRequest)(nil), // 0: pb.FindAllEnabledNodeClustersRequest (*FindAllEnabledNodeClustersResponse)(nil), // 1: pb.FindAllEnabledNodeClustersResponse - (*NodeCluster)(nil), // 2: pb.NodeCluster + (*FindAllChangedClustersRequest)(nil), // 2: pb.FindAllChangedClustersRequest + (*FindAllChangedClustersResponse)(nil), // 3: pb.FindAllChangedClustersResponse + (*NodeCluster)(nil), // 4: pb.NodeCluster } var file_service_node_cluster_proto_depIdxs = []int32{ - 2, // 0: pb.FindAllEnabledNodeClustersResponse.clusters:type_name -> pb.NodeCluster - 0, // 1: pb.NodeClusterService.findAllEnabledClusters:input_type -> pb.FindAllEnabledNodeClustersRequest - 1, // 2: pb.NodeClusterService.findAllEnabledClusters:output_type -> pb.FindAllEnabledNodeClustersResponse - 2, // [2:3] is the sub-list for method output_type - 1, // [1:2] 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 + 4, // 0: pb.FindAllEnabledNodeClustersResponse.clusters:type_name -> pb.NodeCluster + 4, // 1: pb.FindAllChangedClustersResponse.clusters:type_name -> pb.NodeCluster + 0, // 2: pb.NodeClusterService.findAllEnabledClusters:input_type -> pb.FindAllEnabledNodeClustersRequest + 2, // 3: pb.NodeClusterService.findAllChangedClusters:input_type -> pb.FindAllChangedClustersRequest + 1, // 4: pb.NodeClusterService.findAllEnabledClusters:output_type -> pb.FindAllEnabledNodeClustersResponse + 3, // 5: pb.NodeClusterService.findAllChangedClusters:output_type -> pb.FindAllChangedClustersResponse + 4, // [4:6] is the sub-list for method output_type + 2, // [2:4] 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 } func init() { file_service_node_cluster_proto_init() } @@ -200,6 +305,30 @@ func file_service_node_cluster_proto_init() { return nil } } + file_service_node_cluster_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllChangedClustersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_cluster_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllChangedClustersResponse); 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{ @@ -207,7 +336,7 @@ func file_service_node_cluster_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_node_cluster_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 4, NumExtensions: 0, NumServices: 1, }, @@ -235,6 +364,8 @@ const _ = grpc.SupportPackageIsVersion6 type NodeClusterServiceClient interface { // 获取所有集群的信息 FindAllEnabledClusters(ctx context.Context, in *FindAllEnabledNodeClustersRequest, opts ...grpc.CallOption) (*FindAllEnabledNodeClustersResponse, error) + // 获取变更的集群 + FindAllChangedClusters(ctx context.Context, in *FindAllChangedClustersRequest, opts ...grpc.CallOption) (*FindAllChangedClustersResponse, error) } type nodeClusterServiceClient struct { @@ -254,10 +385,21 @@ func (c *nodeClusterServiceClient) FindAllEnabledClusters(ctx context.Context, i return out, nil } +func (c *nodeClusterServiceClient) FindAllChangedClusters(ctx context.Context, in *FindAllChangedClustersRequest, opts ...grpc.CallOption) (*FindAllChangedClustersResponse, error) { + out := new(FindAllChangedClustersResponse) + err := c.cc.Invoke(ctx, "/pb.NodeClusterService/findAllChangedClusters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // NodeClusterServiceServer is the server API for NodeClusterService service. type NodeClusterServiceServer interface { // 获取所有集群的信息 FindAllEnabledClusters(context.Context, *FindAllEnabledNodeClustersRequest) (*FindAllEnabledNodeClustersResponse, error) + // 获取变更的集群 + FindAllChangedClusters(context.Context, *FindAllChangedClustersRequest) (*FindAllChangedClustersResponse, error) } // UnimplementedNodeClusterServiceServer can be embedded to have forward compatible implementations. @@ -267,6 +409,9 @@ type UnimplementedNodeClusterServiceServer struct { func (*UnimplementedNodeClusterServiceServer) FindAllEnabledClusters(context.Context, *FindAllEnabledNodeClustersRequest) (*FindAllEnabledNodeClustersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method FindAllEnabledClusters not implemented") } +func (*UnimplementedNodeClusterServiceServer) FindAllChangedClusters(context.Context, *FindAllChangedClustersRequest) (*FindAllChangedClustersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllChangedClusters not implemented") +} func RegisterNodeClusterServiceServer(s *grpc.Server, srv NodeClusterServiceServer) { s.RegisterService(&_NodeClusterService_serviceDesc, srv) @@ -290,6 +435,24 @@ func _NodeClusterService_FindAllEnabledClusters_Handler(srv interface{}, ctx con return interceptor(ctx, in, info, handler) } +func _NodeClusterService_FindAllChangedClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllChangedClustersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeClusterServiceServer).FindAllChangedClusters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeClusterService/FindAllChangedClusters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeClusterServiceServer).FindAllChangedClusters(ctx, req.(*FindAllChangedClustersRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _NodeClusterService_serviceDesc = grpc.ServiceDesc{ ServiceName: "pb.NodeClusterService", HandlerType: (*NodeClusterServiceServer)(nil), @@ -298,6 +461,10 @@ var _NodeClusterService_serviceDesc = grpc.ServiceDesc{ MethodName: "findAllEnabledClusters", Handler: _NodeClusterService_FindAllEnabledClusters_Handler, }, + { + MethodName: "findAllChangedClusters", + Handler: _NodeClusterService_FindAllChangedClusters_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "service_node_cluster.proto", diff --git a/internal/rpc/pb/service_server.pb.go b/internal/rpc/pb/service_server.pb.go index a0ac0f82..5f973082 100644 --- a/internal/rpc/pb/service_server.pb.go +++ b/internal/rpc/pb/service_server.pb.go @@ -164,6 +164,140 @@ func (x *CreateServerResponse) GetServerId() int64 { return 0 } +// 修改服务 +type UpdateServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` + UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + AdminId int64 `protobuf:"varint,3,opt,name=adminId,proto3" json:"adminId,omitempty"` + ClusterId int64 `protobuf:"varint,4,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + Config []byte `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"` + IncludeNodesJSON []byte `protobuf:"bytes,6,opt,name=includeNodesJSON,proto3" json:"includeNodesJSON,omitempty"` + ExcludeNodesJSON []byte `protobuf:"bytes,7,opt,name=excludeNodesJSON,proto3" json:"excludeNodesJSON,omitempty"` +} + +func (x *UpdateServerRequest) Reset() { + *x = UpdateServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateServerRequest) ProtoMessage() {} + +func (x *UpdateServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_proto_msgTypes[2] + 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 UpdateServerRequest.ProtoReflect.Descriptor instead. +func (*UpdateServerRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateServerRequest) GetServerId() int64 { + if x != nil { + return x.ServerId + } + return 0 +} + +func (x *UpdateServerRequest) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UpdateServerRequest) GetAdminId() int64 { + if x != nil { + return x.AdminId + } + return 0 +} + +func (x *UpdateServerRequest) GetClusterId() int64 { + if x != nil { + return x.ClusterId + } + return 0 +} + +func (x *UpdateServerRequest) GetConfig() []byte { + if x != nil { + return x.Config + } + return nil +} + +func (x *UpdateServerRequest) GetIncludeNodesJSON() []byte { + if x != nil { + return x.IncludeNodesJSON + } + return nil +} + +func (x *UpdateServerRequest) GetExcludeNodesJSON() []byte { + if x != nil { + return x.ExcludeNodesJSON + } + return nil +} + +type UpdateServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateServerResponse) Reset() { + *x = UpdateServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateServerResponse) ProtoMessage() {} + +func (x *UpdateServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_proto_msgTypes[3] + 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 UpdateServerResponse.ProtoReflect.Descriptor instead. +func (*UpdateServerResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{3} +} + // 计算服务数量 type CountAllEnabledServersRequest struct { state protoimpl.MessageState @@ -174,7 +308,7 @@ type CountAllEnabledServersRequest struct { func (x *CountAllEnabledServersRequest) Reset() { *x = CountAllEnabledServersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_server_proto_msgTypes[2] + mi := &file_service_server_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -187,7 +321,7 @@ func (x *CountAllEnabledServersRequest) String() string { func (*CountAllEnabledServersRequest) ProtoMessage() {} func (x *CountAllEnabledServersRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_server_proto_msgTypes[2] + mi := &file_service_server_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -200,7 +334,7 @@ func (x *CountAllEnabledServersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CountAllEnabledServersRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledServersRequest) Descriptor() ([]byte, []int) { - return file_service_server_proto_rawDescGZIP(), []int{2} + return file_service_server_proto_rawDescGZIP(), []int{4} } type CountAllEnabledServersResponse struct { @@ -214,7 +348,7 @@ type CountAllEnabledServersResponse struct { func (x *CountAllEnabledServersResponse) Reset() { *x = CountAllEnabledServersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_service_server_proto_msgTypes[3] + mi := &file_service_server_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -227,7 +361,7 @@ func (x *CountAllEnabledServersResponse) String() string { func (*CountAllEnabledServersResponse) ProtoMessage() {} func (x *CountAllEnabledServersResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_server_proto_msgTypes[3] + mi := &file_service_server_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -240,7 +374,7 @@ func (x *CountAllEnabledServersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CountAllEnabledServersResponse.ProtoReflect.Descriptor instead. func (*CountAllEnabledServersResponse) Descriptor() ([]byte, []int) { - return file_service_server_proto_rawDescGZIP(), []int{3} + return file_service_server_proto_rawDescGZIP(), []int{5} } func (x *CountAllEnabledServersResponse) GetCount() int64 { @@ -263,7 +397,7 @@ type ListEnabledServersRequest struct { func (x *ListEnabledServersRequest) Reset() { *x = ListEnabledServersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_service_server_proto_msgTypes[4] + mi := &file_service_server_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -276,7 +410,7 @@ func (x *ListEnabledServersRequest) String() string { func (*ListEnabledServersRequest) ProtoMessage() {} func (x *ListEnabledServersRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_server_proto_msgTypes[4] + mi := &file_service_server_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -289,7 +423,7 @@ func (x *ListEnabledServersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListEnabledServersRequest.ProtoReflect.Descriptor instead. func (*ListEnabledServersRequest) Descriptor() ([]byte, []int) { - return file_service_server_proto_rawDescGZIP(), []int{4} + return file_service_server_proto_rawDescGZIP(), []int{6} } func (x *ListEnabledServersRequest) GetOffset() int64 { @@ -317,7 +451,7 @@ type ListEnabledServersResponse struct { func (x *ListEnabledServersResponse) Reset() { *x = ListEnabledServersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_service_server_proto_msgTypes[5] + mi := &file_service_server_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -330,7 +464,7 @@ func (x *ListEnabledServersResponse) String() string { func (*ListEnabledServersResponse) ProtoMessage() {} func (x *ListEnabledServersResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_server_proto_msgTypes[5] + mi := &file_service_server_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -343,7 +477,7 @@ func (x *ListEnabledServersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListEnabledServersResponse.ProtoReflect.Descriptor instead. func (*ListEnabledServersResponse) Descriptor() ([]byte, []int) { - return file_service_server_proto_rawDescGZIP(), []int{5} + return file_service_server_proto_rawDescGZIP(), []int{7} } func (x *ListEnabledServersResponse) GetServers() []*Server { @@ -353,6 +487,187 @@ func (x *ListEnabledServersResponse) GetServers() []*Server { return nil } +// 禁用服务 +type DisableServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` +} + +func (x *DisableServerRequest) Reset() { + *x = DisableServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableServerRequest) ProtoMessage() {} + +func (x *DisableServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_proto_msgTypes[8] + 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 DisableServerRequest.ProtoReflect.Descriptor instead. +func (*DisableServerRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{8} +} + +func (x *DisableServerRequest) GetServerId() int64 { + if x != nil { + return x.ServerId + } + return 0 +} + +type DisableServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableServerResponse) Reset() { + *x = DisableServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableServerResponse) ProtoMessage() {} + +func (x *DisableServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_proto_msgTypes[9] + 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 DisableServerResponse.ProtoReflect.Descriptor instead. +func (*DisableServerResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{9} +} + +// 查找单个服务 +type FindEnabledServerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` +} + +func (x *FindEnabledServerRequest) Reset() { + *x = FindEnabledServerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledServerRequest) ProtoMessage() {} + +func (x *FindEnabledServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_server_proto_msgTypes[10] + 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 FindEnabledServerRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledServerRequest) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{10} +} + +func (x *FindEnabledServerRequest) GetServerId() int64 { + if x != nil { + return x.ServerId + } + return 0 +} + +type FindEnabledServerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Server *Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` +} + +func (x *FindEnabledServerResponse) Reset() { + *x = FindEnabledServerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_server_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledServerResponse) ProtoMessage() {} + +func (x *FindEnabledServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_server_proto_msgTypes[11] + 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 FindEnabledServerResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledServerResponse) Descriptor() ([]byte, []int) { + return file_service_server_proto_rawDescGZIP(), []int{11} +} + +func (x *FindEnabledServerResponse) GetServer() *Server { + if x != nil { + return x.Server + } + return nil +} + var File_service_server_proto protoreflect.FileDescriptor var file_service_server_proto_rawDesc = []byte{ @@ -375,39 +690,82 @@ var file_service_server_proto_rawDesc = []byte{ 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x32, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x36, 0x0a, 0x1e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x47, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x42, 0x0a, 0x1a, - 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, - 0x32, 0x88, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x62, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, - 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, - 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, + 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, + 0x4f, 0x4e, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x16, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x36, 0x0a, 0x1e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x47, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x42, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x70, - 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, - 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x32, 0x0a, 0x14, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x17, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x18, 0x46, 0x69, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x64, 0x22, 0x3f, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, + 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, + 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x32, 0xe3, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x6c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x62, + 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, + 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, + 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -422,29 +780,42 @@ func file_service_server_proto_rawDescGZIP() []byte { return file_service_server_proto_rawDescData } -var file_service_server_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_service_server_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_service_server_proto_goTypes = []interface{}{ (*CreateServerRequest)(nil), // 0: pb.CreateServerRequest (*CreateServerResponse)(nil), // 1: pb.CreateServerResponse - (*CountAllEnabledServersRequest)(nil), // 2: pb.CountAllEnabledServersRequest - (*CountAllEnabledServersResponse)(nil), // 3: pb.CountAllEnabledServersResponse - (*ListEnabledServersRequest)(nil), // 4: pb.ListEnabledServersRequest - (*ListEnabledServersResponse)(nil), // 5: pb.ListEnabledServersResponse - (*Server)(nil), // 6: pb.Server + (*UpdateServerRequest)(nil), // 2: pb.UpdateServerRequest + (*UpdateServerResponse)(nil), // 3: pb.UpdateServerResponse + (*CountAllEnabledServersRequest)(nil), // 4: pb.CountAllEnabledServersRequest + (*CountAllEnabledServersResponse)(nil), // 5: pb.CountAllEnabledServersResponse + (*ListEnabledServersRequest)(nil), // 6: pb.ListEnabledServersRequest + (*ListEnabledServersResponse)(nil), // 7: pb.ListEnabledServersResponse + (*DisableServerRequest)(nil), // 8: pb.DisableServerRequest + (*DisableServerResponse)(nil), // 9: pb.DisableServerResponse + (*FindEnabledServerRequest)(nil), // 10: pb.FindEnabledServerRequest + (*FindEnabledServerResponse)(nil), // 11: pb.FindEnabledServerResponse + (*Server)(nil), // 12: pb.Server } var file_service_server_proto_depIdxs = []int32{ - 6, // 0: pb.ListEnabledServersResponse.servers:type_name -> pb.Server - 0, // 1: pb.ServerService.createServer:input_type -> pb.CreateServerRequest - 2, // 2: pb.ServerService.countAllEnabledServers:input_type -> pb.CountAllEnabledServersRequest - 4, // 3: pb.ServerService.listEnabledServers:input_type -> pb.ListEnabledServersRequest - 1, // 4: pb.ServerService.createServer:output_type -> pb.CreateServerResponse - 3, // 5: pb.ServerService.countAllEnabledServers:output_type -> pb.CountAllEnabledServersResponse - 5, // 6: pb.ServerService.listEnabledServers:output_type -> pb.ListEnabledServersResponse - 4, // [4:7] is the sub-list for method output_type - 1, // [1:4] 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 + 12, // 0: pb.ListEnabledServersResponse.servers:type_name -> pb.Server + 12, // 1: pb.FindEnabledServerResponse.server:type_name -> pb.Server + 0, // 2: pb.ServerService.createServer:input_type -> pb.CreateServerRequest + 2, // 3: pb.ServerService.updateServer:input_type -> pb.UpdateServerRequest + 4, // 4: pb.ServerService.countAllEnabledServers:input_type -> pb.CountAllEnabledServersRequest + 6, // 5: pb.ServerService.listEnabledServers:input_type -> pb.ListEnabledServersRequest + 8, // 6: pb.ServerService.disableServer:input_type -> pb.DisableServerRequest + 10, // 7: pb.ServerService.findEnabledServer:input_type -> pb.FindEnabledServerRequest + 1, // 8: pb.ServerService.createServer:output_type -> pb.CreateServerResponse + 3, // 9: pb.ServerService.updateServer:output_type -> pb.UpdateServerResponse + 5, // 10: pb.ServerService.countAllEnabledServers:output_type -> pb.CountAllEnabledServersResponse + 7, // 11: pb.ServerService.listEnabledServers:output_type -> pb.ListEnabledServersResponse + 9, // 12: pb.ServerService.disableServer:output_type -> pb.DisableServerResponse + 11, // 13: pb.ServerService.findEnabledServer:output_type -> pb.FindEnabledServerResponse + 8, // [8:14] is the sub-list for method output_type + 2, // [2:8] 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 } func init() { file_service_server_proto_init() } @@ -479,7 +850,7 @@ func file_service_server_proto_init() { } } file_service_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CountAllEnabledServersRequest); i { + switch v := v.(*UpdateServerRequest); i { case 0: return &v.state case 1: @@ -491,7 +862,7 @@ func file_service_server_proto_init() { } } file_service_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CountAllEnabledServersResponse); i { + switch v := v.(*UpdateServerResponse); i { case 0: return &v.state case 1: @@ -503,7 +874,7 @@ func file_service_server_proto_init() { } } file_service_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListEnabledServersRequest); i { + switch v := v.(*CountAllEnabledServersRequest); i { case 0: return &v.state case 1: @@ -515,6 +886,30 @@ func file_service_server_proto_init() { } } file_service_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountAllEnabledServersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEnabledServersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnabledServersResponse); i { case 0: return &v.state @@ -526,6 +921,54 @@ func file_service_server_proto_init() { return nil } } + file_service_server_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableServerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledServerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_server_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledServerResponse); 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{ @@ -533,7 +976,7 @@ func file_service_server_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_server_proto_rawDesc, NumEnums: 0, - NumMessages: 6, + NumMessages: 12, NumExtensions: 0, NumServices: 1, }, @@ -561,10 +1004,16 @@ const _ = grpc.SupportPackageIsVersion6 type ServerServiceClient interface { // 创建服务 CreateServer(ctx context.Context, in *CreateServerRequest, opts ...grpc.CallOption) (*CreateServerResponse, error) + // 修改服务 + UpdateServer(ctx context.Context, in *UpdateServerRequest, opts ...grpc.CallOption) (*UpdateServerResponse, error) // 计算服务数量 CountAllEnabledServers(ctx context.Context, in *CountAllEnabledServersRequest, opts ...grpc.CallOption) (*CountAllEnabledServersResponse, error) // 列出单页服务 ListEnabledServers(ctx context.Context, in *ListEnabledServersRequest, opts ...grpc.CallOption) (*ListEnabledServersResponse, error) + // 禁用某服务 + DisableServer(ctx context.Context, in *DisableServerRequest, opts ...grpc.CallOption) (*DisableServerResponse, error) + // 查找单个服务 + FindEnabledServer(ctx context.Context, in *FindEnabledServerRequest, opts ...grpc.CallOption) (*FindEnabledServerResponse, error) } type serverServiceClient struct { @@ -584,6 +1033,15 @@ func (c *serverServiceClient) CreateServer(ctx context.Context, in *CreateServer return out, nil } +func (c *serverServiceClient) UpdateServer(ctx context.Context, in *UpdateServerRequest, opts ...grpc.CallOption) (*UpdateServerResponse, error) { + out := new(UpdateServerResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/updateServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *serverServiceClient) CountAllEnabledServers(ctx context.Context, in *CountAllEnabledServersRequest, opts ...grpc.CallOption) (*CountAllEnabledServersResponse, error) { out := new(CountAllEnabledServersResponse) err := c.cc.Invoke(ctx, "/pb.ServerService/countAllEnabledServers", in, out, opts...) @@ -602,14 +1060,38 @@ func (c *serverServiceClient) ListEnabledServers(ctx context.Context, in *ListEn return out, nil } +func (c *serverServiceClient) DisableServer(ctx context.Context, in *DisableServerRequest, opts ...grpc.CallOption) (*DisableServerResponse, error) { + out := new(DisableServerResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/disableServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serverServiceClient) FindEnabledServer(ctx context.Context, in *FindEnabledServerRequest, opts ...grpc.CallOption) (*FindEnabledServerResponse, error) { + out := new(FindEnabledServerResponse) + err := c.cc.Invoke(ctx, "/pb.ServerService/findEnabledServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ServerServiceServer is the server API for ServerService service. type ServerServiceServer interface { // 创建服务 CreateServer(context.Context, *CreateServerRequest) (*CreateServerResponse, error) + // 修改服务 + UpdateServer(context.Context, *UpdateServerRequest) (*UpdateServerResponse, error) // 计算服务数量 CountAllEnabledServers(context.Context, *CountAllEnabledServersRequest) (*CountAllEnabledServersResponse, error) // 列出单页服务 ListEnabledServers(context.Context, *ListEnabledServersRequest) (*ListEnabledServersResponse, error) + // 禁用某服务 + DisableServer(context.Context, *DisableServerRequest) (*DisableServerResponse, error) + // 查找单个服务 + FindEnabledServer(context.Context, *FindEnabledServerRequest) (*FindEnabledServerResponse, error) } // UnimplementedServerServiceServer can be embedded to have forward compatible implementations. @@ -619,12 +1101,21 @@ type UnimplementedServerServiceServer struct { func (*UnimplementedServerServiceServer) CreateServer(context.Context, *CreateServerRequest) (*CreateServerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateServer not implemented") } +func (*UnimplementedServerServiceServer) UpdateServer(context.Context, *UpdateServerRequest) (*UpdateServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateServer not implemented") +} func (*UnimplementedServerServiceServer) CountAllEnabledServers(context.Context, *CountAllEnabledServersRequest) (*CountAllEnabledServersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CountAllEnabledServers not implemented") } func (*UnimplementedServerServiceServer) ListEnabledServers(context.Context, *ListEnabledServersRequest) (*ListEnabledServersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListEnabledServers not implemented") } +func (*UnimplementedServerServiceServer) DisableServer(context.Context, *DisableServerRequest) (*DisableServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableServer not implemented") +} +func (*UnimplementedServerServiceServer) FindEnabledServer(context.Context, *FindEnabledServerRequest) (*FindEnabledServerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledServer not implemented") +} func RegisterServerServiceServer(s *grpc.Server, srv ServerServiceServer) { s.RegisterService(&_ServerService_serviceDesc, srv) @@ -648,6 +1139,24 @@ func _ServerService_CreateServer_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _ServerService_UpdateServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).UpdateServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/UpdateServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).UpdateServer(ctx, req.(*UpdateServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ServerService_CountAllEnabledServers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CountAllEnabledServersRequest) if err := dec(in); err != nil { @@ -684,6 +1193,42 @@ func _ServerService_ListEnabledServers_Handler(srv interface{}, ctx context.Cont return interceptor(ctx, in, info, handler) } +func _ServerService_DisableServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).DisableServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/DisableServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).DisableServer(ctx, req.(*DisableServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ServerService_FindEnabledServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServerServiceServer).FindEnabledServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.ServerService/FindEnabledServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServerServiceServer).FindEnabledServer(ctx, req.(*FindEnabledServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _ServerService_serviceDesc = grpc.ServiceDesc{ ServiceName: "pb.ServerService", HandlerType: (*ServerServiceServer)(nil), @@ -692,6 +1237,10 @@ var _ServerService_serviceDesc = grpc.ServiceDesc{ MethodName: "createServer", Handler: _ServerService_CreateServer_Handler, }, + { + MethodName: "updateServer", + Handler: _ServerService_UpdateServer_Handler, + }, { MethodName: "countAllEnabledServers", Handler: _ServerService_CountAllEnabledServers_Handler, @@ -700,6 +1249,14 @@ var _ServerService_serviceDesc = grpc.ServiceDesc{ MethodName: "listEnabledServers", Handler: _ServerService_ListEnabledServers_Handler, }, + { + MethodName: "disableServer", + Handler: _ServerService_DisableServer_Handler, + }, + { + MethodName: "findEnabledServer", + Handler: _ServerService_FindEnabledServer_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "service_server.proto", diff --git a/internal/rpc/protos/model_node.proto b/internal/rpc/protos/model_node.proto index 6bd4d9c3..7a11ccfe 100644 --- a/internal/rpc/protos/model_node.proto +++ b/internal/rpc/protos/model_node.proto @@ -9,6 +9,7 @@ import "model_node_login.proto"; message Node { int64 id = 1; string name = 2; + string status = 3; NodeCluster cluster = 32; NodeLogin login = 33; diff --git a/internal/rpc/protos/service_node.proto b/internal/rpc/protos/service_node.proto index c3719fec..701dd07d 100644 --- a/internal/rpc/protos/service_node.proto +++ b/internal/rpc/protos/service_node.proto @@ -19,10 +19,22 @@ service NodeService { rpc disableNode (DisableNodeRequest) returns (DisableNodeResponse); // 修改节点 - rpc updateNode(UpdateNodeRequest) returns (UpdateNodeResponse); + rpc updateNode (UpdateNodeRequest) returns (UpdateNodeResponse); // 查看单个节点 - rpc findEnabledNode(FindEnabledNodeRequest) returns (FindEnabledNodeResponse); + rpc findEnabledNode (FindEnabledNodeRequest) returns (FindEnabledNodeResponse); + + // 组合单个节点配置 + rpc composeNodeConfig (ComposeNodeConfigRequest) returns (ComposeNodeConfigResponse); + + // 节点stream + rpc nodeStream (stream NodeStreamRequest) returns (stream NodeStreamResponse); + + // 更新节点状态 + rpc updateNodeStatus (UpdateNodeStatusRequest) returns (UpdateNodeStatusResponse); + + // 同步集群中的节点版本 + rpc syncNodesVersionWithCluster (SyncNodesVersionWithClusterRequest) returns (SyncNodesVersionWithClusterResponse); } // 创建节点 @@ -83,4 +95,40 @@ message FindEnabledNodeRequest { message FindEnabledNodeResponse { Node node = 1; +} + +// 组合单个节点配置 +message ComposeNodeConfigRequest { + +} + +message ComposeNodeConfigResponse { + bytes configJSON = 1; +} + +// 节点stream +message NodeStreamRequest { + +} + +message NodeStreamResponse { + +} + +// 更新节点状态 +message UpdateNodeStatusRequest { + int64 nodeId = 1; + bytes statusJSON = 2; +} + +message UpdateNodeStatusResponse { + +} + +// 同步集群中的节点版本 +message SyncNodesVersionWithClusterRequest { + int64 clusterId = 1; +} + +message SyncNodesVersionWithClusterResponse { } \ No newline at end of file diff --git a/internal/rpc/protos/service_node_cluster.proto b/internal/rpc/protos/service_node_cluster.proto index 3a7fa398..e08cba3d 100644 --- a/internal/rpc/protos/service_node_cluster.proto +++ b/internal/rpc/protos/service_node_cluster.proto @@ -7,8 +7,12 @@ import "model_node_cluster.proto"; service NodeClusterService { // 获取所有集群的信息 rpc findAllEnabledClusters (FindAllEnabledNodeClustersRequest) returns (FindAllEnabledNodeClustersResponse); + + // 获取变更的集群 + rpc findAllChangedClusters (FindAllChangedClustersRequest) returns (FindAllChangedClustersResponse); } +// 获取所有集群的信息 message FindAllEnabledNodeClustersRequest { } @@ -16,3 +20,12 @@ message FindAllEnabledNodeClustersRequest { message FindAllEnabledNodeClustersResponse { repeated NodeCluster clusters = 1; } + +// 获取变更的集群 +message FindAllChangedClustersRequest { + +} + +message FindAllChangedClustersResponse { + repeated NodeCluster clusters = 1; +} \ No newline at end of file diff --git a/internal/rpc/protos/service_server.proto b/internal/rpc/protos/service_server.proto index c4e8331e..c504e164 100644 --- a/internal/rpc/protos/service_server.proto +++ b/internal/rpc/protos/service_server.proto @@ -8,13 +8,21 @@ service ServerService { // 创建服务 rpc createServer (CreateServerRequest) returns (CreateServerResponse); + // 修改服务 + rpc updateServer (UpdateServerRequest) returns (UpdateServerResponse); + // 计算服务数量 rpc countAllEnabledServers (CountAllEnabledServersRequest) returns (CountAllEnabledServersResponse); // 列出单页服务 rpc listEnabledServers (ListEnabledServersRequest) returns (ListEnabledServersResponse); -} + // 禁用某服务 + rpc disableServer (DisableServerRequest) returns (DisableServerResponse); + + // 查找单个服务 + rpc findEnabledServer (FindEnabledServerRequest) returns (FindEnabledServerResponse); +} // 创建服务 message CreateServerRequest { @@ -30,6 +38,21 @@ message CreateServerResponse { int64 serverId = 1; } +// 修改服务 +message UpdateServerRequest { + int64 serverId = 1; + int64 userId = 2; + int64 adminId = 3; + int64 clusterId = 4; + bytes config = 5; + bytes includeNodesJSON = 6; + bytes excludeNodesJSON = 7; +} + +message UpdateServerResponse { + +} + // 计算服务数量 message CountAllEnabledServersRequest { @@ -48,3 +71,21 @@ message ListEnabledServersRequest { message ListEnabledServersResponse { repeated Server servers = 1; } + +// 禁用服务 +message DisableServerRequest { + int64 serverId = 1; +} + +message DisableServerResponse { + +} + +// 查找单个服务 +message FindEnabledServerRequest { + int64 serverId = 1; +} + +message FindEnabledServerResponse { + Server server = 1; +} \ No newline at end of file diff --git a/internal/rpc/services/service_node.go b/internal/rpc/services/service_node.go index 943a40fe..8972877d 100644 --- a/internal/rpc/services/service_node.go +++ b/internal/rpc/services/service_node.go @@ -2,9 +2,13 @@ package services import ( "context" + "encoding/json" + "errors" "github.com/TeaOSLab/EdgeAPI/internal/db/models" "github.com/TeaOSLab/EdgeAPI/internal/rpc/pb" rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils" + "github.com/iwind/TeaGo/logs" + "github.com/iwind/TeaGo/maps" ) type NodeService struct { @@ -66,8 +70,9 @@ func (this *NodeService) ListEnabledNodes(ctx context.Context, req *pb.ListEnabl } result = append(result, &pb.Node{ - Id: int64(node.Id), - Name: node.Name, + Id: int64(node.Id), + Name: node.Name, + Status: node.Status, Cluster: &pb.NodeCluster{ Id: int64(node.ClusterId), Name: clusterName, @@ -166,8 +171,9 @@ func (this *NodeService) FindEnabledNode(ctx context.Context, req *pb.FindEnable } return &pb.FindEnabledNodeResponse{Node: &pb.Node{ - Id: int64(node.Id), - Name: node.Name, + Id: int64(node.Id), + Name: node.Name, + Status: node.Status, Cluster: &pb.NodeCluster{ Id: int64(node.ClusterId), Name: clusterName, @@ -175,3 +181,113 @@ func (this *NodeService) FindEnabledNode(ctx context.Context, req *pb.FindEnable Login: respLogin, }}, nil } + +// 组合节点配置 +func (this *NodeService) ComposeNodeConfig(ctx context.Context, req *pb.ComposeNodeConfigRequest) (*pb.ComposeNodeConfigResponse, error) { + // 校验节点 + _, nodeId, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeNode) + if err != nil { + return nil, err + } + + node, err := models.SharedNodeDAO.FindEnabledNode(nodeId) + if err != nil { + return nil, err + } + if node == nil { + return nil, errors.New("node validate failed, please check 'nodeId' or 'secret'") + } + + nodeMap := maps.Map{ + "id": node.UniqueId, + "isOn": node.IsOn == 1, + "servers": []maps.Map{}, + "version": node.Version, + } + + // 获取所有的服务 + servers, err := models.SharedServerDAO.FindAllEnabledServersWithNode(int64(node.Id)) + if err != nil { + return nil, err + } + + serverMaps := []maps.Map{} + for _, server := range servers { + if len(server.Config) == 0 { + continue + } + configMap := maps.Map{} + err = json.Unmarshal([]byte(server.Config), &configMap) + if err != nil { + return nil, err + } + configMap["id"] = server.UniqueId + configMap["version"] = server.Version + serverMaps = append(serverMaps, configMap) + } + nodeMap["servers"] = serverMaps + + data, err := json.Marshal(nodeMap) + if err != nil { + return nil, err + } + + return &pb.ComposeNodeConfigResponse{ConfigJSON: data}, nil +} + +// 节点stream +func (this *NodeService) NodeStream(server pb.NodeService_NodeStreamServer) error { + // 校验节点 + _, nodeId, err := rpcutils.ValidateRequest(server.Context(), rpcutils.UserTypeNode) + if err != nil { + return err + } + logs.Println("nodeId:", nodeId) + + for { + req, err := server.Recv() + if err != nil { + return err + } + logs.Println("received:", req) + } +} + +// 更新节点状态 +func (this *NodeService) UpdateNodeStatus(ctx context.Context, req *pb.UpdateNodeStatusRequest) (*pb.UpdateNodeStatusResponse, error) { + // 校验节点 + _, nodeId, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeNode) + if err != nil { + return nil, err + } + + if req.NodeId > 0 { + nodeId = req.NodeId + } + + if nodeId <= 0 { + return nil, errors.New("'nodeId' should be greater than 0") + } + + err = models.SharedNodeDAO.UpdateNodeStatus(nodeId, req.StatusJSON) + if err != nil { + return nil, err + } + + return &pb.UpdateNodeStatusResponse{}, nil +} + +// 同步集群中的节点版本 +func (this *NodeService) SyncNodesVersionWithCluster(ctx context.Context, req *pb.SyncNodesVersionWithClusterRequest) (*pb.SyncNodesVersionWithClusterResponse, error) { + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + err = models.SharedNodeDAO.SyncNodeVersionsWithCluster(req.ClusterId) + if err != nil { + return nil, err + } + + return &pb.SyncNodesVersionWithClusterResponse{}, nil +} diff --git a/internal/rpc/services/service_node_cluster.go b/internal/rpc/services/service_node_cluster.go index bab36c9d..8d7a3e42 100644 --- a/internal/rpc/services/service_node_cluster.go +++ b/internal/rpc/services/service_node_cluster.go @@ -36,3 +36,37 @@ func (this *NodeClusterService) FindAllEnabledClusters(ctx context.Context, req Clusters: result, }, nil } + +// 查找所有变更的集群 +func (this *NodeClusterService) FindAllChangedClusters(ctx context.Context, req *pb.FindAllChangedClustersRequest) (*pb.FindAllChangedClustersResponse, error) { + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + clusterIds, err := models.SharedNodeDAO.FindChangedClusterIds() + if err != nil { + return nil, err + } + if len(clusterIds) == 0 { + return &pb.FindAllChangedClustersResponse{ + Clusters: []*pb.NodeCluster{}, + }, nil + } + result := []*pb.NodeCluster{} + for _, clusterId := range clusterIds { + cluster, err := models.SharedNodeClusterDAO.FindEnabledNodeCluster(clusterId) + if err != nil { + return nil, err + } + if cluster == nil { + continue + } + result = append(result, &pb.NodeCluster{ + Id: int64(cluster.Id), + Name: cluster.Name, + CreatedAt: int64(cluster.CreatedAt), + }) + } + return &pb.FindAllChangedClustersResponse{Clusters: result}, nil +} diff --git a/internal/rpc/services/service_server.go b/internal/rpc/services/service_server.go new file mode 100644 index 00000000..5059e8fc --- /dev/null +++ b/internal/rpc/services/service_server.go @@ -0,0 +1,186 @@ +package services + +import ( + "context" + "errors" + "github.com/TeaOSLab/EdgeAPI/internal/db/models" + "github.com/TeaOSLab/EdgeAPI/internal/rpc/pb" + rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils" +) + +type ServerService struct { +} + +// 创建服务 +func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServerRequest) (*pb.CreateServerResponse, error) { + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + serverId, err := models.SharedServerDAO.CreateServer(req.AdminId, req.UserId, req.ClusterId, string(req.Config), string(req.IncludeNodesJSON), string(req.ExcludeNodesJSON)) + if err != nil { + return nil, err + } + + // 更新节点版本 + err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.ClusterId) + if err != nil { + return nil, err + } + + return &pb.CreateServerResponse{ServerId: serverId}, nil +} + +// 修改服务 +func (this *ServerService) UpdateServer(ctx context.Context, req *pb.UpdateServerRequest) (*pb.UpdateServerResponse, error) { + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + if req.ServerId <= 0 { + return nil, errors.New("invalid serverId") + } + + // 查询老的节点信息 + server, err := models.SharedServerDAO.FindEnabledServer(req.ServerId) + if err != nil { + return nil, err + } + if server == nil { + return nil, errors.New("can not find server") + } + + err = models.SharedServerDAO.UpdateServer(req.ServerId, req.ClusterId, string(req.Config), string(req.IncludeNodesJSON), string(req.ExcludeNodesJSON)) + if err != nil { + return nil, err + } + + // 更新老的节点版本 + if req.ClusterId != int64(server.ClusterId) { + err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(int64(server.ClusterId)) + if err != nil { + return nil, err + } + } + + // 更新新的节点版本 + err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(req.ClusterId) + if err != nil { + return nil, err + } + + return &pb.UpdateServerResponse{}, nil +} + +// 计算服务数量 +func (this *ServerService) CountAllEnabledServers(ctx context.Context, req *pb.CountAllEnabledServersRequest) (*pb.CountAllEnabledServersResponse, error) { + _ = req + _, _, err := rpcutils.ValidateRequest(ctx) + if err != nil { + return nil, err + } + count, err := models.SharedServerDAO.CountAllEnabledServers() + if err != nil { + return nil, err + } + + return &pb.CountAllEnabledServersResponse{Count: count}, nil +} + +// 列出单页服务 +func (this *ServerService) ListEnabledServers(ctx context.Context, req *pb.ListEnabledServersRequest) (*pb.ListEnabledServersResponse, error) { + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + servers, err := models.SharedServerDAO.ListEnabledServers(req.Offset, req.Size) + if err != nil { + return nil, err + } + result := []*pb.Server{} + for _, server := range servers { + clusterName, err := models.SharedNodeClusterDAO.FindNodeClusterName(int64(server.ClusterId)) + if err != nil { + return nil, err + } + result = append(result, &pb.Server{ + Id: int64(server.Id), + Config: []byte(server.Config), + IncludeNodes: []byte(server.IncludeNodes), + ExcludeNodes: []byte(server.ExcludeNodes), + CreatedAt: int64(server.CreatedAt), + Cluster: &pb.NodeCluster{ + Id: int64(server.ClusterId), + Name: clusterName, + }, + }) + } + + return &pb.ListEnabledServersResponse{Servers: result}, nil +} + +// 禁用某服务 +func (this *ServerService) DisableServer(ctx context.Context, req *pb.DisableServerRequest) (*pb.DisableServerResponse, error) { + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + // 查找服务 + server, err := models.SharedServerDAO.FindEnabledServer(req.ServerId) + if err != nil { + return nil, err + } + if server == nil { + return nil, errors.New("can not find the server") + } + + // 禁用服务 + err = models.SharedServerDAO.DisableServer(req.ServerId) + if err != nil { + return nil, err + } + + // 更新节点版本 + err = models.SharedNodeDAO.UpdateAllNodesLatestVersionMatch(int64(server.ClusterId)) + if err != nil { + return nil, err + } + + return &pb.DisableServerResponse{}, nil +} + +// 查找单个服务 +func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEnabledServerRequest) (*pb.FindEnabledServerResponse, error) { + _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + if err != nil { + return nil, err + } + + server, err := models.SharedServerDAO.FindEnabledServer(req.ServerId) + if err != nil { + return nil, err + } + + if server == nil { + return &pb.FindEnabledServerResponse{}, nil + } + + clusterName, err := models.SharedNodeClusterDAO.FindNodeClusterName(int64(server.ClusterId)) + if err != nil { + return nil, err + } + + return &pb.FindEnabledServerResponse{Server: &pb.Server{ + Id: int64(server.Id), + Config: []byte(server.Config), + IncludeNodes: []byte(server.IncludeNodes), + ExcludeNodes: []byte(server.ExcludeNodes), + CreatedAt: int64(server.CreatedAt), + Cluster: &pb.NodeCluster{ + Id: int64(server.ClusterId), + Name: clusterName, + }, + }}, nil +} diff --git a/internal/rpc/services/servie_server.go b/internal/rpc/services/servie_server.go deleted file mode 100644 index 659097a5..00000000 --- a/internal/rpc/services/servie_server.go +++ /dev/null @@ -1,68 +0,0 @@ -package services - -import ( - "context" - "github.com/TeaOSLab/EdgeAPI/internal/db/models" - "github.com/TeaOSLab/EdgeAPI/internal/rpc/pb" - rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils" -) - -type ServerService struct { -} - -func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServerRequest) (*pb.CreateServerResponse, error) { - _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) - if err != nil { - return nil, err - } - serverId, err := models.SharedServerDAO.CreateServer(req.AdminId, req.UserId, req.ClusterId, string(req.Config), string(req.IncludeNodesJSON), string(req.ExcludeNodesJSON)) - if err != nil { - return nil, err - } - return &pb.CreateServerResponse{ServerId: serverId}, nil -} - -func (this *ServerService) CountAllEnabledServers(ctx context.Context, req *pb.CountAllEnabledServersRequest) (*pb.CountAllEnabledServersResponse, error) { - _ = req - _, _, err := rpcutils.ValidateRequest(ctx) - if err != nil { - return nil, err - } - count, err := models.SharedServerDAO.CountAllEnabledServers() - if err != nil { - return nil, err - } - - return &pb.CountAllEnabledServersResponse{Count: count}, nil -} - -func (this *ServerService) ListEnabledServers(ctx context.Context, req *pb.ListEnabledServersRequest) (*pb.ListEnabledServersResponse, error) { - _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) - if err != nil { - return nil, err - } - servers, err := models.SharedServerDAO.ListEnabledServers(req.Offset, req.Size) - if err != nil { - return nil, err - } - result := []*pb.Server{} - for _, server := range servers { - clusterName, err := models.SharedNodeClusterDAO.FindNodeClusterName(int64(server.ClusterId)) - if err != nil { - return nil, err - } - result = append(result, &pb.Server{ - Id: int64(server.Id), - Config: []byte(server.Config), - IncludeNodes: []byte(server.IncludeNodes), - ExcludeNodes: []byte(server.ExcludeNodes), - CreatedAt: int64(server.CreatedAt), - Cluster: &pb.NodeCluster{ - Id: int64(server.ClusterId), - Name: clusterName, - }, - }) - } - - return &pb.ListEnabledServersResponse{Servers: result}, nil -} diff --git a/internal/rpc/utils/utils.go b/internal/rpc/utils/utils.go index b65bcca5..352bd10a 100644 --- a/internal/rpc/utils/utils.go +++ b/internal/rpc/utils/utils.go @@ -41,14 +41,31 @@ func ValidateRequest(ctx context.Context, userTypes ...UserType) (userType UserT } nodeId := nodeIds[0] - // 获取Node信息 + // 获取角色Node信息 apiToken, err := models.SharedApiTokenDAO.FindEnabledTokenWithNode(nodeId) if err != nil { utils.PrintError(err) return UserTypeNone, 0, err } + nodeUserId := int64(0) if apiToken == nil { - return UserTypeNone, 0, errors.New("can not find token from node id: " + err.Error()) + // 我们从节点中获取 + node, err := models.SharedNodeDAO.FindEnabledNodeWithUniqueId(nodeId) + if err != nil { + return UserTypeNone, 0, err + } + if node == nil { + return UserTypeNone, 0, err + } + + nodeUserId = int64(node.Id) + apiToken = &models.ApiToken{ + Id: 0, + NodeId: nodeId, + Secret: node.Secret, + Role: "node", + State: 1, + } } tokens := md.Get("token") @@ -92,5 +109,9 @@ func ValidateRequest(ctx context.Context, userTypes ...UserType) (userType UserT return UserTypeNone, 0, errors.New("not supported user type: '" + userType + "'") } - return t, m.GetInt64("userId"), nil + if nodeUserId > 0 { + return t, nodeUserId, nil + } else { + return t, m.GetInt64("userId"), nil + } }