Skip to content

Commit

Permalink
fix UT
Browse files Browse the repository at this point in the history
Signed-off-by: youhangwang <[email protected]>
  • Loading branch information
youhangwang committed Jun 13, 2024
1 parent d7b3448 commit a34cf5a
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 28 deletions.
55 changes: 31 additions & 24 deletions controllers/cephfscg/cghandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,21 @@ func NewVSCGHandler(
vsHandler *volsync.VSHandler,

logger logr.Logger,
) (VSCGHandler, error) {
volumeGroupSnapshotClassName, err := util.GetVolumeGroupSnapshotClassFromPVCsStorageClass(
ctx, k8sClient, instance.Spec.Async.VolumeGroupSnapshotClassSelector,
instance.Spec.CephFSConsistencyGroupSelector, instance.Namespace, logger,
)
if err != nil {
return nil, err
) VSCGHandler {
cgHandler := &cgHandler{
ctx: ctx,
Client: k8sClient,
instance: instance,
VSHandler: vsHandler,
volumeGroupSnapshotSource: instance.Spec.CephFSConsistencyGroupSelector,
logger: logger.WithName("VSCGHandler"),
}
if instance.Spec.Async != nil {
cgHandler.volumeSnapshotClassSelector = instance.Spec.Async.VolumeSnapshotClassSelector
cgHandler.ramenSchedulingInterval = instance.Spec.Async.SchedulingInterval
}

return &cgHandler{
ctx: ctx,
Client: k8sClient,
instance: instance,
VSHandler: vsHandler,
volumeGroupSnapshotSource: instance.Spec.CephFSConsistencyGroupSelector,
volumeSnapshotClassSelector: instance.Spec.Async.VolumeSnapshotClassSelector,
volumeGroupSnapshotClassName: volumeGroupSnapshotClassName,
ramenSchedulingInterval: instance.Spec.Async.SchedulingInterval,
logger: logger.WithName("VSCGHandler"),
}, nil
return cgHandler
}

type VSCGHandler interface {
Expand Down Expand Up @@ -76,10 +71,9 @@ type cgHandler struct {
instance *ramendrv1alpha1.VolumeReplicationGroup
VSHandler *volsync.VSHandler // VSHandler will be used to call the exist funcs

volumeGroupSnapshotSource *metav1.LabelSelector
volumeSnapshotClassSelector metav1.LabelSelector
volumeGroupSnapshotClassName string
ramenSchedulingInterval string
volumeGroupSnapshotSource *metav1.LabelSelector
volumeSnapshotClassSelector metav1.LabelSelector
ramenSchedulingInterval string

logger logr.Logger
}
Expand Down Expand Up @@ -132,14 +126,27 @@ func (c *cgHandler) CreateOrUpdateReplicationGroupSource(
return nil, false, err
}

VolumeGroupSnapshotClassSelector := metav1.LabelSelector{}
if c.instance != nil && c.instance.Spec.Async != nil {
VolumeGroupSnapshotClassSelector = c.instance.Spec.Async.VolumeGroupSnapshotClassSelector
}

volumeGroupSnapshotClassName, err := util.GetVolumeGroupSnapshotClassFromPVCsStorageClass(
c.ctx, c.Client, VolumeGroupSnapshotClassSelector,
c.instance.Spec.CephFSConsistencyGroupSelector, c.instance.Namespace, c.logger,
)
if err != nil {
return nil, false, err
}

rgs := &ramendrv1alpha1.ReplicationGroupSource{
ObjectMeta: metav1.ObjectMeta{
Name: replicationGroupSourceName,
Namespace: replicationGroupSourceNamespace,
},
}

_, err := ctrlutil.CreateOrUpdate(c.ctx, c.Client, rgs, func() error {
_, err = ctrlutil.CreateOrUpdate(c.ctx, c.Client, rgs, func() error {
if err := ctrl.SetControllerReference(c.instance, rgs, c.Client.Scheme()); err != nil {
return err
}
Expand Down Expand Up @@ -169,7 +176,7 @@ func (c *cgHandler) CreateOrUpdateReplicationGroupSource(
}
}

rgs.Spec.VolumeGroupSnapshotClassName = c.volumeGroupSnapshotClassName
rgs.Spec.VolumeGroupSnapshotClassName = volumeGroupSnapshotClassName
rgs.Spec.VolumeGroupSnapshotSource = c.volumeGroupSnapshotSource

return nil
Expand Down
9 changes: 9 additions & 0 deletions controllers/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import (

volsyncv1alpha1 "github.com/backube/volsync/api/v1alpha1"
volrep "github.com/csi-addons/kubernetes-csi-addons/apis/replication.storage/v1alpha1"
groupsnapv1alpha1 "github.com/kubernetes-csi/external-snapshotter/client/v7/apis/volumegroupsnapshot/v1alpha1"
snapv1 "github.com/kubernetes-csi/external-snapshotter/client/v7/apis/volumesnapshot/v1"
ocmclv1 "github.com/open-cluster-management/api/cluster/v1"
ocmworkv1 "github.com/open-cluster-management/api/work/v1"
Expand All @@ -47,6 +48,7 @@ import (
"github.com/ramendr/ramen/controllers/util"
Recipe "github.com/ramendr/recipe/api/v1alpha1"
velero "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
// +kubebuilder:scaffold:imports
)

Expand Down Expand Up @@ -212,6 +214,13 @@ var _ = BeforeSuite(func() {

err = argocdv1alpha1hack.AddToScheme(scheme.Scheme)
Expect(err).NotTo(HaveOccurred())

err = groupsnapv1alpha1.AddToScheme(scheme.Scheme)
Expect(err).NotTo(HaveOccurred())

err = apiextensionsv1.AddToScheme(scheme.Scheme)
Expect(err).NotTo(HaveOccurred())

// +kubebuilder:scaffold:scheme

k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme})
Expand Down
5 changes: 1 addition & 4 deletions controllers/volumereplicationgroup_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -436,12 +436,9 @@ func (r *VolumeReplicationGroupReconciler) Reconcile(ctx context.Context, req ct
v.instance.Spec.Async, cephFSCSIDriverNameOrDefault(v.ramenConfig),
volSyncDestinationCopyMethodOrDefault(v.ramenConfig), adminNamespaceVRG)

v.cephfsCGHandler, err = cephfscg.NewVSCGHandler(
v.cephfsCGHandler = cephfscg.NewVSCGHandler(
ctx, r.Client, v.instance, v.volSyncHandler, v.log,
)
if err != nil {
return ctrl.Result{}, fmt.Errorf("failed to create cephfsCGHandler: %w", err)
}

if v.instance.Status.ProtectedPVCs == nil {
v.instance.Status.ProtectedPVCs = []ramendrv1alpha1.ProtectedPVC{}
Expand Down

0 comments on commit a34cf5a

Please sign in to comment.