diff --git a/internal/rpc/pb/model_node_ip_address.pb.go b/internal/rpc/pb/model_node_ip_address.pb.go new file mode 100644 index 00000000..8a1b4722 --- /dev/null +++ b/internal/rpc/pb/model_node_ip_address.pb.go @@ -0,0 +1,203 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: model_node_ip_address.proto + +package pb + +import ( + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +type NodeIPAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + NodeId int64 `protobuf:"varint,2,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Ip string `protobuf:"bytes,4,opt,name=ip,proto3" json:"ip,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + State int64 `protobuf:"varint,6,opt,name=state,proto3" json:"state,omitempty"` + Order int64 `protobuf:"varint,7,opt,name=order,proto3" json:"order,omitempty"` +} + +func (x *NodeIPAddress) Reset() { + *x = NodeIPAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_model_node_ip_address_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeIPAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeIPAddress) ProtoMessage() {} + +func (x *NodeIPAddress) ProtoReflect() protoreflect.Message { + mi := &file_model_node_ip_address_proto_msgTypes[0] + 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 NodeIPAddress.ProtoReflect.Descriptor instead. +func (*NodeIPAddress) Descriptor() ([]byte, []int) { + return file_model_node_ip_address_proto_rawDescGZIP(), []int{0} +} + +func (x *NodeIPAddress) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *NodeIPAddress) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *NodeIPAddress) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NodeIPAddress) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +func (x *NodeIPAddress) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *NodeIPAddress) GetState() int64 { + if x != nil { + return x.State + } + return 0 +} + +func (x *NodeIPAddress) GetOrder() int64 { + if x != nil { + return x.Order + } + return 0 +} + +var File_model_node_ip_address_proto protoreflect.FileDescriptor + +var file_model_node_ip_address_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x70, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, + 0x62, 0x22, 0xa9, 0x01, 0x0a, 0x0d, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x06, 0x5a, + 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_model_node_ip_address_proto_rawDescOnce sync.Once + file_model_node_ip_address_proto_rawDescData = file_model_node_ip_address_proto_rawDesc +) + +func file_model_node_ip_address_proto_rawDescGZIP() []byte { + file_model_node_ip_address_proto_rawDescOnce.Do(func() { + file_model_node_ip_address_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_node_ip_address_proto_rawDescData) + }) + return file_model_node_ip_address_proto_rawDescData +} + +var file_model_node_ip_address_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_node_ip_address_proto_goTypes = []interface{}{ + (*NodeIPAddress)(nil), // 0: pb.NodeIPAddress +} +var file_model_node_ip_address_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_model_node_ip_address_proto_init() } +func file_model_node_ip_address_proto_init() { + if File_model_node_ip_address_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_model_node_ip_address_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeIPAddress); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_model_node_ip_address_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_model_node_ip_address_proto_goTypes, + DependencyIndexes: file_model_node_ip_address_proto_depIdxs, + MessageInfos: file_model_node_ip_address_proto_msgTypes, + }.Build() + File_model_node_ip_address_proto = out.File + file_model_node_ip_address_proto_rawDesc = nil + file_model_node_ip_address_proto_goTypes = nil + file_model_node_ip_address_proto_depIdxs = nil +} diff --git a/internal/rpc/pb/service_node_ip_address.pb.go b/internal/rpc/pb/service_node_ip_address.pb.go new file mode 100644 index 00000000..635c5f26 --- /dev/null +++ b/internal/rpc/pb/service_node_ip_address.pb.go @@ -0,0 +1,1375 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.3 +// source: service_node_ip_address.proto + +package pb + +import ( + context "context" + proto "github.com/golang/protobuf/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// 创建IP地址 +type CreateNodeIPAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Ip string `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"` +} + +func (x *CreateNodeIPAddressRequest) Reset() { + *x = CreateNodeIPAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeIPAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeIPAddressRequest) ProtoMessage() {} + +func (x *CreateNodeIPAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_proto_msgTypes[0] + 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 CreateNodeIPAddressRequest.ProtoReflect.Descriptor instead. +func (*CreateNodeIPAddressRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateNodeIPAddressRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *CreateNodeIPAddressRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateNodeIPAddressRequest) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +type CreateNodeIPAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` +} + +func (x *CreateNodeIPAddressResponse) Reset() { + *x = CreateNodeIPAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateNodeIPAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateNodeIPAddressResponse) ProtoMessage() {} + +func (x *CreateNodeIPAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_proto_msgTypes[1] + 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 CreateNodeIPAddressResponse.ProtoReflect.Descriptor instead. +func (*CreateNodeIPAddressResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateNodeIPAddressResponse) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +// 修改IP地址 +type UpdateNodeIPAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Ip string `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"` +} + +func (x *UpdateNodeIPAddressRequest) Reset() { + *x = UpdateNodeIPAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIPAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIPAddressRequest) ProtoMessage() {} + +func (x *UpdateNodeIPAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 UpdateNodeIPAddressRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeIPAddressRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{2} +} + +func (x *UpdateNodeIPAddressRequest) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +func (x *UpdateNodeIPAddressRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateNodeIPAddressRequest) GetIp() string { + if x != nil { + return x.Ip + } + return "" +} + +type UpdateNodeIPAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeIPAddressResponse) Reset() { + *x = UpdateNodeIPAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIPAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIPAddressResponse) ProtoMessage() {} + +func (x *UpdateNodeIPAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 UpdateNodeIPAddressResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeIPAddressResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{3} +} + +// 修改IP地址所属节点 +type UpdateNodeIPAddressNodeIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` + NodeId int64 `protobuf:"varint,2,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *UpdateNodeIPAddressNodeIdRequest) Reset() { + *x = UpdateNodeIPAddressNodeIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIPAddressNodeIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIPAddressNodeIdRequest) ProtoMessage() {} + +func (x *UpdateNodeIPAddressNodeIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_proto_msgTypes[4] + 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 UpdateNodeIPAddressNodeIdRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeIPAddressNodeIdRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateNodeIPAddressNodeIdRequest) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +func (x *UpdateNodeIPAddressNodeIdRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type UpdateNodeIPAddressNodeIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeIPAddressNodeIdResponse) Reset() { + *x = UpdateNodeIPAddressNodeIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeIPAddressNodeIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeIPAddressNodeIdResponse) ProtoMessage() {} + +func (x *UpdateNodeIPAddressNodeIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateNodeIPAddressNodeIdResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeIPAddressNodeIdResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{5} +} + +// 禁用单个IP地址 +type DisableNodeIPAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` +} + +func (x *DisableNodeIPAddressRequest) Reset() { + *x = DisableNodeIPAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeIPAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeIPAddressRequest) ProtoMessage() {} + +func (x *DisableNodeIPAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DisableNodeIPAddressRequest.ProtoReflect.Descriptor instead. +func (*DisableNodeIPAddressRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{6} +} + +func (x *DisableNodeIPAddressRequest) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +type DisableNodeIPAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableNodeIPAddressResponse) Reset() { + *x = DisableNodeIPAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableNodeIPAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableNodeIPAddressResponse) ProtoMessage() {} + +func (x *DisableNodeIPAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_proto_msgTypes[7] + 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 DisableNodeIPAddressResponse.ProtoReflect.Descriptor instead. +func (*DisableNodeIPAddressResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{7} +} + +// 禁用节点的所有IP地址 +type DisableAllIPAddressesWithNodeIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *DisableAllIPAddressesWithNodeIdRequest) Reset() { + *x = DisableAllIPAddressesWithNodeIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableAllIPAddressesWithNodeIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableAllIPAddressesWithNodeIdRequest) ProtoMessage() {} + +func (x *DisableAllIPAddressesWithNodeIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 DisableAllIPAddressesWithNodeIdRequest.ProtoReflect.Descriptor instead. +func (*DisableAllIPAddressesWithNodeIdRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{8} +} + +func (x *DisableAllIPAddressesWithNodeIdRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type DisableAllIPAddressesWithNodeIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableAllIPAddressesWithNodeIdResponse) Reset() { + *x = DisableAllIPAddressesWithNodeIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableAllIPAddressesWithNodeIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableAllIPAddressesWithNodeIdResponse) ProtoMessage() {} + +func (x *DisableAllIPAddressesWithNodeIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 DisableAllIPAddressesWithNodeIdResponse.ProtoReflect.Descriptor instead. +func (*DisableAllIPAddressesWithNodeIdResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{9} +} + +// 查找单个IP地址 +type FindEnabledNodeIPAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AddressId int64 `protobuf:"varint,1,opt,name=addressId,proto3" json:"addressId,omitempty"` +} + +func (x *FindEnabledNodeIPAddressRequest) Reset() { + *x = FindEnabledNodeIPAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledNodeIPAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledNodeIPAddressRequest) ProtoMessage() {} + +func (x *FindEnabledNodeIPAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 FindEnabledNodeIPAddressRequest.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeIPAddressRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{10} +} + +func (x *FindEnabledNodeIPAddressRequest) GetAddressId() int64 { + if x != nil { + return x.AddressId + } + return 0 +} + +type FindEnabledNodeIPAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IpAddress *NodeIPAddress `protobuf:"bytes,1,opt,name=ipAddress,proto3" json:"ipAddress,omitempty"` +} + +func (x *FindEnabledNodeIPAddressResponse) Reset() { + *x = FindEnabledNodeIPAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindEnabledNodeIPAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindEnabledNodeIPAddressResponse) ProtoMessage() {} + +func (x *FindEnabledNodeIPAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 FindEnabledNodeIPAddressResponse.ProtoReflect.Descriptor instead. +func (*FindEnabledNodeIPAddressResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{11} +} + +func (x *FindEnabledNodeIPAddressResponse) GetIpAddress() *NodeIPAddress { + if x != nil { + return x.IpAddress + } + return nil +} + +// 查找节点的所有地址 +type FindAllEnabledIPAddressesWithNodeIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int64 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` +} + +func (x *FindAllEnabledIPAddressesWithNodeIdRequest) Reset() { + *x = FindAllEnabledIPAddressesWithNodeIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledIPAddressesWithNodeIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledIPAddressesWithNodeIdRequest) ProtoMessage() {} + +func (x *FindAllEnabledIPAddressesWithNodeIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 FindAllEnabledIPAddressesWithNodeIdRequest.ProtoReflect.Descriptor instead. +func (*FindAllEnabledIPAddressesWithNodeIdRequest) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{12} +} + +func (x *FindAllEnabledIPAddressesWithNodeIdRequest) GetNodeId() int64 { + if x != nil { + return x.NodeId + } + return 0 +} + +type FindAllEnabledIPAddressesWithNodeIdResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []*NodeIPAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *FindAllEnabledIPAddressesWithNodeIdResponse) Reset() { + *x = FindAllEnabledIPAddressesWithNodeIdResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_node_ip_address_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FindAllEnabledIPAddressesWithNodeIdResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindAllEnabledIPAddressesWithNodeIdResponse) ProtoMessage() {} + +func (x *FindAllEnabledIPAddressesWithNodeIdResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_node_ip_address_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 FindAllEnabledIPAddressesWithNodeIdResponse.ProtoReflect.Descriptor instead. +func (*FindAllEnabledIPAddressesWithNodeIdResponse) Descriptor() ([]byte, []int) { + return file_service_node_ip_address_proto_rawDescGZIP(), []int{13} +} + +func (x *FindAllEnabledIPAddressesWithNodeIdResponse) GetAddresses() []*NodeIPAddress { + if x != nil { + return x.Addresses + } + return nil +} + +var File_service_node_ip_address_proto protoreflect.FileDescriptor + +var file_service_node_ip_address_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x02, 0x70, 0x62, 0x1a, 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x58, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x3b, 0x0a, 0x1b, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x1d, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, + 0x22, 0x23, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x40, 0x0a, 0x26, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, + 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 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, 0x22, 0x29, 0x0a, 0x27, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x6c, 0x6c, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, + 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3f, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, + 0x22, 0x53, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x44, 0x0a, 0x2a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 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, 0x22, 0x5e, 0x0a, 0x2b, 0x46, + 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x32, 0xf7, 0x05, 0x0a, 0x14, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, + 0x0a, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x1f, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x2e, 0x70, + 0x62, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x49, 0x50, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, + 0x23, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, + 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, + 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, + 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 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 ( + file_service_node_ip_address_proto_rawDescOnce sync.Once + file_service_node_ip_address_proto_rawDescData = file_service_node_ip_address_proto_rawDesc +) + +func file_service_node_ip_address_proto_rawDescGZIP() []byte { + file_service_node_ip_address_proto_rawDescOnce.Do(func() { + file_service_node_ip_address_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_node_ip_address_proto_rawDescData) + }) + return file_service_node_ip_address_proto_rawDescData +} + +var file_service_node_ip_address_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_service_node_ip_address_proto_goTypes = []interface{}{ + (*CreateNodeIPAddressRequest)(nil), // 0: pb.CreateNodeIPAddressRequest + (*CreateNodeIPAddressResponse)(nil), // 1: pb.CreateNodeIPAddressResponse + (*UpdateNodeIPAddressRequest)(nil), // 2: pb.UpdateNodeIPAddressRequest + (*UpdateNodeIPAddressResponse)(nil), // 3: pb.UpdateNodeIPAddressResponse + (*UpdateNodeIPAddressNodeIdRequest)(nil), // 4: pb.UpdateNodeIPAddressNodeIdRequest + (*UpdateNodeIPAddressNodeIdResponse)(nil), // 5: pb.UpdateNodeIPAddressNodeIdResponse + (*DisableNodeIPAddressRequest)(nil), // 6: pb.DisableNodeIPAddressRequest + (*DisableNodeIPAddressResponse)(nil), // 7: pb.DisableNodeIPAddressResponse + (*DisableAllIPAddressesWithNodeIdRequest)(nil), // 8: pb.DisableAllIPAddressesWithNodeIdRequest + (*DisableAllIPAddressesWithNodeIdResponse)(nil), // 9: pb.DisableAllIPAddressesWithNodeIdResponse + (*FindEnabledNodeIPAddressRequest)(nil), // 10: pb.FindEnabledNodeIPAddressRequest + (*FindEnabledNodeIPAddressResponse)(nil), // 11: pb.FindEnabledNodeIPAddressResponse + (*FindAllEnabledIPAddressesWithNodeIdRequest)(nil), // 12: pb.FindAllEnabledIPAddressesWithNodeIdRequest + (*FindAllEnabledIPAddressesWithNodeIdResponse)(nil), // 13: pb.FindAllEnabledIPAddressesWithNodeIdResponse + (*NodeIPAddress)(nil), // 14: pb.NodeIPAddress +} +var file_service_node_ip_address_proto_depIdxs = []int32{ + 14, // 0: pb.FindEnabledNodeIPAddressResponse.ipAddress:type_name -> pb.NodeIPAddress + 14, // 1: pb.FindAllEnabledIPAddressesWithNodeIdResponse.addresses:type_name -> pb.NodeIPAddress + 0, // 2: pb.NodeIPAddressService.createNodeIPAddress:input_type -> pb.CreateNodeIPAddressRequest + 2, // 3: pb.NodeIPAddressService.updateNodeIPAddress:input_type -> pb.UpdateNodeIPAddressRequest + 4, // 4: pb.NodeIPAddressService.updateNodeIPAddressNodeId:input_type -> pb.UpdateNodeIPAddressNodeIdRequest + 6, // 5: pb.NodeIPAddressService.disableNodeIPAddress:input_type -> pb.DisableNodeIPAddressRequest + 8, // 6: pb.NodeIPAddressService.disableAllIPAddressesWithNodeId:input_type -> pb.DisableAllIPAddressesWithNodeIdRequest + 10, // 7: pb.NodeIPAddressService.findEnabledNodeIPAddress:input_type -> pb.FindEnabledNodeIPAddressRequest + 12, // 8: pb.NodeIPAddressService.findAllEnabledIPAddressesWithNodeId:input_type -> pb.FindAllEnabledIPAddressesWithNodeIdRequest + 1, // 9: pb.NodeIPAddressService.createNodeIPAddress:output_type -> pb.CreateNodeIPAddressResponse + 3, // 10: pb.NodeIPAddressService.updateNodeIPAddress:output_type -> pb.UpdateNodeIPAddressResponse + 5, // 11: pb.NodeIPAddressService.updateNodeIPAddressNodeId:output_type -> pb.UpdateNodeIPAddressNodeIdResponse + 7, // 12: pb.NodeIPAddressService.disableNodeIPAddress:output_type -> pb.DisableNodeIPAddressResponse + 9, // 13: pb.NodeIPAddressService.disableAllIPAddressesWithNodeId:output_type -> pb.DisableAllIPAddressesWithNodeIdResponse + 11, // 14: pb.NodeIPAddressService.findEnabledNodeIPAddress:output_type -> pb.FindEnabledNodeIPAddressResponse + 13, // 15: pb.NodeIPAddressService.findAllEnabledIPAddressesWithNodeId:output_type -> pb.FindAllEnabledIPAddressesWithNodeIdResponse + 9, // [9:16] is the sub-list for method output_type + 2, // [2:9] 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_ip_address_proto_init() } +func file_service_node_ip_address_proto_init() { + if File_service_node_ip_address_proto != nil { + return + } + file_model_node_ip_address_proto_init() + if !protoimpl.UnsafeEnabled { + file_service_node_ip_address_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeIPAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateNodeIPAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIPAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIPAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIPAddressNodeIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeIPAddressNodeIdResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeIPAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableNodeIPAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableAllIPAddressesWithNodeIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableAllIPAddressesWithNodeIdResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledNodeIPAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindEnabledNodeIPAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledIPAddressesWithNodeIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_node_ip_address_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FindAllEnabledIPAddressesWithNodeIdResponse); 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{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_service_node_ip_address_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_service_node_ip_address_proto_goTypes, + DependencyIndexes: file_service_node_ip_address_proto_depIdxs, + MessageInfos: file_service_node_ip_address_proto_msgTypes, + }.Build() + File_service_node_ip_address_proto = out.File + file_service_node_ip_address_proto_rawDesc = nil + file_service_node_ip_address_proto_goTypes = nil + file_service_node_ip_address_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// NodeIPAddressServiceClient is the client API for NodeIPAddressService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NodeIPAddressServiceClient interface { + // 创建IP地址 + CreateNodeIPAddress(ctx context.Context, in *CreateNodeIPAddressRequest, opts ...grpc.CallOption) (*CreateNodeIPAddressResponse, error) + // 修改IP地址 + UpdateNodeIPAddress(ctx context.Context, in *UpdateNodeIPAddressRequest, opts ...grpc.CallOption) (*UpdateNodeIPAddressResponse, error) + // 修改IP地址所属节点 + UpdateNodeIPAddressNodeId(ctx context.Context, in *UpdateNodeIPAddressNodeIdRequest, opts ...grpc.CallOption) (*UpdateNodeIPAddressNodeIdResponse, error) + // 禁用单个IP地址 + DisableNodeIPAddress(ctx context.Context, in *DisableNodeIPAddressRequest, opts ...grpc.CallOption) (*DisableNodeIPAddressResponse, error) + // 禁用节点的所有IP地址 + DisableAllIPAddressesWithNodeId(ctx context.Context, in *DisableAllIPAddressesWithNodeIdRequest, opts ...grpc.CallOption) (*DisableAllIPAddressesWithNodeIdResponse, error) + // 查找单个IP地址 + FindEnabledNodeIPAddress(ctx context.Context, in *FindEnabledNodeIPAddressRequest, opts ...grpc.CallOption) (*FindEnabledNodeIPAddressResponse, error) + // 查找节点的所有地址 + FindAllEnabledIPAddressesWithNodeId(ctx context.Context, in *FindAllEnabledIPAddressesWithNodeIdRequest, opts ...grpc.CallOption) (*FindAllEnabledIPAddressesWithNodeIdResponse, error) +} + +type nodeIPAddressServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewNodeIPAddressServiceClient(cc grpc.ClientConnInterface) NodeIPAddressServiceClient { + return &nodeIPAddressServiceClient{cc} +} + +func (c *nodeIPAddressServiceClient) CreateNodeIPAddress(ctx context.Context, in *CreateNodeIPAddressRequest, opts ...grpc.CallOption) (*CreateNodeIPAddressResponse, error) { + out := new(CreateNodeIPAddressResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/createNodeIPAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) UpdateNodeIPAddress(ctx context.Context, in *UpdateNodeIPAddressRequest, opts ...grpc.CallOption) (*UpdateNodeIPAddressResponse, error) { + out := new(UpdateNodeIPAddressResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/updateNodeIPAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) UpdateNodeIPAddressNodeId(ctx context.Context, in *UpdateNodeIPAddressNodeIdRequest, opts ...grpc.CallOption) (*UpdateNodeIPAddressNodeIdResponse, error) { + out := new(UpdateNodeIPAddressNodeIdResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/updateNodeIPAddressNodeId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) DisableNodeIPAddress(ctx context.Context, in *DisableNodeIPAddressRequest, opts ...grpc.CallOption) (*DisableNodeIPAddressResponse, error) { + out := new(DisableNodeIPAddressResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/disableNodeIPAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) DisableAllIPAddressesWithNodeId(ctx context.Context, in *DisableAllIPAddressesWithNodeIdRequest, opts ...grpc.CallOption) (*DisableAllIPAddressesWithNodeIdResponse, error) { + out := new(DisableAllIPAddressesWithNodeIdResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/disableAllIPAddressesWithNodeId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) FindEnabledNodeIPAddress(ctx context.Context, in *FindEnabledNodeIPAddressRequest, opts ...grpc.CallOption) (*FindEnabledNodeIPAddressResponse, error) { + out := new(FindEnabledNodeIPAddressResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/findEnabledNodeIPAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeIPAddressServiceClient) FindAllEnabledIPAddressesWithNodeId(ctx context.Context, in *FindAllEnabledIPAddressesWithNodeIdRequest, opts ...grpc.CallOption) (*FindAllEnabledIPAddressesWithNodeIdResponse, error) { + out := new(FindAllEnabledIPAddressesWithNodeIdResponse) + err := c.cc.Invoke(ctx, "/pb.NodeIPAddressService/findAllEnabledIPAddressesWithNodeId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeIPAddressServiceServer is the server API for NodeIPAddressService service. +type NodeIPAddressServiceServer interface { + // 创建IP地址 + CreateNodeIPAddress(context.Context, *CreateNodeIPAddressRequest) (*CreateNodeIPAddressResponse, error) + // 修改IP地址 + UpdateNodeIPAddress(context.Context, *UpdateNodeIPAddressRequest) (*UpdateNodeIPAddressResponse, error) + // 修改IP地址所属节点 + UpdateNodeIPAddressNodeId(context.Context, *UpdateNodeIPAddressNodeIdRequest) (*UpdateNodeIPAddressNodeIdResponse, error) + // 禁用单个IP地址 + DisableNodeIPAddress(context.Context, *DisableNodeIPAddressRequest) (*DisableNodeIPAddressResponse, error) + // 禁用节点的所有IP地址 + DisableAllIPAddressesWithNodeId(context.Context, *DisableAllIPAddressesWithNodeIdRequest) (*DisableAllIPAddressesWithNodeIdResponse, error) + // 查找单个IP地址 + FindEnabledNodeIPAddress(context.Context, *FindEnabledNodeIPAddressRequest) (*FindEnabledNodeIPAddressResponse, error) + // 查找节点的所有地址 + FindAllEnabledIPAddressesWithNodeId(context.Context, *FindAllEnabledIPAddressesWithNodeIdRequest) (*FindAllEnabledIPAddressesWithNodeIdResponse, error) +} + +// UnimplementedNodeIPAddressServiceServer can be embedded to have forward compatible implementations. +type UnimplementedNodeIPAddressServiceServer struct { +} + +func (*UnimplementedNodeIPAddressServiceServer) CreateNodeIPAddress(context.Context, *CreateNodeIPAddressRequest) (*CreateNodeIPAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNodeIPAddress not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) UpdateNodeIPAddress(context.Context, *UpdateNodeIPAddressRequest) (*UpdateNodeIPAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeIPAddress not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) UpdateNodeIPAddressNodeId(context.Context, *UpdateNodeIPAddressNodeIdRequest) (*UpdateNodeIPAddressNodeIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNodeIPAddressNodeId not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) DisableNodeIPAddress(context.Context, *DisableNodeIPAddressRequest) (*DisableNodeIPAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableNodeIPAddress not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) DisableAllIPAddressesWithNodeId(context.Context, *DisableAllIPAddressesWithNodeIdRequest) (*DisableAllIPAddressesWithNodeIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableAllIPAddressesWithNodeId not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) FindEnabledNodeIPAddress(context.Context, *FindEnabledNodeIPAddressRequest) (*FindEnabledNodeIPAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindEnabledNodeIPAddress not implemented") +} +func (*UnimplementedNodeIPAddressServiceServer) FindAllEnabledIPAddressesWithNodeId(context.Context, *FindAllEnabledIPAddressesWithNodeIdRequest) (*FindAllEnabledIPAddressesWithNodeIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindAllEnabledIPAddressesWithNodeId not implemented") +} + +func RegisterNodeIPAddressServiceServer(s *grpc.Server, srv NodeIPAddressServiceServer) { + s.RegisterService(&_NodeIPAddressService_serviceDesc, srv) +} + +func _NodeIPAddressService_CreateNodeIPAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateNodeIPAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).CreateNodeIPAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/CreateNodeIPAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).CreateNodeIPAddress(ctx, req.(*CreateNodeIPAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_UpdateNodeIPAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeIPAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).UpdateNodeIPAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/UpdateNodeIPAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).UpdateNodeIPAddress(ctx, req.(*UpdateNodeIPAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_UpdateNodeIPAddressNodeId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeIPAddressNodeIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).UpdateNodeIPAddressNodeId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/UpdateNodeIPAddressNodeId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).UpdateNodeIPAddressNodeId(ctx, req.(*UpdateNodeIPAddressNodeIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_DisableNodeIPAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableNodeIPAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).DisableNodeIPAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/DisableNodeIPAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).DisableNodeIPAddress(ctx, req.(*DisableNodeIPAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_DisableAllIPAddressesWithNodeId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableAllIPAddressesWithNodeIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).DisableAllIPAddressesWithNodeId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/DisableAllIPAddressesWithNodeId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).DisableAllIPAddressesWithNodeId(ctx, req.(*DisableAllIPAddressesWithNodeIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_FindEnabledNodeIPAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindEnabledNodeIPAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).FindEnabledNodeIPAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/FindEnabledNodeIPAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).FindEnabledNodeIPAddress(ctx, req.(*FindEnabledNodeIPAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NodeIPAddressService_FindAllEnabledIPAddressesWithNodeId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindAllEnabledIPAddressesWithNodeIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeIPAddressServiceServer).FindAllEnabledIPAddressesWithNodeId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.NodeIPAddressService/FindAllEnabledIPAddressesWithNodeId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeIPAddressServiceServer).FindAllEnabledIPAddressesWithNodeId(ctx, req.(*FindAllEnabledIPAddressesWithNodeIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _NodeIPAddressService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pb.NodeIPAddressService", + HandlerType: (*NodeIPAddressServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createNodeIPAddress", + Handler: _NodeIPAddressService_CreateNodeIPAddress_Handler, + }, + { + MethodName: "updateNodeIPAddress", + Handler: _NodeIPAddressService_UpdateNodeIPAddress_Handler, + }, + { + MethodName: "updateNodeIPAddressNodeId", + Handler: _NodeIPAddressService_UpdateNodeIPAddressNodeId_Handler, + }, + { + MethodName: "disableNodeIPAddress", + Handler: _NodeIPAddressService_DisableNodeIPAddress_Handler, + }, + { + MethodName: "disableAllIPAddressesWithNodeId", + Handler: _NodeIPAddressService_DisableAllIPAddressesWithNodeId_Handler, + }, + { + MethodName: "findEnabledNodeIPAddress", + Handler: _NodeIPAddressService_FindEnabledNodeIPAddress_Handler, + }, + { + MethodName: "findAllEnabledIPAddressesWithNodeId", + Handler: _NodeIPAddressService_FindAllEnabledIPAddressesWithNodeId_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "service_node_ip_address.proto", +} diff --git a/internal/rpc/protos/service_node_ip_address.proto b/internal/rpc/protos/service_node_ip_address.proto new file mode 100644 index 00000000..dabdcd11 --- /dev/null +++ b/internal/rpc/protos/service_node_ip_address.proto @@ -0,0 +1,97 @@ +syntax = "proto3"; +option go_package = "./pb"; + +package pb; + +import "model_node_ip_address.proto"; + +service NodeIPAddressService { + // 创建IP地址 + rpc createNodeIPAddress (CreateNodeIPAddressRequest) returns (CreateNodeIPAddressResponse); + + // 修改IP地址 + rpc updateNodeIPAddress (UpdateNodeIPAddressRequest) returns (UpdateNodeIPAddressResponse); + + // 修改IP地址所属节点 + rpc updateNodeIPAddressNodeId (UpdateNodeIPAddressNodeIdRequest) returns (UpdateNodeIPAddressNodeIdResponse); + + // 禁用单个IP地址 + rpc disableNodeIPAddress (DisableNodeIPAddressRequest) returns (DisableNodeIPAddressResponse); + + // 禁用节点的所有IP地址 + rpc disableAllIPAddressesWithNodeId (DisableAllIPAddressesWithNodeIdRequest) returns (DisableAllIPAddressesWithNodeIdResponse); + + // 查找单个IP地址 + rpc findEnabledNodeIPAddress (FindEnabledNodeIPAddressRequest) returns (FindEnabledNodeIPAddressResponse); + + // 查找节点的所有地址 + rpc findAllEnabledIPAddressesWithNodeId (FindAllEnabledIPAddressesWithNodeIdRequest) returns (FindAllEnabledIPAddressesWithNodeIdResponse); +} + +// 创建IP地址 +message CreateNodeIPAddressRequest { + int64 nodeId = 1; + string name = 2; + string ip = 3; +} + +message CreateNodeIPAddressResponse { + int64 addressId = 1; +} + +// 修改IP地址 +message UpdateNodeIPAddressRequest { + int64 addressId = 1; + string name = 2; + string ip = 3; +} + +message UpdateNodeIPAddressResponse { + +} + +// 修改IP地址所属节点 +message UpdateNodeIPAddressNodeIdRequest { + int64 addressId = 1; + int64 nodeId = 2; +} + +message UpdateNodeIPAddressNodeIdResponse { + +} + +// 禁用单个IP地址 +message DisableNodeIPAddressRequest { + int64 addressId = 1; +} + +message DisableNodeIPAddressResponse { + +} + +// 禁用节点的所有IP地址 +message DisableAllIPAddressesWithNodeIdRequest { + int64 nodeId = 1; +} + +message DisableAllIPAddressesWithNodeIdResponse { + +} + +// 查找单个IP地址 +message FindEnabledNodeIPAddressRequest { + int64 addressId = 1; +} + +message FindEnabledNodeIPAddressResponse { + NodeIPAddress ipAddress = 1; +} + +// 查找节点的所有地址 +message FindAllEnabledIPAddressesWithNodeIdRequest { + int64 nodeId = 1; +} + +message FindAllEnabledIPAddressesWithNodeIdResponse { + repeated NodeIPAddress addresses = 1; +} \ No newline at end of file diff --git a/internal/rpc/rpc_client.go b/internal/rpc/rpc_client.go index 9456c13a..eb900460 100644 --- a/internal/rpc/rpc_client.go +++ b/internal/rpc/rpc_client.go @@ -17,12 +17,13 @@ import ( ) type RPCClient struct { - apiConfig *configs.APIConfig - adminClients []pb.AdminServiceClient - nodeClients []pb.NodeServiceClient - nodeGrantClients []pb.NodeGrantServiceClient - nodeClusterClients []pb.NodeClusterServiceClient - serverClients []pb.ServerServiceClient + apiConfig *configs.APIConfig + adminClients []pb.AdminServiceClient + nodeClients []pb.NodeServiceClient + nodeGrantClients []pb.NodeGrantServiceClient + nodeClusterClients []pb.NodeClusterServiceClient + nodeIPAddressClients []pb.NodeIPAddressServiceClient + serverClients []pb.ServerServiceClient } func NewRPCClient(apiConfig *configs.APIConfig) (*RPCClient, error) { @@ -34,6 +35,7 @@ func NewRPCClient(apiConfig *configs.APIConfig) (*RPCClient, error) { nodeClients := []pb.NodeServiceClient{} nodeGrantClients := []pb.NodeGrantServiceClient{} nodeClusterClients := []pb.NodeClusterServiceClient{} + nodeIPAddressClients := []pb.NodeIPAddressServiceClient{} serverClients := []pb.ServerServiceClient{} conns := []*grpc.ClientConn{} @@ -54,16 +56,18 @@ func NewRPCClient(apiConfig *configs.APIConfig) (*RPCClient, error) { nodeClients = append(nodeClients, pb.NewNodeServiceClient(conn)) nodeGrantClients = append(nodeGrantClients, pb.NewNodeGrantServiceClient(conn)) nodeClusterClients = append(nodeClusterClients, pb.NewNodeClusterServiceClient(conn)) + nodeIPAddressClients = append(nodeIPAddressClients, pb.NewNodeIPAddressServiceClient(conn)) serverClients = append(serverClients, pb.NewServerServiceClient(conn)) } return &RPCClient{ - apiConfig: apiConfig, - adminClients: adminClients, - nodeClients: nodeClients, - nodeGrantClients: nodeGrantClients, - nodeClusterClients: nodeClusterClients, - serverClients: serverClients, + apiConfig: apiConfig, + adminClients: adminClients, + nodeClients: nodeClients, + nodeGrantClients: nodeGrantClients, + nodeClusterClients: nodeClusterClients, + nodeIPAddressClients: nodeIPAddressClients, + serverClients: serverClients, }, nil } @@ -95,6 +99,13 @@ func (this *RPCClient) NodeClusterRPC() pb.NodeClusterServiceClient { return nil } +func (this *RPCClient) NodeIPAddressRPC() pb.NodeIPAddressServiceClient { + if len(this.nodeIPAddressClients) > 0 { + return this.nodeIPAddressClients[rands.Int(0, len(this.nodeIPAddressClients)-1)] + } + return nil +} + func (this *RPCClient) ServerRPC() pb.ServerServiceClient { if len(this.serverClients) > 0 { return this.serverClients[rands.Int(0, len(this.serverClients)-1)] diff --git a/internal/web/actions/default/nodes/create.go b/internal/web/actions/default/nodes/create.go index de8d9069..a95eb5af 100644 --- a/internal/web/actions/default/nodes/create.go +++ b/internal/web/actions/default/nodes/create.go @@ -1,6 +1,7 @@ package nodes import ( + "encoding/json" "github.com/TeaOSLab/EdgeAdmin/internal/rpc/pb" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/iwind/TeaGo/actions" @@ -38,11 +39,12 @@ func (this *CreateAction) RunGet(params struct{}) { } func (this *CreateAction) RunPost(params struct { - Name string - ClusterId int64 - GrantId int64 - SshHost string - SshPort int + Name string + IPAddresses string `alias:"ipAddresses"` + ClusterId int64 + GrantId int64 + SshHost string + SshPort int Must *actions.Must }) { @@ -68,7 +70,7 @@ func (this *CreateAction) RunPost(params struct { } // 保存 - _, err := this.RPC().NodeRPC().CreateNode(this.AdminContext(), &pb.CreateNodeRequest{ + createResp, err := this.RPC().NodeRPC().CreateNode(this.AdminContext(), &pb.CreateNodeRequest{ Name: params.Name, ClusterId: params.ClusterId, Login: loginInfo, @@ -77,6 +79,26 @@ func (this *CreateAction) RunPost(params struct { this.ErrorPage(err) return } + nodeId := createResp.NodeId + + // IP地址 + ipAddresses := []maps.Map{} + err = json.Unmarshal([]byte(params.IPAddresses), &ipAddresses) + if err != nil { + this.ErrorPage(err) + return + } + for _, address := range ipAddresses { + addressId := address.GetInt64("id") + _, err = this.RPC().NodeIPAddressRPC().UpdateNodeIPAddressNodeId(this.AdminContext(), &pb.UpdateNodeIPAddressNodeIdRequest{ + AddressId: addressId, + NodeId: nodeId, + }) + if err != nil { + this.ErrorPage(err) + return + } + } this.Success() } diff --git a/internal/web/actions/default/nodes/grants/updatePopup.go b/internal/web/actions/default/nodes/grants/updatePopup.go new file mode 100644 index 00000000..d6f3ddce --- /dev/null +++ b/internal/web/actions/default/nodes/grants/updatePopup.go @@ -0,0 +1,104 @@ +package grants + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/rpc/pb" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/maps" +) + +type UpdatePopupAction struct { + actionutils.ParentAction +} + +func (this *UpdatePopupAction) Init() { + this.Nav("", "", "") +} + +func (this *UpdatePopupAction) RunGet(params struct { + GrantId int64 +}) { + this.Data["methods"] = grantutils.AllGrantMethods() + + grantResp, err := this.RPC().NodeGrantRPC().FindEnabledGrant(this.AdminContext(), &pb.FindEnabledGrantRequest{GrantId: params.GrantId}) + if err != nil { + this.ErrorPage(err) + return + } + + if grantResp.Grant == nil { + this.WriteString("找不到要操作的对象") + return + } + + grant := grantResp.Grant + this.Data["grant"] = maps.Map{ + "id": grant.Id, + "nodeId": grant.NodeId, + "method": grant.Method, + "name": grant.Name, + "username": grant.Username, + "password": grant.Password, + "description": grant.Description, + "privateKey": grant.PrivateKey, + } + + this.Show() +} + +func (this *UpdatePopupAction) RunPost(params struct { + GrantId int64 + NodeId int64 + Name string + Method string + Username string + Password string + PrivateKey string + Description string + + Must *actions.Must +}) { + params.Must. + Field("name", params.Name). + Require("请输入名称") + + switch params.Method { + case "user": + if len(params.Username) == 0 { + this.FailField("username", "请输入SSH登录用户名") + } + case "privateKey": + if len(params.PrivateKey) == 0 { + this.FailField("privateKey", "请输入RSA私钥") + } + default: + this.Fail("请选择正确的认证方式") + } + + // 执行修改 + _, err := this.RPC().NodeGrantRPC().UpdateNodeGrant(this.AdminContext(), &pb.UpdateNodeGrantRequest{ + GrantId: params.GrantId, + Name: params.Name, + Method: params.Method, + Username: params.Username, + Password: params.Password, + PrivateKey: params.PrivateKey, + Description: params.Description, + NodeId: params.NodeId, + }) + if err != nil { + this.ErrorPage(err) + return + } + + // 返回信息 + this.Data["grant"] = maps.Map{ + "id": params.GrantId, + "name": params.Name, + "method": params.Method, + "methodName": grantutils.FindGrantMethodName(params.Method), + } + + this.Success() +} diff --git a/internal/web/actions/default/nodes/helper.go b/internal/web/actions/default/nodes/helper.go index ab6322ea..867b4c07 100644 --- a/internal/web/actions/default/nodes/helper.go +++ b/internal/web/actions/default/nodes/helper.go @@ -14,7 +14,7 @@ func (this *Helper) BeforeAction(action *actions.ActionObject) { selectedTabbar, _ := action.Data["mainTab"] tabbar := actionutils.NewTabbar() - tabbar.Add("节点管理", "", "/nodes", "", selectedTabbar == "node") - tabbar.Add("认证管理", "", "/nodes/grants", "", selectedTabbar == "grant") + tabbar.Add("节点", "", "/nodes", "", selectedTabbar == "node") + tabbar.Add("认证", "", "/nodes/grants", "", selectedTabbar == "grant") actionutils.SetTabbar(action, tabbar) } diff --git a/internal/web/actions/default/nodes/index.go b/internal/web/actions/default/nodes/index.go index 0ec8927e..e3d0d426 100644 --- a/internal/web/actions/default/nodes/index.go +++ b/internal/web/actions/default/nodes/index.go @@ -46,6 +46,21 @@ func (this *IndexAction) RunGet(params struct{}) { status.IsActive = time.Now().Unix()-status.UpdatedAt < 120 // 2分钟之内认为活跃 } + // IP + ipAddressesResp, err := this.RPC().NodeIPAddressRPC().FindAllEnabledIPAddressesWithNodeId(this.AdminContext(), &pb.FindAllEnabledIPAddressesWithNodeIdRequest{NodeId: node.Id}) + if err != nil { + this.ErrorPage(err) + return + } + ipAddresses := []maps.Map{} + for _, addr := range ipAddressesResp.Addresses { + ipAddresses = append(ipAddresses, maps.Map{ + "id": addr.Id, + "name": addr.Name, + "ip": addr.Ip, + }) + } + nodeMaps = append(nodeMaps, maps.Map{ "id": node.Id, "name": node.Name, @@ -62,6 +77,7 @@ func (this *IndexAction) RunGet(params struct{}) { "id": node.Cluster.Id, "name": node.Cluster.Name, }, + "ipAddresses": ipAddresses, }) } this.Data["nodes"] = nodeMaps diff --git a/internal/web/actions/default/nodes/init.go b/internal/web/actions/default/nodes/init.go index ef5e4db0..828a90c5 100644 --- a/internal/web/actions/default/nodes/init.go +++ b/internal/web/actions/default/nodes/init.go @@ -2,6 +2,7 @@ package nodes import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/ipAddresses" "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" "github.com/iwind/TeaGo" ) @@ -18,6 +19,10 @@ func init() { GetPost("/update", new(UpdateAction)). Get("/node", new(NodeAction)). + // IP地址 + GetPost("/ipAddresses/createPopup", new(ipAddresses.CreatePopupAction)). + GetPost("/ipAddresses/updatePopup", new(ipAddresses.UpdatePopupAction)). + // 授权管理 Get("/grants", new(grants.IndexAction)). GetPost("/grants/create", new(grants.CreateAction)). @@ -26,6 +31,7 @@ func init() { Get("/grants/grant", new(grants.GrantAction)). GetPost("/grants/selectPopup", new(grants.SelectPopupAction)). GetPost("/grants/createPopup", new(grants.CreatePopupAction)). + GetPost("/grants/updatePopup", new(grants.UpdatePopupAction)). EndAll() }) } diff --git a/internal/web/actions/default/nodes/ipAddresses/createPopup.go b/internal/web/actions/default/nodes/ipAddresses/createPopup.go new file mode 100644 index 00000000..953b32b2 --- /dev/null +++ b/internal/web/actions/default/nodes/ipAddresses/createPopup.go @@ -0,0 +1,50 @@ +package ipAddresses + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/rpc/pb" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/maps" +) + +type CreatePopupAction struct { + actionutils.ParentAction +} + +func (this *CreatePopupAction) Init() { + this.Nav("", "", "") +} + +func (this *CreatePopupAction) RunGet(params struct{}) { + this.Show() +} + +func (this *CreatePopupAction) RunPost(params struct { + IP string `alias:"ip"` + Name string + + Must *actions.Must +}) { + // TODO 严格校验IP地址 + + params.Must. + Field("ip", params.IP). + Require("请输入IP地址") + + resp, err := this.RPC().NodeIPAddressRPC().CreateNodeIPAddress(this.AdminContext(), &pb.CreateNodeIPAddressRequest{ + NodeId: 0, + Name: params.Name, + Ip: params.IP, + }) + if err != nil { + this.ErrorPage(err) + return + } + + this.Data["ipAddress"] = maps.Map{ + "name": params.Name, + "ip": params.IP, + "id": resp.AddressId, + } + this.Success() +} diff --git a/internal/web/actions/default/nodes/ipAddresses/updatePopup.go b/internal/web/actions/default/nodes/ipAddresses/updatePopup.go new file mode 100644 index 00000000..480cb801 --- /dev/null +++ b/internal/web/actions/default/nodes/ipAddresses/updatePopup.go @@ -0,0 +1,71 @@ +package ipAddresses + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/rpc/pb" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/maps" +) + +type UpdatePopupAction struct { + actionutils.ParentAction +} + +func (this *UpdatePopupAction) Init() { + this.Nav("", "", "") +} + +func (this *UpdatePopupAction) RunGet(params struct { + AddressId int64 +}) { + addressResp, err := this.RPC().NodeIPAddressRPC().FindEnabledNodeIPAddress(this.AdminContext(), &pb.FindEnabledNodeIPAddressRequest{AddressId: params.AddressId}) + if err != nil { + this.ErrorPage(err) + return + } + address := addressResp.IpAddress + if address == nil { + this.WriteString("找不到要修改的IP地址") + return + } + + this.Data["address"] = maps.Map{ + "id": address.Id, + "name": address.Name, + "ip": address.Ip, + } + + this.Show() +} + +func (this *UpdatePopupAction) RunPost(params struct { + AddressId int64 + IP string `alias:"ip"` + Name string + + Must *actions.Must +}) { + // TODO 严格校验IP地址 + + params.Must. + Field("ip", params.IP). + Require("请输入IP地址") + + _, err := this.RPC().NodeIPAddressRPC().UpdateNodeIPAddress(this.AdminContext(), &pb.UpdateNodeIPAddressRequest{ + AddressId: params.AddressId, + Name: params.Name, + Ip: params.IP, + }) + if err != nil { + this.ErrorPage(err) + return + } + + this.Data["ipAddress"] = maps.Map{ + "name": params.Name, + "ip": params.IP, + "id": params.AddressId, + } + + this.Success() +} diff --git a/internal/web/actions/default/nodes/node.go b/internal/web/actions/default/nodes/node.go index f567c296..f55ba2b2 100644 --- a/internal/web/actions/default/nodes/node.go +++ b/internal/web/actions/default/nodes/node.go @@ -40,6 +40,22 @@ func (this *NodeAction) RunGet(params struct { } } + // IP地址 + ipAddressesResp, err := this.RPC().NodeIPAddressRPC().FindAllEnabledIPAddressesWithNodeId(this.AdminContext(), &pb.FindAllEnabledIPAddressesWithNodeIdRequest{NodeId: params.NodeId}) + if err != nil { + this.ErrorPage(err) + return + } + ipAddressMaps := []maps.Map{} + for _, addr := range ipAddressesResp.Addresses { + ipAddressMaps = append(ipAddressMaps, maps.Map{ + "id": addr.Id, + "name": addr.Name, + "ip": addr.Ip, + }) + } + + // 登录信息 var loginMap maps.Map = nil if node.Login != nil { loginParams := maps.Map{} @@ -79,10 +95,11 @@ func (this *NodeAction) RunGet(params struct { } this.Data["node"] = maps.Map{ - "id": node.Id, - "name": node.Name, - "cluster": clusterMap, - "login": loginMap, + "id": node.Id, + "name": node.Name, + "ipAddresses": ipAddressMaps, + "cluster": clusterMap, + "login": loginMap, } this.Show() diff --git a/internal/web/actions/default/nodes/update.go b/internal/web/actions/default/nodes/update.go index 034866f2..85c4e6a7 100644 --- a/internal/web/actions/default/nodes/update.go +++ b/internal/web/actions/default/nodes/update.go @@ -41,6 +41,22 @@ func (this *UpdateAction) RunGet(params struct { } } + // IP地址 + ipAddressesResp, err := this.RPC().NodeIPAddressRPC().FindAllEnabledIPAddressesWithNodeId(this.AdminContext(), &pb.FindAllEnabledIPAddressesWithNodeIdRequest{NodeId: params.NodeId}) + if err != nil { + this.ErrorPage(err) + return + } + ipAddressMaps := []maps.Map{} + for _, addr := range ipAddressesResp.Addresses { + ipAddressMaps = append(ipAddressMaps, maps.Map{ + "id": addr.Id, + "name": addr.Name, + "ip": addr.Ip, + }) + } + + // 登录信息 var loginMap maps.Map = nil if node.Login != nil { loginParams := maps.Map{} @@ -80,10 +96,11 @@ func (this *UpdateAction) RunGet(params struct { } this.Data["node"] = maps.Map{ - "id": node.Id, - "name": node.Name, - "cluster": clusterMap, - "login": loginMap, + "id": node.Id, + "name": node.Name, + "ipAddresses": ipAddressMaps, + "cluster": clusterMap, + "login": loginMap, } // 所有集群 @@ -108,13 +125,14 @@ func (this *UpdateAction) RunGet(params struct { } func (this *UpdateAction) RunPost(params struct { - LoginId int64 - NodeId int64 - Name string - ClusterId int64 - GrantId int64 - SshHost string - SshPort int + LoginId int64 + NodeId int64 + Name string + IPAddresses string `alias:"ipAddresses"` + ClusterId int64 + GrantId int64 + SshHost string + SshPort int Must *actions.Must }) { @@ -155,5 +173,31 @@ func (this *UpdateAction) RunPost(params struct { return } + // 禁用老的IP地址 + _, err = this.RPC().NodeIPAddressRPC().DisableAllIPAddressesWithNodeId(this.AdminContext(), &pb.DisableAllIPAddressesWithNodeIdRequest{NodeId: params.NodeId}) + if err != nil { + this.ErrorPage(err) + return + } + + // 添加新的IP地址 + ipAddresses := []maps.Map{} + err = json.Unmarshal([]byte(params.IPAddresses), &ipAddresses) + if err != nil { + this.ErrorPage(err) + return + } + for _, address := range ipAddresses { + addressId := address.GetInt64("id") + _, err = this.RPC().NodeIPAddressRPC().UpdateNodeIPAddressNodeId(this.AdminContext(), &pb.UpdateNodeIPAddressNodeIdRequest{ + AddressId: addressId, + NodeId: params.NodeId, + }) + if err != nil { + this.ErrorPage(err) + return + } + } + this.Success() } diff --git a/internal/web/actions/default/servers/components/helper.go b/internal/web/actions/default/servers/components/helper.go new file mode 100644 index 00000000..ba3852e1 --- /dev/null +++ b/internal/web/actions/default/servers/components/helper.go @@ -0,0 +1,24 @@ +package components + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/iwind/TeaGo/actions" +) + +type Helper struct { +} + +func NewHelper() *Helper { + return &Helper{} +} + +func (this *Helper) BeforeAction(action *actions.ActionObject) { + action.Data["teaMenu"] = "servers" + + selectedTabbar, _ := action.Data["mainTab"] + + tabbar := actionutils.NewTabbar() + tabbar.Add("服务", "", "/servers", "", selectedTabbar == "server") + tabbar.Add("组件", "", "/servers/components", "", selectedTabbar == "component") + actionutils.SetTabbar(action, tabbar) +} diff --git a/internal/web/actions/default/servers/components/index.go b/internal/web/actions/default/servers/components/index.go new file mode 100644 index 00000000..e744541d --- /dev/null +++ b/internal/web/actions/default/servers/components/index.go @@ -0,0 +1,18 @@ +package components + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "component", "index") +} + +func (this *IndexAction) RunGet(params struct{}) { + + this.Show() +} diff --git a/internal/web/actions/default/servers/components/init.go b/internal/web/actions/default/servers/components/init.go new file mode 100644 index 00000000..f4fe896e --- /dev/null +++ b/internal/web/actions/default/servers/components/init.go @@ -0,0 +1,17 @@ +package components + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(NewHelper()). + Prefix("/servers/components"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/helper.go b/internal/web/actions/default/servers/helper.go index 89d31ec9..da761f6a 100644 --- a/internal/web/actions/default/servers/helper.go +++ b/internal/web/actions/default/servers/helper.go @@ -18,6 +18,7 @@ func (this *Helper) BeforeAction(action *actions.ActionObject) { selectedTabbar, _ := action.Data["mainTab"] tabbar := actionutils.NewTabbar() - tabbar.Add("服务管理", "", "/servers", "", selectedTabbar == "server") + tabbar.Add("服务", "", "/servers", "", selectedTabbar == "server") + tabbar.Add("组件", "", "/servers/components", "", selectedTabbar == "component") actionutils.SetTabbar(action, tabbar) } diff --git a/internal/web/actions/default/servers/server/board/index.go b/internal/web/actions/default/servers/server/board/index.go index b6c45c6e..fa413a77 100644 --- a/internal/web/actions/default/servers/server/board/index.go +++ b/internal/web/actions/default/servers/server/board/index.go @@ -8,6 +8,7 @@ type IndexAction struct { func (this *IndexAction) Init() { this.Nav("", "board", "") + this.SecondMenu("index") } func (this *IndexAction) RunGet(params struct{}) { diff --git a/internal/web/actions/default/servers/server/delete/index.go b/internal/web/actions/default/servers/server/delete/index.go index cc796b1b..68815018 100644 --- a/internal/web/actions/default/servers/server/delete/index.go +++ b/internal/web/actions/default/servers/server/delete/index.go @@ -8,6 +8,7 @@ type IndexAction struct { func (this *IndexAction) Init() { this.Nav("", "delete", "") + this.SecondMenu("index") } func (this *IndexAction) RunGet(params struct{}) { diff --git a/internal/web/actions/default/servers/server/log/index.go b/internal/web/actions/default/servers/server/log/index.go index c835cf24..49e2d692 100644 --- a/internal/web/actions/default/servers/server/log/index.go +++ b/internal/web/actions/default/servers/server/log/index.go @@ -8,6 +8,7 @@ type IndexAction struct { func (this *IndexAction) Init() { this.Nav("", "log", "") + this.SecondMenu("index") } func (this *IndexAction) RunGet(params struct{}) { diff --git a/internal/web/actions/default/servers/server/settings/access/index.go b/internal/web/actions/default/servers/server/settings/access/index.go new file mode 100644 index 00000000..2e208ab7 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/access/index.go @@ -0,0 +1,22 @@ +package access + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("access") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/access/init.go b/internal/web/actions/default/servers/server/settings/access/init.go new file mode 100644 index 00000000..ab47a0b7 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/access/init.go @@ -0,0 +1,18 @@ +package access + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/access"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/accessLog/index.go b/internal/web/actions/default/servers/server/settings/accessLog/index.go new file mode 100644 index 00000000..147050db --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/accessLog/index.go @@ -0,0 +1,22 @@ +package accessLog + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("accessLog") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/accessLog/init.go b/internal/web/actions/default/servers/server/settings/accessLog/init.go new file mode 100644 index 00000000..ac432d79 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/accessLog/init.go @@ -0,0 +1,18 @@ +package accessLog + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/accessLog"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/cache/index.go b/internal/web/actions/default/servers/server/settings/cache/index.go new file mode 100644 index 00000000..10968e88 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/cache/index.go @@ -0,0 +1,22 @@ +package cache + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("cache") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/cache/init.go b/internal/web/actions/default/servers/server/settings/cache/init.go new file mode 100644 index 00000000..840e3046 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/cache/init.go @@ -0,0 +1,18 @@ +package cache + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/cache"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/charset/index.go b/internal/web/actions/default/servers/server/settings/charset/index.go new file mode 100644 index 00000000..13fb2ac1 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/charset/index.go @@ -0,0 +1,22 @@ +package charset + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("charset") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/charset/init.go b/internal/web/actions/default/servers/server/settings/charset/init.go new file mode 100644 index 00000000..532456ea --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/charset/init.go @@ -0,0 +1,18 @@ +package charset + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/charset"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/gzip/index.go b/internal/web/actions/default/servers/server/settings/gzip/index.go new file mode 100644 index 00000000..155ab9ca --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/gzip/index.go @@ -0,0 +1,22 @@ +package gzip + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("gzip") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/gzip/init.go b/internal/web/actions/default/servers/server/settings/gzip/init.go new file mode 100644 index 00000000..6210e378 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/gzip/init.go @@ -0,0 +1,18 @@ +package gzip + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/gzip"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/headers/index.go b/internal/web/actions/default/servers/server/settings/headers/index.go new file mode 100644 index 00000000..502a000e --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/headers/index.go @@ -0,0 +1,22 @@ +package headers + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("header") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/headers/init.go b/internal/web/actions/default/servers/server/settings/headers/init.go new file mode 100644 index 00000000..5e3aaee2 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/headers/init.go @@ -0,0 +1,18 @@ +package headers + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/headers"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/http/index.go b/internal/web/actions/default/servers/server/settings/http/index.go index 2f3739e9..1fa5babc 100644 --- a/internal/web/actions/default/servers/server/settings/http/index.go +++ b/internal/web/actions/default/servers/server/settings/http/index.go @@ -1,4 +1,4 @@ -package server +package http import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" @@ -16,5 +16,7 @@ func (this *IndexAction) Init() { func (this *IndexAction) RunGet(params struct { ServerId int64 }) { + // TODO + this.Show() } diff --git a/internal/web/actions/default/servers/server/settings/http/init.go b/internal/web/actions/default/servers/server/settings/http/init.go index f0aec50e..946157df 100644 --- a/internal/web/actions/default/servers/server/settings/http/init.go +++ b/internal/web/actions/default/servers/server/settings/http/init.go @@ -1,4 +1,4 @@ -package server +package http import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" @@ -11,7 +11,7 @@ func init() { server. Helper(helpers.NewUserMustAuth()). Helper(serverutils.NewServerHelper()). - Prefix("/servers/server/http"). + Prefix("/servers/server/settings/http"). Get("", new(IndexAction)). EndAll() }) diff --git a/internal/web/actions/default/servers/server/settings/https/index.go b/internal/web/actions/default/servers/server/settings/https/index.go new file mode 100644 index 00000000..7df98dc7 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/https/index.go @@ -0,0 +1,20 @@ +package https + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("https") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/https/init.go b/internal/web/actions/default/servers/server/settings/https/init.go new file mode 100644 index 00000000..467aa496 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/https/init.go @@ -0,0 +1,18 @@ +package https + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/https"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/locations/index.go b/internal/web/actions/default/servers/server/settings/locations/index.go new file mode 100644 index 00000000..57b20f35 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/locations/index.go @@ -0,0 +1,22 @@ +package locations + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("locations") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/locations/init.go b/internal/web/actions/default/servers/server/settings/locations/init.go new file mode 100644 index 00000000..ec324bfb --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/locations/init.go @@ -0,0 +1,18 @@ +package locations + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/locations"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/pages/index.go b/internal/web/actions/default/servers/server/settings/pages/index.go new file mode 100644 index 00000000..8cbf2939 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/pages/index.go @@ -0,0 +1,22 @@ +package pages + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("pages") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/pages/init.go b/internal/web/actions/default/servers/server/settings/pages/init.go new file mode 100644 index 00000000..fa790f6d --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/pages/init.go @@ -0,0 +1,18 @@ +package pages + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/pages"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/reverseProxy/index.go b/internal/web/actions/default/servers/server/settings/reverseProxy/index.go new file mode 100644 index 00000000..7cafb19a --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/reverseProxy/index.go @@ -0,0 +1,22 @@ +package reverseProxy + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("reverseProxy") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/reverseProxy/init.go b/internal/web/actions/default/servers/server/settings/reverseProxy/init.go new file mode 100644 index 00000000..89836fde --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/reverseProxy/init.go @@ -0,0 +1,18 @@ +package reverseProxy + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/reverseProxy"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/stat/index.go b/internal/web/actions/default/servers/server/settings/stat/index.go new file mode 100644 index 00000000..185c665f --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/stat/index.go @@ -0,0 +1,22 @@ +package stat + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("stat") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/stat/init.go b/internal/web/actions/default/servers/server/settings/stat/init.go new file mode 100644 index 00000000..c8200907 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/stat/init.go @@ -0,0 +1,18 @@ +package stat + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/stat"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/tcp/index.go b/internal/web/actions/default/servers/server/settings/tcp/index.go new file mode 100644 index 00000000..781a60b2 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/tcp/index.go @@ -0,0 +1,22 @@ +package tcp + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("tcp") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/tcp/init.go b/internal/web/actions/default/servers/server/settings/tcp/init.go new file mode 100644 index 00000000..8c50c077 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/tcp/init.go @@ -0,0 +1,18 @@ +package tcp + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/tcp"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/udp/index.go b/internal/web/actions/default/servers/server/settings/udp/index.go new file mode 100644 index 00000000..c67d2b22 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/udp/index.go @@ -0,0 +1,22 @@ +package udp + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("udp") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/udp/init.go b/internal/web/actions/default/servers/server/settings/udp/init.go new file mode 100644 index 00000000..9343bd57 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/udp/init.go @@ -0,0 +1,18 @@ +package udp + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/udp"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/unix/index.go b/internal/web/actions/default/servers/server/settings/unix/index.go new file mode 100644 index 00000000..0e0e69cb --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/unix/index.go @@ -0,0 +1,22 @@ +package unix + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("unix") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/unix/init.go b/internal/web/actions/default/servers/server/settings/unix/init.go new file mode 100644 index 00000000..41458a4c --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/unix/init.go @@ -0,0 +1,18 @@ +package unix + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/unix"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/waf/index.go b/internal/web/actions/default/servers/server/settings/waf/index.go new file mode 100644 index 00000000..4f57a2c7 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/waf/index.go @@ -0,0 +1,22 @@ +package waf + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("waf") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/waf/init.go b/internal/web/actions/default/servers/server/settings/waf/init.go new file mode 100644 index 00000000..8c295155 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/waf/init.go @@ -0,0 +1,18 @@ +package waf + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/waf"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/settings/web/index.go b/internal/web/actions/default/servers/server/settings/web/index.go new file mode 100644 index 00000000..aab20125 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/web/index.go @@ -0,0 +1,22 @@ +package web + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "setting", "index") + this.SecondMenu("web") +} + +func (this *IndexAction) RunGet(params struct { + ServerId int64 +}) { + // TODO + + this.Show() +} diff --git a/internal/web/actions/default/servers/server/settings/web/init.go b/internal/web/actions/default/servers/server/settings/web/init.go new file mode 100644 index 00000000..5371b122 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/web/init.go @@ -0,0 +1,18 @@ +package web + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/serverutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(serverutils.NewServerHelper()). + Prefix("/servers/server/settings/web"). + Get("", new(IndexAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/servers/server/stat/index.go b/internal/web/actions/default/servers/server/stat/index.go index 8fe1e2b5..dcfe054e 100644 --- a/internal/web/actions/default/servers/server/stat/index.go +++ b/internal/web/actions/default/servers/server/stat/index.go @@ -8,6 +8,7 @@ type IndexAction struct { func (this *IndexAction) Init() { this.Nav("", "stat", "") + this.SecondMenu("index") } func (this *IndexAction) RunGet(params struct{}) { diff --git a/internal/web/actions/default/servers/serverutils/server_helper.go b/internal/web/actions/default/servers/serverutils/server_helper.go index d5ccd97a..e3ef8678 100644 --- a/internal/web/actions/default/servers/serverutils/server_helper.go +++ b/internal/web/actions/default/servers/serverutils/server_helper.go @@ -83,18 +83,52 @@ func (this *ServerHelper) createLeftMenu(action *actions.ActionObject) { // 左侧操作子菜单 switch types.String(mainTab) { case "board": - // TODO + action.Data["leftMenuItems"] = this.createBoardMenu(types.String(secondMenuItem), serverIdString, serverConfig) case "log": - // TODO + action.Data["leftMenuItems"] = this.createLogMenu(types.String(secondMenuItem), serverIdString, serverConfig) case "stat": - // TODO + action.Data["leftMenuItems"] = this.createStatMenu(types.String(secondMenuItem), serverIdString, serverConfig) case "setting": action.Data["leftMenuItems"] = this.createSettingsMenu(types.String(secondMenuItem), serverIdString, serverConfig) case "delete": - // TODO + action.Data["leftMenuItems"] = this.createDeleteMenu(types.String(secondMenuItem), serverIdString, serverConfig) } } +// 看板菜单 +func (this *ServerHelper) createBoardMenu(secondMenuItem string, serverIdString string, serverConfig *serverconfigs.ServerConfig) []maps.Map { + menuItems := []maps.Map{} + menuItems = append(menuItems, maps.Map{ + "name": "看板", + "url": "/servers/server/board?serverId=" + serverIdString, + "isActive": secondMenuItem == "index", + }) + return menuItems +} + +// 日志菜单 +func (this *ServerHelper) createLogMenu(secondMenuItem string, serverIdString string, serverConfig *serverconfigs.ServerConfig) []maps.Map { + menuItems := []maps.Map{} + menuItems = append(menuItems, maps.Map{ + "name": "实时", + "url": "/servers/server/log?serverId=" + serverIdString, + "isActive": secondMenuItem == "index", + }) + return menuItems +} + +// 统计菜单 +func (this *ServerHelper) createStatMenu(secondMenuItem string, serverIdString string, serverConfig *serverconfigs.ServerConfig) []maps.Map { + menuItems := []maps.Map{} + menuItems = append(menuItems, maps.Map{ + "name": "统计", + "url": "/servers/server/stat?serverId=" + serverIdString, + "isActive": secondMenuItem == "index", + }) + return menuItems +} + +// 设置菜单 func (this *ServerHelper) createSettingsMenu(secondMenuItem string, serverIdString string, serverConfig *serverconfigs.ServerConfig) (items []maps.Map) { menuItems := []maps.Map{ { @@ -108,105 +142,122 @@ func (this *ServerHelper) createSettingsMenu(secondMenuItem string, serverIdStri if serverConfig.IsHTTP() { menuItems = append(menuItems, maps.Map{ "name": "HTTP", - "url": "/servers/server/http?serverId=" + serverIdString, + "url": "/servers/server/settings/http?serverId=" + serverIdString, "isActive": secondMenuItem == "http", }) menuItems = append(menuItems, maps.Map{ "name": "HTTPS", - "url": "/servers/server/https?serverId=" + serverIdString, + "url": "/servers/server/settings/https?serverId=" + serverIdString, "isActive": secondMenuItem == "https", }) menuItems = append(menuItems, maps.Map{ "name": "Web设置", - "url": "/servers/server/web?serverId=" + serverIdString, + "url": "/servers/server/settings/web?serverId=" + serverIdString, "isActive": secondMenuItem == "web", }) - menuItems = append(menuItems, maps.Map{ - "name": "字符集", - "url": "/servers/server/charset?serverId=" + serverIdString, - "isActive": secondMenuItem == "charset", - }) - - menuItems = append(menuItems, maps.Map{ - "name": "访问日志", - "url": "/servers/server/accessLog?serverId=" + serverIdString, - "isActive": secondMenuItem == "accessLog", - }) - - menuItems = append(menuItems, maps.Map{ - "name": "统计", - "url": "/servers/server/stat?serverId=" + serverIdString, - "isActive": secondMenuItem == "stat", - }) - - menuItems = append(menuItems, maps.Map{ - "name": "Gzip压缩", - "url": "/servers/server/gzip?serverId=" + serverIdString, - "isActive": secondMenuItem == "gzip", - }) - - menuItems = append(menuItems, maps.Map{ - "name": "特殊页面", - "url": "/servers/server/pages?serverId=" + serverIdString, - "isActive": secondMenuItem == "pages", - }) - - menuItems = append(menuItems, maps.Map{ - "name": "HTTP Header", - "url": "/servers/server/headers?serverId=" + serverIdString, - "isActive": secondMenuItem == "header", - }) - menuItems = append(menuItems, maps.Map{ "name": "反向代理", - "url": "/servers/server/reverseProxy?serverId=" + serverIdString, + "url": "/servers/server/settings/reverseProxy?serverId=" + serverIdString, "isActive": secondMenuItem == "reverseProxy", }) menuItems = append(menuItems, maps.Map{ "name": "路径规则", - "url": "/servers/server/locations?serverId=" + serverIdString, + "url": "/servers/server/settings/locations?serverId=" + serverIdString, "isActive": secondMenuItem == "locations", }) menuItems = append(menuItems, maps.Map{ "name": "访问控制", - "url": "/servers/server/access?serverId=" + serverIdString, + "url": "/servers/server/settings/access?serverId=" + serverIdString, "isActive": secondMenuItem == "access", }) menuItems = append(menuItems, maps.Map{ "name": "WAF", - "url": "/servers/server/waf?serverId=" + serverIdString, + "url": "/servers/server/settings/waf?serverId=" + serverIdString, "isActive": secondMenuItem == "waf", }) menuItems = append(menuItems, maps.Map{ "name": "缓存", - "url": "/servers/server/cache?serverId=" + serverIdString, + "url": "/servers/server/settings/cache?serverId=" + serverIdString, "isActive": secondMenuItem == "cache", }) + + menuItems = append(menuItems, maps.Map{ + "name": "-", + "url": "", + "isActive": false, + }) + + menuItems = append(menuItems, maps.Map{ + "name": "字符集", + "url": "/servers/server/settings/charset?serverId=" + serverIdString, + "isActive": secondMenuItem == "charset", + }) + + menuItems = append(menuItems, maps.Map{ + "name": "访问日志", + "url": "/servers/server/settings/accessLog?serverId=" + serverIdString, + "isActive": secondMenuItem == "accessLog", + }) + + menuItems = append(menuItems, maps.Map{ + "name": "统计", + "url": "/servers/server/settings/stat?serverId=" + serverIdString, + "isActive": secondMenuItem == "stat", + }) + + menuItems = append(menuItems, maps.Map{ + "name": "Gzip压缩", + "url": "/servers/server/settings/gzip?serverId=" + serverIdString, + "isActive": secondMenuItem == "gzip", + }) + + menuItems = append(menuItems, maps.Map{ + "name": "特殊页面", + "url": "/servers/server/settings/pages?serverId=" + serverIdString, + "isActive": secondMenuItem == "pages", + }) + + menuItems = append(menuItems, maps.Map{ + "name": "HTTP Header", + "url": "/servers/server/settings/headers?serverId=" + serverIdString, + "isActive": secondMenuItem == "header", + }) } else if serverConfig.IsTCP() { menuItems = append(menuItems, maps.Map{ "name": "TCP", - "url": "/servers/server/tcp?serverId=" + serverIdString, + "url": "/servers/server/settings/tcp?serverId=" + serverIdString, "isActive": secondMenuItem == "tcp", }) } else if serverConfig.IsUnix() { menuItems = append(menuItems, maps.Map{ "name": "Unix", - "url": "/servers/server/unix?serverId=" + serverIdString, + "url": "/servers/server/settings/unix?serverId=" + serverIdString, "isActive": secondMenuItem == "unix", }) } else if serverConfig.IsUDP() { menuItems = append(menuItems, maps.Map{ "name": "UDP", - "url": "/servers/server/udp?serverId=" + serverIdString, + "url": "/servers/server/settings/udp?serverId=" + serverIdString, "isActive": secondMenuItem == "udp", }) } return menuItems } + +// 删除菜单 +func (this *ServerHelper) createDeleteMenu(secondMenuItem string, serverIdString string, serverConfig *serverconfigs.ServerConfig) []maps.Map { + menuItems := []maps.Map{} + menuItems = append(menuItems, maps.Map{ + "name": "删除", + "url": "/servers/server/delete?serverId=" + serverIdString, + "isActive": secondMenuItem == "index", + }) + return menuItems +} diff --git a/internal/web/import.go b/internal/web/import.go index f794c4d4..bed432d9 100644 --- a/internal/web/import.go +++ b/internal/web/import.go @@ -7,12 +7,29 @@ import ( _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/logout" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/board" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/delete" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/log" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/access" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/accessLog" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/cache" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/charset" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/gzip" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/headers" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/http" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/https" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/locations" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/pages" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/reverseProxy" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/stat" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/tcp" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/udp" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/unix" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/waf" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings/web" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/stat" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ui" diff --git a/web/views/@default/nodes/create.html b/web/views/@default/nodes/create.html index 2e43d6aa..cf0973f0 100644 --- a/web/views/@default/nodes/create.html +++ b/web/views/@default/nodes/create.html @@ -13,10 +13,21 @@
比如22。
+常见的比如22。
添加已经绑定的IP地址,仅做记录用。
+暂未开通此功能。
\ No newline at end of file +此功能暂未开放,敬请期待。
\ No newline at end of file