diff --git a/services/provider/pb/provider.pb.go b/services/provider/pb/provider.pb.go index 1428e78e28..4aca6884b6 100644 --- a/services/provider/pb/provider.pb.go +++ b/services/provider/pb/provider.pb.go @@ -1015,6 +1015,386 @@ func (x *ReportStatusResponse) GetDesiredConfigHash() string { return "" } +// OnboardStorageClusterPeerRequest holds the required information to onboard to remote StorageCluster +type OnboardStorageClusterPeerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // onboardingTicket authenticates the StorageClusterPeer + OnboardingTicket string `protobuf:"bytes,1,opt,name=onboardingTicket,proto3" json:"onboardingTicket,omitempty"` + // storageClusterPeerUID is the k8s UID of the StorageClusterPeer on local StorageCluster + StorageClusterPeerUID string `protobuf:"bytes,2,opt,name=storageClusterPeerUID,proto3" json:"storageClusterPeerUID,omitempty"` +} + +func (x *OnboardStorageClusterPeerRequest) Reset() { + *x = OnboardStorageClusterPeerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnboardStorageClusterPeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnboardStorageClusterPeerRequest) ProtoMessage() {} + +func (x *OnboardStorageClusterPeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_provider_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnboardStorageClusterPeerRequest.ProtoReflect.Descriptor instead. +func (*OnboardStorageClusterPeerRequest) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{17} +} + +func (x *OnboardStorageClusterPeerRequest) GetOnboardingTicket() string { + if x != nil { + return x.OnboardingTicket + } + return "" +} + +func (x *OnboardStorageClusterPeerRequest) GetStorageClusterPeerUID() string { + if x != nil { + return x.StorageClusterPeerUID + } + return "" +} + +// OnboardStorageClusterPeerResponse holds the response for OnboardStorageClusterPeer API request +type OnboardStorageClusterPeerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnboardStorageClusterPeerResponse) Reset() { + *x = OnboardStorageClusterPeerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnboardStorageClusterPeerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnboardStorageClusterPeerResponse) ProtoMessage() {} + +func (x *OnboardStorageClusterPeerResponse) ProtoReflect() protoreflect.Message { + mi := &file_provider_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnboardStorageClusterPeerResponse.ProtoReflect.Descriptor instead. +func (*OnboardStorageClusterPeerResponse) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{18} +} + +// OffboardStorageClusterPeerRequest holds the required information to offboard from remote StorageCluster. +type OffboardStorageClusterPeerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // storageClusterPeerUID is the K8s UID of the StorageClusterPeer on local StorageCluster + StorageClusterPeerUID string `protobuf:"bytes,1,opt,name=storageClusterPeerUID,proto3" json:"storageClusterPeerUID,omitempty"` +} + +func (x *OffboardStorageClusterPeerRequest) Reset() { + *x = OffboardStorageClusterPeerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OffboardStorageClusterPeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OffboardStorageClusterPeerRequest) ProtoMessage() {} + +func (x *OffboardStorageClusterPeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_provider_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OffboardStorageClusterPeerRequest.ProtoReflect.Descriptor instead. +func (*OffboardStorageClusterPeerRequest) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{19} +} + +func (x *OffboardStorageClusterPeerRequest) GetStorageClusterPeerUID() string { + if x != nil { + return x.StorageClusterPeerUID + } + return "" +} + +// OffboardStorageClusterPeerResponse holds the response for the OffboardStorageClusterPeer API request +type OffboardStorageClusterPeerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OffboardStorageClusterPeerResponse) Reset() { + *x = OffboardStorageClusterPeerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OffboardStorageClusterPeerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OffboardStorageClusterPeerResponse) ProtoMessage() {} + +func (x *OffboardStorageClusterPeerResponse) ProtoReflect() protoreflect.Message { + mi := &file_provider_proto_msgTypes[20] + 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 OffboardStorageClusterPeerResponse.ProtoReflect.Descriptor instead. +func (*OffboardStorageClusterPeerResponse) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{20} +} + +// AcknowledgeOnboardingStorageClusterPeerRequest holds the information required to acknowledge the onboarding +type AcknowledgeOnboardingStorageClusterPeerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // storageClusterPeerUID is the K8s UID of the StorageClusterPeer on local StorageCluster + StorageClusterPeerUID string `protobuf:"bytes,1,opt,name=storageClusterPeerUID,proto3" json:"storageClusterPeerUID,omitempty"` +} + +func (x *AcknowledgeOnboardingStorageClusterPeerRequest) Reset() { + *x = AcknowledgeOnboardingStorageClusterPeerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeOnboardingStorageClusterPeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeOnboardingStorageClusterPeerRequest) ProtoMessage() {} + +func (x *AcknowledgeOnboardingStorageClusterPeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_provider_proto_msgTypes[21] + 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 AcknowledgeOnboardingStorageClusterPeerRequest.ProtoReflect.Descriptor instead. +func (*AcknowledgeOnboardingStorageClusterPeerRequest) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{21} +} + +func (x *AcknowledgeOnboardingStorageClusterPeerRequest) GetStorageClusterPeerUID() string { + if x != nil { + return x.StorageClusterPeerUID + } + return "" +} + +// AcknowledgeMirrorPeerOnboardingResponse holds the response for the AcknowledgeOnboardingStorageClusterPeer API request +type AcknowledgeOnboardingStorageClusterPeerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AcknowledgeOnboardingStorageClusterPeerResponse) Reset() { + *x = AcknowledgeOnboardingStorageClusterPeerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcknowledgeOnboardingStorageClusterPeerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcknowledgeOnboardingStorageClusterPeerResponse) ProtoMessage() {} + +func (x *AcknowledgeOnboardingStorageClusterPeerResponse) ProtoReflect() protoreflect.Message { + mi := &file_provider_proto_msgTypes[22] + 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 AcknowledgeOnboardingStorageClusterPeerResponse.ProtoReflect.Descriptor instead. +func (*AcknowledgeOnboardingStorageClusterPeerResponse) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{22} +} + +// MirroringInfoRequest holds the information required to get config for mirroring block pools on local StorageCluster. +type MirroringInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // storageClusterPeerUID is the K8s UID of the StorageClusterPeer on local StorageCluster + StorageClusterPeerUID string `protobuf:"bytes,1,opt,name=storageClusterPeerUID,proto3" json:"storageClusterPeerUID,omitempty"` + // BlockPoolNames is a list of BlockPools for mirroring + BlockPoolNames []string `protobuf:"bytes,2,rep,name=BlockPoolNames,proto3" json:"BlockPoolNames,omitempty"` +} + +func (x *MirroringInfoRequest) Reset() { + *x = MirroringInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MirroringInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MirroringInfoRequest) ProtoMessage() {} + +func (x *MirroringInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_provider_proto_msgTypes[23] + 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 MirroringInfoRequest.ProtoReflect.Descriptor instead. +func (*MirroringInfoRequest) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{23} +} + +func (x *MirroringInfoRequest) GetStorageClusterPeerUID() string { + if x != nil { + return x.StorageClusterPeerUID + } + return "" +} + +func (x *MirroringInfoRequest) GetBlockPoolNames() []string { + if x != nil { + return x.BlockPoolNames + } + return nil +} + +// MirroringInfoResponse holds the response for the GetMirroringInfo API request +type MirroringInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ExternalResource holds the block pool configuration data from remote StorageCluster + ExternalResource []*ExternalResource `protobuf:"bytes,1,rep,name=externalResource,proto3" json:"externalResource,omitempty"` +} + +func (x *MirroringInfoResponse) Reset() { + *x = MirroringInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MirroringInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MirroringInfoResponse) ProtoMessage() {} + +func (x *MirroringInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_provider_proto_msgTypes[24] + 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 MirroringInfoResponse.ProtoReflect.Descriptor instead. +func (*MirroringInfoResponse) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{24} +} + +func (x *MirroringInfoResponse) GetExternalResource() []*ExternalResource { + if x != nil { + return x.ExternalResource + } + return nil +} + var File_provider_proto protoreflect.FileDescriptor var file_provider_proto_rawDesc = []byte{ @@ -1141,57 +1521,130 @@ var file_provider_proto_rawDesc = []byte{ 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x32, 0x87, 0x06, - 0x0a, 0x0b, 0x4f, 0x43, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, - 0x0f, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, - 0x12, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x6e, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x2e, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, - 0x0a, 0x10, 0x4f, 0x66, 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, - 0x65, 0x72, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x66, - 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x2e, 0x4f, 0x66, 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x15, 0x41, + 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x22, 0x84, 0x01, + 0x0a, 0x20, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x6e, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, + 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x50, 0x65, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, + 0x72, 0x55, 0x49, 0x44, 0x22, 0x23, 0x0a, 0x21, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x0a, 0x21, 0x4f, 0x66, 0x66, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, + 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x50, 0x65, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, + 0x72, 0x55, 0x49, 0x44, 0x22, 0x24, 0x0a, 0x22, 0x4f, 0x66, 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x0a, 0x2e, 0x41, 0x63, + 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x15, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, + 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x55, + 0x49, 0x44, 0x22, 0x31, 0x0a, 0x2f, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, + 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x74, 0x0a, 0x14, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, + 0x15, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, + 0x65, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, + 0x55, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x6f, 0x6f, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x50, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x5f, 0x0a, 0x15, 0x4d, + 0x69, 0x72, 0x72, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x32, 0xf4, 0x09, 0x0a, + 0x0b, 0x4f, 0x43, 0x53, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x0f, + 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x12, + 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, + 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x6e, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, + 0x10, 0x4f, 0x66, 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x72, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x66, 0x66, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, + 0x4f, 0x66, 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x15, 0x41, 0x63, + 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, - 0x64, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, - 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, - 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x46, 0x75, 0x6c, 0x66, 0x69, - 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x24, - 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, - 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, - 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, - 0x12, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x64, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x3b, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, + 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, + 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x24, 0x2e, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x46, + 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x12, + 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x64, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x19, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, + 0x65, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, + 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, + 0x72, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79, + 0x0a, 0x1a, 0x4f, 0x66, 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x66, 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4f, 0x66, 0x66, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa0, 0x01, 0x0a, 0x27, 0x41, 0x63, + 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x50, 0x65, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x39, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, + 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x4d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x3b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1207,52 +1660,69 @@ func file_provider_proto_rawDescGZIP() []byte { } var file_provider_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_provider_proto_goTypes = []interface{}{ - (FulfillStorageClaimRequest_StorageType)(0), // 0: provider.FulfillStorageClaimRequest.StorageType - (*OnboardConsumerRequest)(nil), // 1: provider.OnboardConsumerRequest - (*OnboardConsumerResponse)(nil), // 2: provider.OnboardConsumerResponse - (*StorageConfigRequest)(nil), // 3: provider.StorageConfigRequest - (*ExternalResource)(nil), // 4: provider.ExternalResource - (*StorageConfigResponse)(nil), // 5: provider.StorageConfigResponse - (*OffboardConsumerRequest)(nil), // 6: provider.OffboardConsumerRequest - (*OffboardConsumerResponse)(nil), // 7: provider.OffboardConsumerResponse - (*AcknowledgeOnboardingRequest)(nil), // 8: provider.AcknowledgeOnboardingRequest - (*AcknowledgeOnboardingResponse)(nil), // 9: provider.AcknowledgeOnboardingResponse - (*FulfillStorageClaimRequest)(nil), // 10: provider.FulfillStorageClaimRequest - (*FulfillStorageClaimResponse)(nil), // 11: provider.FulfillStorageClaimResponse - (*RevokeStorageClaimRequest)(nil), // 12: provider.RevokeStorageClaimRequest - (*RevokeStorageClaimResponse)(nil), // 13: provider.RevokeStorageClaimResponse - (*StorageClaimConfigRequest)(nil), // 14: provider.StorageClaimConfigRequest - (*StorageClaimConfigResponse)(nil), // 15: provider.StorageClaimConfigResponse - (*ReportStatusRequest)(nil), // 16: provider.ReportStatusRequest - (*ReportStatusResponse)(nil), // 17: provider.ReportStatusResponse + (FulfillStorageClaimRequest_StorageType)(0), // 0: provider.FulfillStorageClaimRequest.StorageType + (*OnboardConsumerRequest)(nil), // 1: provider.OnboardConsumerRequest + (*OnboardConsumerResponse)(nil), // 2: provider.OnboardConsumerResponse + (*StorageConfigRequest)(nil), // 3: provider.StorageConfigRequest + (*ExternalResource)(nil), // 4: provider.ExternalResource + (*StorageConfigResponse)(nil), // 5: provider.StorageConfigResponse + (*OffboardConsumerRequest)(nil), // 6: provider.OffboardConsumerRequest + (*OffboardConsumerResponse)(nil), // 7: provider.OffboardConsumerResponse + (*AcknowledgeOnboardingRequest)(nil), // 8: provider.AcknowledgeOnboardingRequest + (*AcknowledgeOnboardingResponse)(nil), // 9: provider.AcknowledgeOnboardingResponse + (*FulfillStorageClaimRequest)(nil), // 10: provider.FulfillStorageClaimRequest + (*FulfillStorageClaimResponse)(nil), // 11: provider.FulfillStorageClaimResponse + (*RevokeStorageClaimRequest)(nil), // 12: provider.RevokeStorageClaimRequest + (*RevokeStorageClaimResponse)(nil), // 13: provider.RevokeStorageClaimResponse + (*StorageClaimConfigRequest)(nil), // 14: provider.StorageClaimConfigRequest + (*StorageClaimConfigResponse)(nil), // 15: provider.StorageClaimConfigResponse + (*ReportStatusRequest)(nil), // 16: provider.ReportStatusRequest + (*ReportStatusResponse)(nil), // 17: provider.ReportStatusResponse + (*OnboardStorageClusterPeerRequest)(nil), // 18: provider.OnboardStorageClusterPeerRequest + (*OnboardStorageClusterPeerResponse)(nil), // 19: provider.OnboardStorageClusterPeerResponse + (*OffboardStorageClusterPeerRequest)(nil), // 20: provider.OffboardStorageClusterPeerRequest + (*OffboardStorageClusterPeerResponse)(nil), // 21: provider.OffboardStorageClusterPeerResponse + (*AcknowledgeOnboardingStorageClusterPeerRequest)(nil), // 22: provider.AcknowledgeOnboardingStorageClusterPeerRequest + (*AcknowledgeOnboardingStorageClusterPeerResponse)(nil), // 23: provider.AcknowledgeOnboardingStorageClusterPeerResponse + (*MirroringInfoRequest)(nil), // 24: provider.MirroringInfoRequest + (*MirroringInfoResponse)(nil), // 25: provider.MirroringInfoResponse } var file_provider_proto_depIdxs = []int32{ 4, // 0: provider.StorageConfigResponse.externalResource:type_name -> provider.ExternalResource 0, // 1: provider.FulfillStorageClaimRequest.storageType:type_name -> provider.FulfillStorageClaimRequest.StorageType 4, // 2: provider.StorageClaimConfigResponse.externalResource:type_name -> provider.ExternalResource - 1, // 3: provider.OCSProvider.OnboardConsumer:input_type -> provider.OnboardConsumerRequest - 3, // 4: provider.OCSProvider.GetStorageConfig:input_type -> provider.StorageConfigRequest - 6, // 5: provider.OCSProvider.OffboardConsumer:input_type -> provider.OffboardConsumerRequest - 8, // 6: provider.OCSProvider.AcknowledgeOnboarding:input_type -> provider.AcknowledgeOnboardingRequest - 10, // 7: provider.OCSProvider.FulfillStorageClaim:input_type -> provider.FulfillStorageClaimRequest - 12, // 8: provider.OCSProvider.RevokeStorageClaim:input_type -> provider.RevokeStorageClaimRequest - 14, // 9: provider.OCSProvider.GetStorageClaimConfig:input_type -> provider.StorageClaimConfigRequest - 16, // 10: provider.OCSProvider.ReportStatus:input_type -> provider.ReportStatusRequest - 2, // 11: provider.OCSProvider.OnboardConsumer:output_type -> provider.OnboardConsumerResponse - 5, // 12: provider.OCSProvider.GetStorageConfig:output_type -> provider.StorageConfigResponse - 7, // 13: provider.OCSProvider.OffboardConsumer:output_type -> provider.OffboardConsumerResponse - 9, // 14: provider.OCSProvider.AcknowledgeOnboarding:output_type -> provider.AcknowledgeOnboardingResponse - 11, // 15: provider.OCSProvider.FulfillStorageClaim:output_type -> provider.FulfillStorageClaimResponse - 13, // 16: provider.OCSProvider.RevokeStorageClaim:output_type -> provider.RevokeStorageClaimResponse - 15, // 17: provider.OCSProvider.GetStorageClaimConfig:output_type -> provider.StorageClaimConfigResponse - 17, // 18: provider.OCSProvider.ReportStatus:output_type -> provider.ReportStatusResponse - 11, // [11:19] is the sub-list for method output_type - 3, // [3:11] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name + 4, // 3: provider.MirroringInfoResponse.externalResource:type_name -> provider.ExternalResource + 1, // 4: provider.OCSProvider.OnboardConsumer:input_type -> provider.OnboardConsumerRequest + 3, // 5: provider.OCSProvider.GetStorageConfig:input_type -> provider.StorageConfigRequest + 6, // 6: provider.OCSProvider.OffboardConsumer:input_type -> provider.OffboardConsumerRequest + 8, // 7: provider.OCSProvider.AcknowledgeOnboarding:input_type -> provider.AcknowledgeOnboardingRequest + 10, // 8: provider.OCSProvider.FulfillStorageClaim:input_type -> provider.FulfillStorageClaimRequest + 12, // 9: provider.OCSProvider.RevokeStorageClaim:input_type -> provider.RevokeStorageClaimRequest + 14, // 10: provider.OCSProvider.GetStorageClaimConfig:input_type -> provider.StorageClaimConfigRequest + 16, // 11: provider.OCSProvider.ReportStatus:input_type -> provider.ReportStatusRequest + 18, // 12: provider.OCSProvider.OnboardStorageClusterPeer:input_type -> provider.OnboardStorageClusterPeerRequest + 20, // 13: provider.OCSProvider.OffboardStorageClusterPeer:input_type -> provider.OffboardStorageClusterPeerRequest + 22, // 14: provider.OCSProvider.AcknowledgeOnboardingStorageClusterPeer:input_type -> provider.AcknowledgeOnboardingStorageClusterPeerRequest + 24, // 15: provider.OCSProvider.GetMirroringInfo:input_type -> provider.MirroringInfoRequest + 2, // 16: provider.OCSProvider.OnboardConsumer:output_type -> provider.OnboardConsumerResponse + 5, // 17: provider.OCSProvider.GetStorageConfig:output_type -> provider.StorageConfigResponse + 7, // 18: provider.OCSProvider.OffboardConsumer:output_type -> provider.OffboardConsumerResponse + 9, // 19: provider.OCSProvider.AcknowledgeOnboarding:output_type -> provider.AcknowledgeOnboardingResponse + 11, // 20: provider.OCSProvider.FulfillStorageClaim:output_type -> provider.FulfillStorageClaimResponse + 13, // 21: provider.OCSProvider.RevokeStorageClaim:output_type -> provider.RevokeStorageClaimResponse + 15, // 22: provider.OCSProvider.GetStorageClaimConfig:output_type -> provider.StorageClaimConfigResponse + 17, // 23: provider.OCSProvider.ReportStatus:output_type -> provider.ReportStatusResponse + 19, // 24: provider.OCSProvider.OnboardStorageClusterPeer:output_type -> provider.OnboardStorageClusterPeerResponse + 21, // 25: provider.OCSProvider.OffboardStorageClusterPeer:output_type -> provider.OffboardStorageClusterPeerResponse + 23, // 26: provider.OCSProvider.AcknowledgeOnboardingStorageClusterPeer:output_type -> provider.AcknowledgeOnboardingStorageClusterPeerResponse + 25, // 27: provider.OCSProvider.GetMirroringInfo:output_type -> provider.MirroringInfoResponse + 16, // [16:28] is the sub-list for method output_type + 4, // [4:16] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_provider_proto_init() } @@ -1465,6 +1935,102 @@ func file_provider_proto_init() { return nil } } + file_provider_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnboardStorageClusterPeerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_provider_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnboardStorageClusterPeerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_provider_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OffboardStorageClusterPeerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_provider_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OffboardStorageClusterPeerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_provider_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeOnboardingStorageClusterPeerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_provider_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcknowledgeOnboardingStorageClusterPeerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_provider_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MirroringInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_provider_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MirroringInfoResponse); 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{ @@ -1472,7 +2038,7 @@ func file_provider_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_provider_proto_rawDesc, NumEnums: 1, - NumMessages: 17, + NumMessages: 25, NumExtensions: 0, NumServices: 1, }, diff --git a/services/provider/pb/provider_grpc.pb.go b/services/provider/pb/provider_grpc.pb.go index 64c45e2b32..9da50f0eb6 100644 --- a/services/provider/pb/provider_grpc.pb.go +++ b/services/provider/pb/provider_grpc.pb.go @@ -37,6 +37,14 @@ type OCSProviderClient interface { // specific resources. GetStorageClaimConfig(ctx context.Context, in *StorageClaimConfigRequest, opts ...grpc.CallOption) (*StorageClaimConfigResponse, error) ReportStatus(ctx context.Context, in *ReportStatusRequest, opts ...grpc.CallOption) (*ReportStatusResponse, error) + // OnboardStorageClusterPeer RPC call to onboard the StorageClusterPeer to the remote StorageCluster + OnboardStorageClusterPeer(ctx context.Context, in *OnboardStorageClusterPeerRequest, opts ...grpc.CallOption) (*OnboardStorageClusterPeerResponse, error) + // OffboardStorageClusterPeer RPC call to offboard the StorageClusterPeer from the remote StorageCluster + OffboardStorageClusterPeer(ctx context.Context, in *OffboardStorageClusterPeerRequest, opts ...grpc.CallOption) (*OffboardStorageClusterPeerResponse, error) + // AcknowledgeOnboardingStorageClusterPeer RPC call acknowledge the StorageClusterPeer Onboarding + AcknowledgeOnboardingStorageClusterPeer(ctx context.Context, in *AcknowledgeOnboardingStorageClusterPeerRequest, opts ...grpc.CallOption) (*AcknowledgeOnboardingStorageClusterPeerResponse, error) + // GetMirroringInfo RPC call to get the mirroring info for connecting block pools from local to remote StorageCluster + GetMirroringInfo(ctx context.Context, in *MirroringInfoRequest, opts ...grpc.CallOption) (*MirroringInfoResponse, error) } type oCSProviderClient struct { @@ -119,6 +127,42 @@ func (c *oCSProviderClient) ReportStatus(ctx context.Context, in *ReportStatusRe return out, nil } +func (c *oCSProviderClient) OnboardStorageClusterPeer(ctx context.Context, in *OnboardStorageClusterPeerRequest, opts ...grpc.CallOption) (*OnboardStorageClusterPeerResponse, error) { + out := new(OnboardStorageClusterPeerResponse) + err := c.cc.Invoke(ctx, "/provider.OCSProvider/OnboardStorageClusterPeer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *oCSProviderClient) OffboardStorageClusterPeer(ctx context.Context, in *OffboardStorageClusterPeerRequest, opts ...grpc.CallOption) (*OffboardStorageClusterPeerResponse, error) { + out := new(OffboardStorageClusterPeerResponse) + err := c.cc.Invoke(ctx, "/provider.OCSProvider/OffboardStorageClusterPeer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *oCSProviderClient) AcknowledgeOnboardingStorageClusterPeer(ctx context.Context, in *AcknowledgeOnboardingStorageClusterPeerRequest, opts ...grpc.CallOption) (*AcknowledgeOnboardingStorageClusterPeerResponse, error) { + out := new(AcknowledgeOnboardingStorageClusterPeerResponse) + err := c.cc.Invoke(ctx, "/provider.OCSProvider/AcknowledgeOnboardingStorageClusterPeer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *oCSProviderClient) GetMirroringInfo(ctx context.Context, in *MirroringInfoRequest, opts ...grpc.CallOption) (*MirroringInfoResponse, error) { + out := new(MirroringInfoResponse) + err := c.cc.Invoke(ctx, "/provider.OCSProvider/GetMirroringInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // OCSProviderServer is the server API for OCSProvider service. // All implementations must embed UnimplementedOCSProviderServer // for forward compatibility @@ -142,6 +186,14 @@ type OCSProviderServer interface { // specific resources. GetStorageClaimConfig(context.Context, *StorageClaimConfigRequest) (*StorageClaimConfigResponse, error) ReportStatus(context.Context, *ReportStatusRequest) (*ReportStatusResponse, error) + // OnboardStorageClusterPeer RPC call to onboard the StorageClusterPeer to the remote StorageCluster + OnboardStorageClusterPeer(context.Context, *OnboardStorageClusterPeerRequest) (*OnboardStorageClusterPeerResponse, error) + // OffboardStorageClusterPeer RPC call to offboard the StorageClusterPeer from the remote StorageCluster + OffboardStorageClusterPeer(context.Context, *OffboardStorageClusterPeerRequest) (*OffboardStorageClusterPeerResponse, error) + // AcknowledgeOnboardingStorageClusterPeer RPC call acknowledge the StorageClusterPeer Onboarding + AcknowledgeOnboardingStorageClusterPeer(context.Context, *AcknowledgeOnboardingStorageClusterPeerRequest) (*AcknowledgeOnboardingStorageClusterPeerResponse, error) + // GetMirroringInfo RPC call to get the mirroring info for connecting block pools from local to remote StorageCluster + GetMirroringInfo(context.Context, *MirroringInfoRequest) (*MirroringInfoResponse, error) mustEmbedUnimplementedOCSProviderServer() } @@ -173,6 +225,18 @@ func (UnimplementedOCSProviderServer) GetStorageClaimConfig(context.Context, *St func (UnimplementedOCSProviderServer) ReportStatus(context.Context, *ReportStatusRequest) (*ReportStatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReportStatus not implemented") } +func (UnimplementedOCSProviderServer) OnboardStorageClusterPeer(context.Context, *OnboardStorageClusterPeerRequest) (*OnboardStorageClusterPeerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OnboardStorageClusterPeer not implemented") +} +func (UnimplementedOCSProviderServer) OffboardStorageClusterPeer(context.Context, *OffboardStorageClusterPeerRequest) (*OffboardStorageClusterPeerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OffboardStorageClusterPeer not implemented") +} +func (UnimplementedOCSProviderServer) AcknowledgeOnboardingStorageClusterPeer(context.Context, *AcknowledgeOnboardingStorageClusterPeerRequest) (*AcknowledgeOnboardingStorageClusterPeerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AcknowledgeOnboardingStorageClusterPeer not implemented") +} +func (UnimplementedOCSProviderServer) GetMirroringInfo(context.Context, *MirroringInfoRequest) (*MirroringInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMirroringInfo not implemented") +} func (UnimplementedOCSProviderServer) mustEmbedUnimplementedOCSProviderServer() {} // UnsafeOCSProviderServer may be embedded to opt out of forward compatibility for this service. @@ -330,6 +394,78 @@ func _OCSProvider_ReportStatus_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _OCSProvider_OnboardStorageClusterPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OnboardStorageClusterPeerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OCSProviderServer).OnboardStorageClusterPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/provider.OCSProvider/OnboardStorageClusterPeer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OCSProviderServer).OnboardStorageClusterPeer(ctx, req.(*OnboardStorageClusterPeerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OCSProvider_OffboardStorageClusterPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OffboardStorageClusterPeerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OCSProviderServer).OffboardStorageClusterPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/provider.OCSProvider/OffboardStorageClusterPeer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OCSProviderServer).OffboardStorageClusterPeer(ctx, req.(*OffboardStorageClusterPeerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OCSProvider_AcknowledgeOnboardingStorageClusterPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AcknowledgeOnboardingStorageClusterPeerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OCSProviderServer).AcknowledgeOnboardingStorageClusterPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/provider.OCSProvider/AcknowledgeOnboardingStorageClusterPeer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OCSProviderServer).AcknowledgeOnboardingStorageClusterPeer(ctx, req.(*AcknowledgeOnboardingStorageClusterPeerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OCSProvider_GetMirroringInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MirroringInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OCSProviderServer).GetMirroringInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/provider.OCSProvider/GetMirroringInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OCSProviderServer).GetMirroringInfo(ctx, req.(*MirroringInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + // OCSProvider_ServiceDesc is the grpc.ServiceDesc for OCSProvider service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -369,6 +505,22 @@ var OCSProvider_ServiceDesc = grpc.ServiceDesc{ MethodName: "ReportStatus", Handler: _OCSProvider_ReportStatus_Handler, }, + { + MethodName: "OnboardStorageClusterPeer", + Handler: _OCSProvider_OnboardStorageClusterPeer_Handler, + }, + { + MethodName: "OffboardStorageClusterPeer", + Handler: _OCSProvider_OffboardStorageClusterPeer_Handler, + }, + { + MethodName: "AcknowledgeOnboardingStorageClusterPeer", + Handler: _OCSProvider_AcknowledgeOnboardingStorageClusterPeer_Handler, + }, + { + MethodName: "GetMirroringInfo", + Handler: _OCSProvider_GetMirroringInfo_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "provider.proto",