From 79d16feac5e051fb430cfbef5894c72b4d2fc76f Mon Sep 17 00:00:00 2001 From: Rewant Soni Date: Thu, 24 Oct 2024 20:17:04 +0530 Subject: [PATCH] controllers: new controller for maintenance mode Signed-off-by: Rewant Soni --- cmd/main.go | 12 + go.mod | 3 +- go.sum | 4 +- .../controller/maintenancemode_controller.go | 207 +++++ .../controller/storageclaim_controller.go | 8 +- .../controller/storageclient_controller.go | 19 +- .../services/provider/api/v4/client/client.go | 62 ++ .../services/provider/api/v4/provider.pb.go | 808 +++++++++++++++--- .../provider/api/v4/provider_grpc.pb.go | 146 ++++ vendor/modules.txt | 5 +- 10 files changed, 1164 insertions(+), 110 deletions(-) create mode 100644 internal/controller/maintenancemode_controller.go diff --git a/cmd/main.go b/cmd/main.go index f9f2d91df..f4b4b458c 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -174,6 +174,7 @@ func main() { Client: mgr.GetClient(), Scheme: mgr.GetScheme(), OperatorNamespace: utils.GetOperatorNamespace(), + AvailableCrds: availCrds, }).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "StorageClient") os.Exit(1) @@ -208,6 +209,17 @@ func main() { os.Exit(1) } + if availCrds[controller.MaintenanceModeCRDName] { + if err = (&controller.MaintenanceModeReconciler{ + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + OperatorNamespace: utils.GetOperatorNamespace(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "MaintenanceMode") + os.Exit(1) + } + } + setupLog.Info("starting manager") if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil { setupLog.Error(err, "problem running manager") diff --git a/go.mod b/go.mod index 255495ebd..c9b6bc232 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.22.5 replace ( github.com/portworx/sched-ops => github.com/portworx/sched-ops v0.20.4-openstorage-rc3 // required by Rook v1.12 github.com/red-hat-storage/ocs-client-operator/api => ./api + github.com/red-hat-storage/ocs-operator/services/provider/api/v4 => github.com/rewantsoni/ocs-operator/services/provider/api/v4 v4.0.0-20241107075222-75593ba63c24 vbom.ml/util => github.com/fvbommel/util v0.0.0-20180919145318-efcd4e0f9787 ) @@ -26,7 +27,7 @@ require ( github.com/openshift/api v0.0.0-20240828125535-01b3675ba7b3 github.com/operator-framework/api v0.27.0 github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.76.0 - github.com/ramendr/ramen/api v0.0.0-20241001141243-29d6f22ad237 + github.com/ramendr/ramen/api v0.0.0-20241014164256-3929be6ce297 github.com/red-hat-storage/ocs-client-operator/api v0.0.0-00010101000000-000000000000 github.com/red-hat-storage/ocs-operator/services/provider/api/v4 v4.0.0-20241015071140-98c8184c6eec github.com/stretchr/testify v1.9.0 diff --git a/go.sum b/go.sum index de6b9f9c7..3024dc461 100644 --- a/go.sum +++ b/go.sum @@ -325,8 +325,8 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/ramendr/ramen/api v0.0.0-20241001141243-29d6f22ad237 h1:ig6ePD0yopC5Qi5BRmhsIsKaOkdsGXTSmG3HTYIpquo= github.com/ramendr/ramen/api v0.0.0-20241001141243-29d6f22ad237/go.mod h1:nO6VM/+PEhcPGyFIQJdhY6ip822cA61PAy/s6IjenAA= -github.com/red-hat-storage/ocs-operator/services/provider/api/v4 v4.0.0-20241015071140-98c8184c6eec h1:M64BdwKMV3jKxcRsZiaGbRKsvlbhRGVZgcb4V/MFeWk= -github.com/red-hat-storage/ocs-operator/services/provider/api/v4 v4.0.0-20241015071140-98c8184c6eec/go.mod h1:t9GJk69TGXABBF8fFPB+ImpbA9mJyRS86wW6+Qn8xHo= +github.com/rewantsoni/ocs-operator/services/provider/api/v4 v4.0.0-20241107075222-75593ba63c24 h1:xZa3YL6iwcZsLHDfTVJT5PvXa8pv/u8buks/XuY6CEg= +github.com/rewantsoni/ocs-operator/services/provider/api/v4 v4.0.0-20241107075222-75593ba63c24/go.mod h1:t9GJk69TGXABBF8fFPB+ImpbA9mJyRS86wW6+Qn8xHo= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= diff --git a/internal/controller/maintenancemode_controller.go b/internal/controller/maintenancemode_controller.go new file mode 100644 index 000000000..fdf86a291 --- /dev/null +++ b/internal/controller/maintenancemode_controller.go @@ -0,0 +1,207 @@ +package controller + +import ( + "context" + "fmt" + "github.com/go-logr/logr" + ramenv1alpha1 "github.com/ramendr/ramen/api/v1alpha1" + "github.com/red-hat-storage/ocs-client-operator/api/v1alpha1" + providerclient "github.com/red-hat-storage/ocs-operator/services/provider/api/v4/client" + storagev1 "k8s.io/api/storage/v1" + kerrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/builder" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" + "sigs.k8s.io/controller-runtime/pkg/handler" + "sigs.k8s.io/controller-runtime/pkg/log" + "sigs.k8s.io/controller-runtime/pkg/predicate" + "sigs.k8s.io/controller-runtime/pkg/reconcile" + "time" +) + +const ( + maintenanceModeFinalizer = "ocs-client-operator.ocs.openshift.io/maintenance-mode" + ramenReplicationIdLabel = "ramendr.openshift.io/replicationID" + MaintenanceModeCRDName = "maintenancemodes.ramendr.openshift.io" +) + +// MaintenanceModeReconciler reconciles a ClusterVersion object +type MaintenanceModeReconciler struct { + client.Client + OperatorNamespace string + Scheme *runtime.Scheme + + log logr.Logger + ctx context.Context + maintenanceMode *ramenv1alpha1.MaintenanceMode + storageClass *storagev1.StorageClass + storageClient *v1alpha1.StorageClient +} + +// SetupWithManager sets up the controller with the Manager. +func (r *MaintenanceModeReconciler) SetupWithManager(mgr ctrl.Manager) error { + generationChangePredicate := predicate.GenerationChangedPredicate{} + bldr := ctrl.NewControllerManagedBy(mgr). + For(&ramenv1alpha1.MaintenanceMode{}, builder.WithPredicates(generationChangePredicate)). + Watches(&storagev1.StorageClass{}, &handler.EnqueueRequestForObject{}). + Watches(&v1alpha1.StorageClient{}, &handler.EnqueueRequestForObject{}) + + return bldr.Complete(r) +} + +//+kubebuilder:rbac:groups=ramendr.openshift.io,resources=maintenancemodes,verbs=get;list;update;create;watch;delete +//+kubebuilder:rbac:groups=ramendr.openshift.io,resources=maintenancemodes/status,verbs=get;update;patch +//+kubebuilder:rbac:groups=ramendr.openshift.io,resources=maintenancemodes/finalizers,verbs=update +//+kubebuilder:rbac:groups=ocs.openshift.io,resources=storageclients,verbs=get;list;watch +//+kubebuilder:rbac:groups=storage.k8s.io,resources=storageclasses,verbs=get;list;watch + +func (r *MaintenanceModeReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + r.ctx = ctx + r.log = log.FromContext(ctx, "MaintenanceMode", req) + r.log.Info("Reconciling MaintenanceMode") + + r.maintenanceMode = &ramenv1alpha1.MaintenanceMode{} + r.maintenanceMode.Name = req.Name + if err := r.get(r.maintenanceMode); err != nil { + if kerrors.IsNotFound(err) { + r.log.Info("Maintenance Mode resource not found. Ignoring since object might be deleted.") + return reconcile.Result{}, nil + } + r.log.Error(err, "failed to get the Maintenance Mode") + return reconcile.Result{}, err + } + + err := r.findStorageClassForMaintenanceMode() + if err != nil { + return ctrl.Result{}, fmt.Errorf("failed to find storageClass for maintenance mode: %v ", err) + } + + // If no storageClass for the targetID found, exit + if r.storageClass == nil { + r.log.Info("no storage class found for the maintenance mode") + return reconcile.Result{}, nil + } + + err = r.findStorageClientLinkedWithStorageClass() + if err != nil { + return ctrl.Result{}, fmt.Errorf("failed to find storageClient for maintenance mode: %v ", err) + } + + providerClient, err := providerclient.NewProviderClient( + r.ctx, + r.storageClient.Spec.StorageProviderEndpoint, + 10*time.Second, + ) + if err != nil { + return reconcile.Result{}, fmt.Errorf("failed to create provider client with endpoint %v: %v", r.storageClient.Spec.StorageProviderEndpoint, err) + } + // Close client-side connections. + defer providerClient.Close() + + if r.maintenanceMode.GetDeletionTimestamp().IsZero() { + + //ensure finalizer + if controllerutil.AddFinalizer(r.maintenanceMode, maintenanceModeFinalizer) { + r.log.Info("finalizer missing on the Maintenance Mode resource, adding...") + if err := r.Client.Update(r.ctx, r.maintenanceMode); err != nil { + return ctrl.Result{}, err + } + } + + if r.maintenanceMode.Status.State != "" { + _, err := providerClient.StartMaintenanceMode(r.ctx, r.storageClient.Status.ConsumerID) + if err != nil { + return ctrl.Result{}, fmt.Errorf("failed to start maintenance mode: %v", err) + } + r.maintenanceMode.Status.State = ramenv1alpha1.MModeStateUnknown + } + response, err := providerClient.GetMaintenanceModeStatus(r.ctx, r.storageClient.Status.ConsumerID) + if err != nil { + return ctrl.Result{}, fmt.Errorf("failed to get maintenance mode status: %v", err) + } + r.maintenanceMode.Status.State = ramenv1alpha1.MModeState(response.MaintenanceStatus) + } else { + // deletion phase + if err := r.deletionPhase(providerClient); err != nil { + return ctrl.Result{}, err + } + + //remove finalizer + if controllerutil.RemoveFinalizer(r.maintenanceMode, maintenanceModeFinalizer) { + if err := r.Client.Update(r.ctx, r.maintenanceMode); err != nil { + return ctrl.Result{}, err + } + r.log.Info("finallizer removed successfully") + } + } + return ctrl.Result{}, nil +} + +func (r *MaintenanceModeReconciler) deletionPhase(providerClient *providerclient.OCSProviderClient) error { + _, err := providerClient.StopMaintenanceMode(r.ctx, r.storageClient.Status.ConsumerID) + if err != nil { + return err + } + + response, err := providerClient.GetMaintenanceModeStatus(r.ctx, r.storageClient.Status.ConsumerID) + if err != nil { + return err + } + r.maintenanceMode.Status.State = ramenv1alpha1.MModeState(response.MaintenanceStatus) + return nil +} + +func (r *MaintenanceModeReconciler) findStorageClassForMaintenanceMode() error { + storageClassList := &storagev1.StorageClassList{} + + err := r.list(storageClassList) + if err != nil { + r.log.Error(err, "unable to list storage classes") + return err + } + + for i := range storageClassList.Items { + storageClass := storageClassList.Items[i] + if storageClass.GetAnnotations()[ramenReplicationIdLabel] == r.maintenanceMode.Spec.TargetID { + r.storageClass = &storageClassList.Items[i] + return nil + } + } + return fmt.Errorf("failed to find storage class for maintenance mode %s", r.maintenanceMode.Spec.TargetID) +} + +func (r *MaintenanceModeReconciler) findStorageClientLinkedWithStorageClass() error { + r.storageClient = &v1alpha1.StorageClient{} + val, ok := r.storageClass.GetAnnotations()[storageClientAnnotation] + if !ok { + return fmt.Errorf("no storage client linked to storage class %s", r.storageClass.Name) + } + + r.storageClient.Name = val + err := r.get(r.storageClient) + if err != nil { + return fmt.Errorf("failed to get the storage client: %v", err) + } + return nil +} + +func (r *MaintenanceModeReconciler) get(obj client.Object, opts ...client.GetOption) error { + return r.Get(r.ctx, client.ObjectKeyFromObject(obj), obj, opts...) +} + +func (r *MaintenanceModeReconciler) list(obj client.ObjectList, opts ...client.ListOption) error { + return r.List(r.ctx, obj, opts...) +} + +func (r *MaintenanceModeReconciler) update(obj client.Object, opts ...client.UpdateOption) error { + return r.Update(r.ctx, obj, opts...) +} + +func (r *MaintenanceModeReconciler) delete(obj client.Object, opts ...client.DeleteOption) error { + if err := r.Delete(r.ctx, obj, opts...); err != nil && !kerrors.IsNotFound(err) { + return err + } + return nil +} diff --git a/internal/controller/storageclaim_controller.go b/internal/controller/storageclaim_controller.go index 6c3d8e479..5999c679b 100644 --- a/internal/controller/storageclaim_controller.go +++ b/internal/controller/storageclaim_controller.go @@ -53,9 +53,10 @@ import ( ) const ( - storageClaimFinalizer = "storageclaim.ocs.openshift.io" - storageClaimAnnotation = "ocs.openshift.io/storageclaim" - keyRotationAnnotation = "keyrotation.csiaddons.openshift.io/schedule" + storageClaimFinalizer = "storageclaim.ocs.openshift.io" + storageClaimAnnotation = "ocs.openshift.io/storageclaim" + storageClientAnnotation = "ocs.openshift.io/storageclient" + keyRotationAnnotation = "keyrotation.csiaddons.openshift.io/schedule" pvClusterIDIndexName = "index:persistentVolumeClusterID" vscClusterIDIndexName = "index:volumeSnapshotContentCSIDriver" @@ -392,6 +393,7 @@ func (r *StorageClaimReconciler) reconcilePhases() (reconcile.Result, error) { storageClass = r.getCephRBDStorageClass(data) } utils.AddAnnotation(storageClass, storageClaimAnnotation, r.storageClaim.Name) + utils.AddAnnotation(storageClass, storageClientAnnotation, r.storageClient.Name) err = r.createOrReplaceStorageClass(storageClass) if err != nil { return reconcile.Result{}, fmt.Errorf("failed to create or update StorageClass: %s", err) diff --git a/internal/controller/storageclient_controller.go b/internal/controller/storageclient_controller.go index 74d1c92ab..58fc84742 100644 --- a/internal/controller/storageclient_controller.go +++ b/internal/controller/storageclient_controller.go @@ -20,6 +20,7 @@ import ( "context" "encoding/json" "fmt" + extv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "os" "strings" "time" @@ -72,12 +73,13 @@ const ( type StorageClientReconciler struct { ctx context.Context client.Client - Log klog.Logger - Scheme *runtime.Scheme + Log klog.Logger + Scheme *runtime.Scheme + AvailableCrds map[string]bool + OperatorNamespace string + recorder *utils.EventReporter storageClient *v1alpha1.StorageClient - - OperatorNamespace string } // SetupWithManager sets up the controller with the Manager. @@ -125,6 +127,15 @@ func (r *StorageClientReconciler) Reconcile(ctx context.Context, req ctrl.Reques r.Log = log.FromContext(ctx, "StorageClient", req) r.Log.Info("Reconciling StorageClient") + crd := &metav1.PartialObjectMetadata{} + crd.SetGroupVersionKind(extv1.SchemeGroupVersion.WithKind("CustomResourceDefinition")) + crd.Name = MaintenanceModeCRDName + if err := r.Client.Get(ctx, client.ObjectKeyFromObject(crd), crd); client.IgnoreNotFound(err) != nil { + r.Log.Error(err, "Failed to get CRD", "CRD", crd.Name) + return reconcile.Result{}, err + } + utils.AssertEqual(r.AvailableCrds[crd.Name], crd.UID != "", utils.ExitCodeThatShouldRestartTheProcess) + r.storageClient = &v1alpha1.StorageClient{} r.storageClient.Name = req.Name if err = r.get(r.storageClient); err != nil { diff --git a/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/client/client.go b/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/client/client.go index fe05dff2e..3e97a3cd8 100644 --- a/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/client/client.go +++ b/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/client/client.go @@ -211,3 +211,65 @@ func (cc *OCSProviderClient) ReportStatus(ctx context.Context, consumerUUID stri return cc.Client.ReportStatus(apiCtx, req) } + +func (cc *OCSProviderClient) PeerStorageCluster(ctx context.Context, onboardingToken, storageClusterUID string) (*pb.PeerStorageClusterResponse, error) { + if cc.Client == nil || cc.clientConn == nil { + return nil, fmt.Errorf("OCS client is closed") + } + + req := &pb.PeerStorageClusterRequest{ + OnboardingToken: onboardingToken, + StorageClusterUID: storageClusterUID, + } + + apiCtx, cancel := context.WithTimeout(ctx, cc.timeout) + defer cancel() + + return cc.Client.PeerStorageCluster(apiCtx, req) + +} + +func (cc *OCSProviderClient) StartMaintenanceMode(ctx context.Context, consumerUUID string) (*pb.StartMaintenanceModeResponse, error) { + if cc.Client == nil || cc.clientConn == nil { + return nil, fmt.Errorf("provider client is closed") + } + + req := &pb.StartMaintenanceModeRequest{ + StorageConsumerUUID: consumerUUID, + } + + apiCtx, cancel := context.WithTimeout(ctx, cc.timeout) + defer cancel() + + return cc.Client.StartMaintenanceMode(apiCtx, req) +} + +func (cc *OCSProviderClient) StopMaintenanceMode(ctx context.Context, consumerUUID string) (*pb.StopMaintenanceModeResponse, error) { + if cc.Client == nil || cc.clientConn == nil { + return nil, fmt.Errorf("provider client is closed") + } + + req := &pb.StopMaintenanceModeRequest{ + StorageConsumerUUID: consumerUUID, + } + + apiCtx, cancel := context.WithTimeout(ctx, cc.timeout) + defer cancel() + + return cc.Client.StopMaintenanceMode(apiCtx, req) +} + +func (cc *OCSProviderClient) GetMaintenanceModeStatus(ctx context.Context, consumerUUID string) (*pb.GetMaintenanceModeStatusResponse, error) { + if cc.Client == nil || cc.clientConn == nil { + return nil, fmt.Errorf("provider client is closed") + } + + req := &pb.GetMaintenanceModeStatusRequest{ + StorageConsumerUUID: consumerUUID, + } + + apiCtx, cancel := context.WithTimeout(ctx, cc.timeout) + defer cancel() + + return cc.Client.GetMaintenanceModeStatus(apiCtx, req) +} diff --git a/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/provider.pb.go b/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/provider.pb.go index a8d4e89ce..d26b75c7f 100644 --- a/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/provider.pb.go +++ b/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/provider.pb.go @@ -68,6 +68,58 @@ func (FulfillStorageClaimRequest_StorageType) EnumDescriptor() ([]byte, []int) { return file_provider_proto_rawDescGZIP(), []int{9, 0} } +type GetMaintenanceModeStatusResponse_MaintenanceStatus int32 + +const ( + GetMaintenanceModeStatusResponse_Unknown GetMaintenanceModeStatusResponse_MaintenanceStatus = 0 + GetMaintenanceModeStatusResponse_Error GetMaintenanceModeStatusResponse_MaintenanceStatus = 1 + GetMaintenanceModeStatusResponse_Progressing GetMaintenanceModeStatusResponse_MaintenanceStatus = 2 + GetMaintenanceModeStatusResponse_Completed GetMaintenanceModeStatusResponse_MaintenanceStatus = 3 +) + +// Enum value maps for GetMaintenanceModeStatusResponse_MaintenanceStatus. +var ( + GetMaintenanceModeStatusResponse_MaintenanceStatus_name = map[int32]string{ + 0: "Unknown", + 1: "Error", + 2: "Progressing", + 3: "Completed", + } + GetMaintenanceModeStatusResponse_MaintenanceStatus_value = map[string]int32{ + "Unknown": 0, + "Error": 1, + "Progressing": 2, + "Completed": 3, + } +) + +func (x GetMaintenanceModeStatusResponse_MaintenanceStatus) Enum() *GetMaintenanceModeStatusResponse_MaintenanceStatus { + p := new(GetMaintenanceModeStatusResponse_MaintenanceStatus) + *p = x + return p +} + +func (x GetMaintenanceModeStatusResponse_MaintenanceStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetMaintenanceModeStatusResponse_MaintenanceStatus) Descriptor() protoreflect.EnumDescriptor { + return file_provider_proto_enumTypes[1].Descriptor() +} + +func (GetMaintenanceModeStatusResponse_MaintenanceStatus) Type() protoreflect.EnumType { + return &file_provider_proto_enumTypes[1] +} + +func (x GetMaintenanceModeStatusResponse_MaintenanceStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetMaintenanceModeStatusResponse_MaintenanceStatus.Descriptor instead. +func (GetMaintenanceModeStatusResponse_MaintenanceStatus) EnumDescriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{24, 0} +} + // OnboardConsumerRequest holds the required information to validate the consumer and create StorageConsumer // resource on the StorageProvider cluster type OnboardConsumerRequest struct { @@ -1038,6 +1090,380 @@ func (x *ReportStatusResponse) GetDesiredConfigHash() string { return "" } +// PeerStorageClusterRequest holds the required information to Peer to remote StorageCluster +type PeerStorageClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // onboardingToken authenticates the StorageCluster + OnboardingToken string `protobuf:"bytes,1,opt,name=onboardingToken,proto3" json:"onboardingToken,omitempty"` + // storageClusterUID is the k8s UID of the StorageCluster in the same namespace + StorageClusterUID string `protobuf:"bytes,2,opt,name=storageClusterUID,proto3" json:"storageClusterUID,omitempty"` +} + +func (x *PeerStorageClusterRequest) Reset() { + *x = PeerStorageClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerStorageClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerStorageClusterRequest) ProtoMessage() {} + +func (x *PeerStorageClusterRequest) 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 PeerStorageClusterRequest.ProtoReflect.Descriptor instead. +func (*PeerStorageClusterRequest) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{17} +} + +func (x *PeerStorageClusterRequest) GetOnboardingToken() string { + if x != nil { + return x.OnboardingToken + } + return "" +} + +func (x *PeerStorageClusterRequest) GetStorageClusterUID() string { + if x != nil { + return x.StorageClusterUID + } + return "" +} + +// PeerStorageClusterResponse holds the response for OnboardStorageClusterPeer API request +type PeerStorageClusterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // storageClusterUID is the k8s UID of the remote StorageCluster + StorageClusterUID string `protobuf:"bytes,1,opt,name=storageClusterUID,proto3" json:"storageClusterUID,omitempty"` +} + +func (x *PeerStorageClusterResponse) Reset() { + *x = PeerStorageClusterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerStorageClusterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerStorageClusterResponse) ProtoMessage() {} + +func (x *PeerStorageClusterResponse) 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 PeerStorageClusterResponse.ProtoReflect.Descriptor instead. +func (*PeerStorageClusterResponse) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{18} +} + +func (x *PeerStorageClusterResponse) GetStorageClusterUID() string { + if x != nil { + return x.StorageClusterUID + } + return "" +} + +type StartMaintenanceModeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // K8s UID (UUID) of the consumer cluster + StorageConsumerUUID string `protobuf:"bytes,1,opt,name=storageConsumerUUID,proto3" json:"storageConsumerUUID,omitempty"` +} + +func (x *StartMaintenanceModeRequest) Reset() { + *x = StartMaintenanceModeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartMaintenanceModeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartMaintenanceModeRequest) ProtoMessage() {} + +func (x *StartMaintenanceModeRequest) 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 StartMaintenanceModeRequest.ProtoReflect.Descriptor instead. +func (*StartMaintenanceModeRequest) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{19} +} + +func (x *StartMaintenanceModeRequest) GetStorageConsumerUUID() string { + if x != nil { + return x.StorageConsumerUUID + } + return "" +} + +type StartMaintenanceModeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StartMaintenanceModeResponse) Reset() { + *x = StartMaintenanceModeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartMaintenanceModeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartMaintenanceModeResponse) ProtoMessage() {} + +func (x *StartMaintenanceModeResponse) 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 StartMaintenanceModeResponse.ProtoReflect.Descriptor instead. +func (*StartMaintenanceModeResponse) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{20} +} + +type StopMaintenanceModeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // K8s UID (UUID) of the consumer cluster + StorageConsumerUUID string `protobuf:"bytes,1,opt,name=storageConsumerUUID,proto3" json:"storageConsumerUUID,omitempty"` +} + +func (x *StopMaintenanceModeRequest) Reset() { + *x = StopMaintenanceModeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopMaintenanceModeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopMaintenanceModeRequest) ProtoMessage() {} + +func (x *StopMaintenanceModeRequest) 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 StopMaintenanceModeRequest.ProtoReflect.Descriptor instead. +func (*StopMaintenanceModeRequest) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{21} +} + +func (x *StopMaintenanceModeRequest) GetStorageConsumerUUID() string { + if x != nil { + return x.StorageConsumerUUID + } + return "" +} + +type StopMaintenanceModeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StopMaintenanceModeResponse) Reset() { + *x = StopMaintenanceModeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopMaintenanceModeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopMaintenanceModeResponse) ProtoMessage() {} + +func (x *StopMaintenanceModeResponse) 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 StopMaintenanceModeResponse.ProtoReflect.Descriptor instead. +func (*StopMaintenanceModeResponse) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{22} +} + +type GetMaintenanceModeStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // K8s UID (UUID) of the consumer cluster + StorageConsumerUUID string `protobuf:"bytes,1,opt,name=storageConsumerUUID,proto3" json:"storageConsumerUUID,omitempty"` +} + +func (x *GetMaintenanceModeStatusRequest) Reset() { + *x = GetMaintenanceModeStatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMaintenanceModeStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMaintenanceModeStatusRequest) ProtoMessage() {} + +func (x *GetMaintenanceModeStatusRequest) 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 GetMaintenanceModeStatusRequest.ProtoReflect.Descriptor instead. +func (*GetMaintenanceModeStatusRequest) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{23} +} + +func (x *GetMaintenanceModeStatusRequest) GetStorageConsumerUUID() string { + if x != nil { + return x.StorageConsumerUUID + } + return "" +} + +type GetMaintenanceModeStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MaintenanceStatus GetMaintenanceModeStatusResponse_MaintenanceStatus `protobuf:"varint,1,opt,name=maintenanceStatus,proto3,enum=provider.GetMaintenanceModeStatusResponse_MaintenanceStatus" json:"maintenanceStatus,omitempty"` +} + +func (x *GetMaintenanceModeStatusResponse) Reset() { + *x = GetMaintenanceModeStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_provider_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMaintenanceModeStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMaintenanceModeStatusResponse) ProtoMessage() {} + +func (x *GetMaintenanceModeStatusResponse) 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 GetMaintenanceModeStatusResponse.ProtoReflect.Descriptor instead. +func (*GetMaintenanceModeStatusResponse) Descriptor() ([]byte, []int) { + return file_provider_proto_rawDescGZIP(), []int{24} +} + +func (x *GetMaintenanceModeStatusResponse) GetMaintenanceStatus() GetMaintenanceModeStatusResponse_MaintenanceStatus { + if x != nil { + return x.MaintenanceStatus + } + return GetMaintenanceModeStatusResponse_Unknown +} + var File_provider_proto protoreflect.FileDescriptor var file_provider_proto_rawDesc = []byte{ @@ -1185,57 +1611,129 @@ var file_provider_proto_rawDesc = []byte{ 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, + 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x22, 0x73, 0x0a, 0x19, 0x50, 0x65, 0x65, 0x72, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x2c, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x49, 0x44, 0x22, 0x4a, 0x0a, + 0x1a, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x49, 0x44, 0x22, 0x4f, 0x0a, 0x1b, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x0a, 0x1a, 0x53, 0x74, + 0x6f, 0x70, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x74, + 0x6f, 0x70, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x0a, 0x1f, 0x47, 0x65, 0x74, + 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x55, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x55, 0x55, 0x49, 0x44, 0x22, 0xdb, + 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x11, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, + 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, + 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, + 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x11, 0x6d, 0x61, + 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x4b, 0x0a, 0x11, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0d, 0x0a, + 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x03, 0x32, 0xae, 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, 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, - 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, + 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, 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, 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, + 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, 0x61, 0x0a, 0x12, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x50, 0x65, 0x65, + 0x72, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4d, + 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4d, + 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, + 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 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, } var ( @@ -1250,57 +1748,75 @@ func file_provider_proto_rawDescGZIP() []byte { return file_provider_proto_rawDescData } -var file_provider_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_provider_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 27) 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 - nil, // 18: provider.ExternalResource.LabelsEntry - nil, // 19: provider.ExternalResource.AnnotationsEntry + (FulfillStorageClaimRequest_StorageType)(0), // 0: provider.FulfillStorageClaimRequest.StorageType + (GetMaintenanceModeStatusResponse_MaintenanceStatus)(0), // 1: provider.GetMaintenanceModeStatusResponse.MaintenanceStatus + (*OnboardConsumerRequest)(nil), // 2: provider.OnboardConsumerRequest + (*OnboardConsumerResponse)(nil), // 3: provider.OnboardConsumerResponse + (*StorageConfigRequest)(nil), // 4: provider.StorageConfigRequest + (*ExternalResource)(nil), // 5: provider.ExternalResource + (*StorageConfigResponse)(nil), // 6: provider.StorageConfigResponse + (*OffboardConsumerRequest)(nil), // 7: provider.OffboardConsumerRequest + (*OffboardConsumerResponse)(nil), // 8: provider.OffboardConsumerResponse + (*AcknowledgeOnboardingRequest)(nil), // 9: provider.AcknowledgeOnboardingRequest + (*AcknowledgeOnboardingResponse)(nil), // 10: provider.AcknowledgeOnboardingResponse + (*FulfillStorageClaimRequest)(nil), // 11: provider.FulfillStorageClaimRequest + (*FulfillStorageClaimResponse)(nil), // 12: provider.FulfillStorageClaimResponse + (*RevokeStorageClaimRequest)(nil), // 13: provider.RevokeStorageClaimRequest + (*RevokeStorageClaimResponse)(nil), // 14: provider.RevokeStorageClaimResponse + (*StorageClaimConfigRequest)(nil), // 15: provider.StorageClaimConfigRequest + (*StorageClaimConfigResponse)(nil), // 16: provider.StorageClaimConfigResponse + (*ReportStatusRequest)(nil), // 17: provider.ReportStatusRequest + (*ReportStatusResponse)(nil), // 18: provider.ReportStatusResponse + (*PeerStorageClusterRequest)(nil), // 19: provider.PeerStorageClusterRequest + (*PeerStorageClusterResponse)(nil), // 20: provider.PeerStorageClusterResponse + (*StartMaintenanceModeRequest)(nil), // 21: provider.StartMaintenanceModeRequest + (*StartMaintenanceModeResponse)(nil), // 22: provider.StartMaintenanceModeResponse + (*StopMaintenanceModeRequest)(nil), // 23: provider.StopMaintenanceModeRequest + (*StopMaintenanceModeResponse)(nil), // 24: provider.StopMaintenanceModeResponse + (*GetMaintenanceModeStatusRequest)(nil), // 25: provider.GetMaintenanceModeStatusRequest + (*GetMaintenanceModeStatusResponse)(nil), // 26: provider.GetMaintenanceModeStatusResponse + nil, // 27: provider.ExternalResource.LabelsEntry + nil, // 28: provider.ExternalResource.AnnotationsEntry } var file_provider_proto_depIdxs = []int32{ - 18, // 0: provider.ExternalResource.Labels:type_name -> provider.ExternalResource.LabelsEntry - 19, // 1: provider.ExternalResource.Annotations:type_name -> provider.ExternalResource.AnnotationsEntry - 4, // 2: provider.StorageConfigResponse.externalResource:type_name -> provider.ExternalResource + 27, // 0: provider.ExternalResource.Labels:type_name -> provider.ExternalResource.LabelsEntry + 28, // 1: provider.ExternalResource.Annotations:type_name -> provider.ExternalResource.AnnotationsEntry + 5, // 2: provider.StorageConfigResponse.externalResource:type_name -> provider.ExternalResource 0, // 3: provider.FulfillStorageClaimRequest.storageType:type_name -> provider.FulfillStorageClaimRequest.StorageType - 4, // 4: provider.StorageClaimConfigResponse.externalResource:type_name -> provider.ExternalResource - 1, // 5: provider.OCSProvider.OnboardConsumer:input_type -> provider.OnboardConsumerRequest - 3, // 6: provider.OCSProvider.GetStorageConfig:input_type -> provider.StorageConfigRequest - 6, // 7: provider.OCSProvider.OffboardConsumer:input_type -> provider.OffboardConsumerRequest - 8, // 8: provider.OCSProvider.AcknowledgeOnboarding:input_type -> provider.AcknowledgeOnboardingRequest - 10, // 9: provider.OCSProvider.FulfillStorageClaim:input_type -> provider.FulfillStorageClaimRequest - 12, // 10: provider.OCSProvider.RevokeStorageClaim:input_type -> provider.RevokeStorageClaimRequest - 14, // 11: provider.OCSProvider.GetStorageClaimConfig:input_type -> provider.StorageClaimConfigRequest - 16, // 12: provider.OCSProvider.ReportStatus:input_type -> provider.ReportStatusRequest - 2, // 13: provider.OCSProvider.OnboardConsumer:output_type -> provider.OnboardConsumerResponse - 5, // 14: provider.OCSProvider.GetStorageConfig:output_type -> provider.StorageConfigResponse - 7, // 15: provider.OCSProvider.OffboardConsumer:output_type -> provider.OffboardConsumerResponse - 9, // 16: provider.OCSProvider.AcknowledgeOnboarding:output_type -> provider.AcknowledgeOnboardingResponse - 11, // 17: provider.OCSProvider.FulfillStorageClaim:output_type -> provider.FulfillStorageClaimResponse - 13, // 18: provider.OCSProvider.RevokeStorageClaim:output_type -> provider.RevokeStorageClaimResponse - 15, // 19: provider.OCSProvider.GetStorageClaimConfig:output_type -> provider.StorageClaimConfigResponse - 17, // 20: provider.OCSProvider.ReportStatus:output_type -> provider.ReportStatusResponse - 13, // [13:21] is the sub-list for method output_type - 5, // [5:13] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 5, // 4: provider.StorageClaimConfigResponse.externalResource:type_name -> provider.ExternalResource + 1, // 5: provider.GetMaintenanceModeStatusResponse.maintenanceStatus:type_name -> provider.GetMaintenanceModeStatusResponse.MaintenanceStatus + 2, // 6: provider.OCSProvider.OnboardConsumer:input_type -> provider.OnboardConsumerRequest + 4, // 7: provider.OCSProvider.GetStorageConfig:input_type -> provider.StorageConfigRequest + 7, // 8: provider.OCSProvider.OffboardConsumer:input_type -> provider.OffboardConsumerRequest + 9, // 9: provider.OCSProvider.AcknowledgeOnboarding:input_type -> provider.AcknowledgeOnboardingRequest + 11, // 10: provider.OCSProvider.FulfillStorageClaim:input_type -> provider.FulfillStorageClaimRequest + 13, // 11: provider.OCSProvider.RevokeStorageClaim:input_type -> provider.RevokeStorageClaimRequest + 15, // 12: provider.OCSProvider.GetStorageClaimConfig:input_type -> provider.StorageClaimConfigRequest + 17, // 13: provider.OCSProvider.ReportStatus:input_type -> provider.ReportStatusRequest + 19, // 14: provider.OCSProvider.PeerStorageCluster:input_type -> provider.PeerStorageClusterRequest + 21, // 15: provider.OCSProvider.StartMaintenanceMode:input_type -> provider.StartMaintenanceModeRequest + 23, // 16: provider.OCSProvider.StopMaintenanceMode:input_type -> provider.StopMaintenanceModeRequest + 25, // 17: provider.OCSProvider.GetMaintenanceModeStatus:input_type -> provider.GetMaintenanceModeStatusRequest + 3, // 18: provider.OCSProvider.OnboardConsumer:output_type -> provider.OnboardConsumerResponse + 6, // 19: provider.OCSProvider.GetStorageConfig:output_type -> provider.StorageConfigResponse + 8, // 20: provider.OCSProvider.OffboardConsumer:output_type -> provider.OffboardConsumerResponse + 10, // 21: provider.OCSProvider.AcknowledgeOnboarding:output_type -> provider.AcknowledgeOnboardingResponse + 12, // 22: provider.OCSProvider.FulfillStorageClaim:output_type -> provider.FulfillStorageClaimResponse + 14, // 23: provider.OCSProvider.RevokeStorageClaim:output_type -> provider.RevokeStorageClaimResponse + 16, // 24: provider.OCSProvider.GetStorageClaimConfig:output_type -> provider.StorageClaimConfigResponse + 18, // 25: provider.OCSProvider.ReportStatus:output_type -> provider.ReportStatusResponse + 20, // 26: provider.OCSProvider.PeerStorageCluster:output_type -> provider.PeerStorageClusterResponse + 22, // 27: provider.OCSProvider.StartMaintenanceMode:output_type -> provider.StartMaintenanceModeResponse + 24, // 28: provider.OCSProvider.StopMaintenanceMode:output_type -> provider.StopMaintenanceModeResponse + 26, // 29: provider.OCSProvider.GetMaintenanceModeStatus:output_type -> provider.GetMaintenanceModeStatusResponse + 18, // [18:30] is the sub-list for method output_type + 6, // [6:18] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_provider_proto_init() } @@ -1513,14 +2029,110 @@ func file_provider_proto_init() { return nil } } + file_provider_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerStorageClusterRequest); 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.(*PeerStorageClusterResponse); 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.(*StartMaintenanceModeRequest); 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.(*StartMaintenanceModeResponse); 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.(*StopMaintenanceModeRequest); 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.(*StopMaintenanceModeResponse); 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.(*GetMaintenanceModeStatusRequest); 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.(*GetMaintenanceModeStatusResponse); 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_provider_proto_rawDesc, - NumEnums: 1, - NumMessages: 19, + NumEnums: 2, + NumMessages: 27, NumExtensions: 0, NumServices: 1, }, diff --git a/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/provider_grpc.pb.go b/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/provider_grpc.pb.go index 64c45e2b3..0004a034a 100644 --- a/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/provider_grpc.pb.go +++ b/vendor/github.com/red-hat-storage/ocs-operator/services/provider/api/v4/provider_grpc.pb.go @@ -37,6 +37,11 @@ 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) + // PeerStorageCluster RPC call to Peer the local Storage Cluster to the remote + PeerStorageCluster(ctx context.Context, in *PeerStorageClusterRequest, opts ...grpc.CallOption) (*PeerStorageClusterResponse, error) + StartMaintenanceMode(ctx context.Context, in *StartMaintenanceModeRequest, opts ...grpc.CallOption) (*StartMaintenanceModeResponse, error) + StopMaintenanceMode(ctx context.Context, in *StopMaintenanceModeRequest, opts ...grpc.CallOption) (*StopMaintenanceModeResponse, error) + GetMaintenanceModeStatus(ctx context.Context, in *GetMaintenanceModeStatusRequest, opts ...grpc.CallOption) (*GetMaintenanceModeStatusResponse, error) } type oCSProviderClient struct { @@ -119,6 +124,42 @@ func (c *oCSProviderClient) ReportStatus(ctx context.Context, in *ReportStatusRe return out, nil } +func (c *oCSProviderClient) PeerStorageCluster(ctx context.Context, in *PeerStorageClusterRequest, opts ...grpc.CallOption) (*PeerStorageClusterResponse, error) { + out := new(PeerStorageClusterResponse) + err := c.cc.Invoke(ctx, "/provider.OCSProvider/PeerStorageCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *oCSProviderClient) StartMaintenanceMode(ctx context.Context, in *StartMaintenanceModeRequest, opts ...grpc.CallOption) (*StartMaintenanceModeResponse, error) { + out := new(StartMaintenanceModeResponse) + err := c.cc.Invoke(ctx, "/provider.OCSProvider/StartMaintenanceMode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *oCSProviderClient) StopMaintenanceMode(ctx context.Context, in *StopMaintenanceModeRequest, opts ...grpc.CallOption) (*StopMaintenanceModeResponse, error) { + out := new(StopMaintenanceModeResponse) + err := c.cc.Invoke(ctx, "/provider.OCSProvider/StopMaintenanceMode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *oCSProviderClient) GetMaintenanceModeStatus(ctx context.Context, in *GetMaintenanceModeStatusRequest, opts ...grpc.CallOption) (*GetMaintenanceModeStatusResponse, error) { + out := new(GetMaintenanceModeStatusResponse) + err := c.cc.Invoke(ctx, "/provider.OCSProvider/GetMaintenanceModeStatus", 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 +183,11 @@ type OCSProviderServer interface { // specific resources. GetStorageClaimConfig(context.Context, *StorageClaimConfigRequest) (*StorageClaimConfigResponse, error) ReportStatus(context.Context, *ReportStatusRequest) (*ReportStatusResponse, error) + // PeerStorageCluster RPC call to Peer the local Storage Cluster to the remote + PeerStorageCluster(context.Context, *PeerStorageClusterRequest) (*PeerStorageClusterResponse, error) + StartMaintenanceMode(context.Context, *StartMaintenanceModeRequest) (*StartMaintenanceModeResponse, error) + StopMaintenanceMode(context.Context, *StopMaintenanceModeRequest) (*StopMaintenanceModeResponse, error) + GetMaintenanceModeStatus(context.Context, *GetMaintenanceModeStatusRequest) (*GetMaintenanceModeStatusResponse, error) mustEmbedUnimplementedOCSProviderServer() } @@ -173,6 +219,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) PeerStorageCluster(context.Context, *PeerStorageClusterRequest) (*PeerStorageClusterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PeerStorageCluster not implemented") +} +func (UnimplementedOCSProviderServer) StartMaintenanceMode(context.Context, *StartMaintenanceModeRequest) (*StartMaintenanceModeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StartMaintenanceMode not implemented") +} +func (UnimplementedOCSProviderServer) StopMaintenanceMode(context.Context, *StopMaintenanceModeRequest) (*StopMaintenanceModeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StopMaintenanceMode not implemented") +} +func (UnimplementedOCSProviderServer) GetMaintenanceModeStatus(context.Context, *GetMaintenanceModeStatusRequest) (*GetMaintenanceModeStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMaintenanceModeStatus not implemented") +} func (UnimplementedOCSProviderServer) mustEmbedUnimplementedOCSProviderServer() {} // UnsafeOCSProviderServer may be embedded to opt out of forward compatibility for this service. @@ -330,6 +388,78 @@ func _OCSProvider_ReportStatus_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _OCSProvider_PeerStorageCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PeerStorageClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OCSProviderServer).PeerStorageCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/provider.OCSProvider/PeerStorageCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OCSProviderServer).PeerStorageCluster(ctx, req.(*PeerStorageClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OCSProvider_StartMaintenanceMode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StartMaintenanceModeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OCSProviderServer).StartMaintenanceMode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/provider.OCSProvider/StartMaintenanceMode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OCSProviderServer).StartMaintenanceMode(ctx, req.(*StartMaintenanceModeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OCSProvider_StopMaintenanceMode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StopMaintenanceModeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OCSProviderServer).StopMaintenanceMode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/provider.OCSProvider/StopMaintenanceMode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OCSProviderServer).StopMaintenanceMode(ctx, req.(*StopMaintenanceModeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _OCSProvider_GetMaintenanceModeStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMaintenanceModeStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OCSProviderServer).GetMaintenanceModeStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/provider.OCSProvider/GetMaintenanceModeStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OCSProviderServer).GetMaintenanceModeStatus(ctx, req.(*GetMaintenanceModeStatusRequest)) + } + 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 +499,22 @@ var OCSProvider_ServiceDesc = grpc.ServiceDesc{ MethodName: "ReportStatus", Handler: _OCSProvider_ReportStatus_Handler, }, + { + MethodName: "PeerStorageCluster", + Handler: _OCSProvider_PeerStorageCluster_Handler, + }, + { + MethodName: "StartMaintenanceMode", + Handler: _OCSProvider_StartMaintenanceMode_Handler, + }, + { + MethodName: "StopMaintenanceMode", + Handler: _OCSProvider_StopMaintenanceMode_Handler, + }, + { + MethodName: "GetMaintenanceModeStatus", + Handler: _OCSProvider_GetMaintenanceModeStatus_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "provider.proto", diff --git a/vendor/modules.txt b/vendor/modules.txt index 7c742e862..ac8801e2f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -210,13 +210,13 @@ github.com/prometheus/common/model github.com/prometheus/procfs github.com/prometheus/procfs/internal/fs github.com/prometheus/procfs/internal/util -# github.com/ramendr/ramen/api v0.0.0-20241001141243-29d6f22ad237 +# github.com/ramendr/ramen/api v0.0.0-20241014164256-3929be6ce297 ## explicit; go 1.22.0 github.com/ramendr/ramen/api/v1alpha1 # github.com/red-hat-storage/ocs-client-operator/api v0.0.0-00010101000000-000000000000 => ./api ## explicit; go 1.22.5 github.com/red-hat-storage/ocs-client-operator/api/v1alpha1 -# github.com/red-hat-storage/ocs-operator/services/provider/api/v4 v4.0.0-20241015071140-98c8184c6eec +# github.com/red-hat-storage/ocs-operator/services/provider/api/v4 v4.0.0-20241015071140-98c8184c6eec => github.com/rewantsoni/ocs-operator/services/provider/api/v4 v4.0.0-20241107075222-75593ba63c24 ## explicit; go 1.22.5 github.com/red-hat-storage/ocs-operator/services/provider/api/v4 github.com/red-hat-storage/ocs-operator/services/provider/api/v4/client @@ -925,4 +925,5 @@ sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 # github.com/portworx/sched-ops => github.com/portworx/sched-ops v0.20.4-openstorage-rc3 # github.com/red-hat-storage/ocs-client-operator/api => ./api +# github.com/red-hat-storage/ocs-operator/services/provider/api/v4 => github.com/rewantsoni/ocs-operator/services/provider/api/v4 v4.0.0-20241107075222-75593ba63c24 # vbom.ml/util => github.com/fvbommel/util v0.0.0-20180919145318-efcd4e0f9787