From 5d268eb1d37fbd19b75b81face785b3ad7af40a0 Mon Sep 17 00:00:00 2001 From: Yongkun Anfernee Gui Date: Fri, 27 Oct 2017 16:32:25 -0700 Subject: [PATCH] haveSame is suboptimal, fix it as well as the name --- .../scheduler/algorithm/predicates/predicates.go | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/plugin/pkg/scheduler/algorithm/predicates/predicates.go b/plugin/pkg/scheduler/algorithm/predicates/predicates.go index ec799b97df6..355aa132f57 100644 --- a/plugin/pkg/scheduler/algorithm/predicates/predicates.go +++ b/plugin/pkg/scheduler/algorithm/predicates/predicates.go @@ -165,7 +165,7 @@ func isVolumeConflict(volume v1.Volume, pod *v1.Pod) bool { // two RBDs images are the same if they share the same Ceph monitor, are in the same RADOS Pool, and have the same image name // only one read-write mount is permitted for the same RBD image. // same RBD image mounted by multiple Pods conflicts unless all Pods mount the image read-only - if haveSame(mon, emon) && pool == epool && image == eimage && !(volume.RBD.ReadOnly && existingVolume.RBD.ReadOnly) { + if haveOverlap(mon, emon) && pool == epool && image == eimage && !(volume.RBD.ReadOnly && existingVolume.RBD.ReadOnly) { return true } } @@ -911,20 +911,18 @@ func PodFitsHostPorts(pod *v1.Pod, meta algorithm.PredicateMetadata, nodeInfo *s } // search two arrays and return true if they have at least one common element; return false otherwise -func haveSame(a1, a2 []string) bool { - m := map[string]int{} +func haveOverlap(a1, a2 []string) bool { + m := map[string]bool{} for _, val := range a1 { - m[val] = 1 + m[val] = true } for _, val := range a2 { - m[val] = m[val] + 1 - } - for _, val := range m { - if val > 1 { + if _, ok := m[val]; ok { return true } } + return false }