mirror of https://github.com/kubernetes/kops.git
upup: move string-slice comparison functions to utils
This commit is contained in:
parent
1aeea67510
commit
3aeaf73788
|
|
@ -126,18 +126,6 @@ func (t *CloudInitTarget) Chown(path string, user, group string) {
|
|||
t.AddCommand(Always, "chown", user+":"+group, path)
|
||||
}
|
||||
|
||||
func stringSlicesEquals(l, r []string) bool {
|
||||
if len(l) != len(r) {
|
||||
return false
|
||||
}
|
||||
for i, v := range l {
|
||||
if r[i] != v {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func (t *CloudInitTarget) AddCommand(addBehaviour AddBehaviour, args ...string) {
|
||||
switch addBehaviour {
|
||||
case Always:
|
||||
|
|
@ -145,7 +133,7 @@ func (t *CloudInitTarget) AddCommand(addBehaviour AddBehaviour, args ...string)
|
|||
|
||||
case Once:
|
||||
for _, c := range t.Config.RunCommmands {
|
||||
if stringSlicesEquals(args, c) {
|
||||
if utils.StringSlicesEqual(args, c) {
|
||||
glog.V(2).Infof("skipping pre-existing command because AddBehaviour=Once: %q", args)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
package utils
|
||||
|
||||
func StringSlicesEqual(l, r []string) bool {
|
||||
if len(l) != len(r) {
|
||||
return false
|
||||
}
|
||||
for i, v := range l {
|
||||
if r[i] != v {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func StringSlicesEqualIgnoreOrder(l, r []string) bool {
|
||||
if len(l) != len(r) {
|
||||
return false
|
||||
}
|
||||
|
||||
lMap := map[string]bool{}
|
||||
for _, lv := range l {
|
||||
lMap[lv] = true
|
||||
}
|
||||
for _, rv := range r {
|
||||
if !lMap[rv] {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
Loading…
Reference in New Issue