in src/terraform/providers/terraform-provider-avere/cifs.go [105:149]
func ShareAcesEqual(a, b map[string]*ShareAce) bool {
if ShareAcesAreEveryone(a) && ShareAcesAreEveryone(b) {
return true
}
if len(a) != len(b) {
return false
}
bmap := NormalizeShareAces(b)
amap := NormalizeShareAces(a)
// cross way check, because of normalization we just need one way equal
crossWayA := true
for k, v := range a {
vb, ok := bmap[k]
if !ok {
vb, ok = bmap[removeDomain(k)]
if !ok {
crossWayA = false
break
}
}
if v.Type != vb.Type || v.Permission != vb.Permission {
crossWayA = false
break
}
}
crossWayB := true
for k, v := range b {
va, ok := amap[k]
if !ok {
va, ok = amap[removeDomain(k)]
if !ok {
crossWayB = false
break
}
}
if v.Type != va.Type || v.Permission != va.Permission {
crossWayB = false
break
}
}
return crossWayA || crossWayB
}