From 2ec88fae4adaa39919829039436c8f6125cf7aeb Mon Sep 17 00:00:00 2001 From: vbadrina Date: Thu, 5 Dec 2024 16:21:42 +0530 Subject: [PATCH] Fix issue with the hash generation for MirrorPeer There are two separate methods to generate hashes based on whether RDR is done for provider mode or internal mode The one for internal mode is being reverted in this commit as the it was causing issues with upgrades Signed-off-by: vbadrina --- controllers/utils/hash.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/controllers/utils/hash.go b/controllers/utils/hash.go index 50a880cc..2ac3af36 100644 --- a/controllers/utils/hash.go +++ b/controllers/utils/hash.go @@ -61,23 +61,27 @@ func CreateUniqueReplicationId(clusterFSIDs map[string]string) (string, error) { } func GenerateUniqueIdForMirrorPeer(mirrorPeer multiclusterv1alpha1.MirrorPeer, hasStorageClientRef bool) string { - var peerAccumulator []string - if hasStorageClientRef { + var peerAccumulator []string for _, peer := range mirrorPeer.Spec.Items { peerAccumulator = append(peerAccumulator, GetKey(peer.ClusterName, peer.StorageClusterRef.Name)) } + + sort.Strings(peerAccumulator) + + checksum := sha1.Sum([]byte(strings.Join(peerAccumulator, "-"))) + + return hex.EncodeToString(checksum[:])[0 : len(BucketGenerateName)+1+12] + } else { + var peerAccumulator string for _, peer := range mirrorPeer.Spec.Items { - peerAccumulator = append(peerAccumulator, peer.ClusterName) + peerAccumulator += peer.ClusterName } + checksum := sha1.Sum([]byte(peerAccumulator)) + return hex.EncodeToString(checksum[:])[0 : len(BucketGenerateName)+1+12] } - - sort.Strings(peerAccumulator) - - checksum := sha1.Sum([]byte(strings.Join(peerAccumulator, "-"))) - return hex.EncodeToString(checksum[:]) } func GetKey(clusterName, clientName string) string {