Skip to content

Commit 4d43130

Browse files
Nikhil-Ladhamergify[bot]
authored andcommitted
use helper function for label selector in volumegroupreplication
use "LabelSelectorAsSelector" helper function to correctly parse the labels selector on VGR. The helper function takes care of all the cases while parsing. Signed-off-by: Nikhil-Ladha <nikhilladha1999@gmail.com>
1 parent cc86b81 commit 4d43130

File tree

1 file changed

+7
-25
lines changed

1 file changed

+7
-25
lines changed

internal/controller/replication.storage/volumegroupreplication_controller.go

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3232
"k8s.io/apimachinery/pkg/labels"
3333
"k8s.io/apimachinery/pkg/runtime"
34-
"k8s.io/apimachinery/pkg/selection"
3534
"k8s.io/apimachinery/pkg/types"
3635
"k8s.io/client-go/tools/record"
3736
ctrl "sigs.k8s.io/controller-runtime"
@@ -492,36 +491,19 @@ func (r *VolumeGroupReplicationReconciler) setGroupReplicationFailure(
492491
func (r *VolumeGroupReplicationReconciler) getMatchingPVCsFromSource(instance *replicationv1alpha1.VolumeGroupReplication) ([]corev1.PersistentVolumeClaim, string, error) {
493492

494493
pvcList := corev1.PersistentVolumeClaimList{}
495-
newSelector := labels.NewSelector()
496494

497-
if instance.Spec.Source.Selector.MatchLabels != nil {
498-
for key, value := range instance.Spec.Source.Selector.MatchLabels {
499-
req, err := labels.NewRequirement(key, selection.Equals, []string{value})
500-
if err != nil {
501-
r.log.Error(err, "failed to add label selector requirement", "Selector Key", key, "Selector Value", value)
502-
return nil, "", err
503-
}
504-
newSelector = newSelector.Add(*req)
505-
}
495+
selector, err := metav1.LabelSelectorAsSelector(instance.Spec.Source.Selector)
496+
if err != nil {
497+
return nil, "", err
506498
}
507499

508-
if instance.Spec.Source.Selector.MatchExpressions != nil {
509-
for _, labelExp := range instance.Spec.Source.Selector.MatchExpressions {
510-
req, err := labels.NewRequirement(labelExp.Key, selection.Operator(labelExp.Operator), labelExp.Values)
511-
if err != nil {
512-
r.log.Error(err, "failed to add label selector requirement", "Selector Key", labelExp.Key, "Selector Values", labelExp.Values)
513-
return nil, "", err
514-
}
515-
newSelector = newSelector.Add(*req)
516-
}
517-
}
518500
opts := []client.ListOption{
519-
client.MatchingLabelsSelector{Selector: newSelector},
501+
client.MatchingLabelsSelector{Selector: selector},
520502
client.InNamespace(instance.Namespace),
521503
}
522-
err := r.List(r.ctx, &pvcList, opts...)
504+
err = r.List(r.ctx, &pvcList, opts...)
523505
if err != nil {
524-
r.log.Error(err, "failed to list pvcs with the given selectors", "Selector", newSelector.String())
506+
r.log.Error(err, "failed to list pvcs with the given selectors", "Selector", selector.String())
525507
return nil, "", err
526508
}
527509

@@ -536,7 +518,7 @@ func (r *VolumeGroupReplicationReconciler) getMatchingPVCsFromSource(instance *r
536518
}
537519
}
538520

539-
return pvcList.Items, newSelector.String(), nil
521+
return pvcList.Items, selector.String(), nil
540522
}
541523

542524
// getPVHandles fetches the PV handles for the respective PVCs

0 commit comments

Comments
 (0)