diff --git a/hack/.linted_packages b/hack/.linted_packages index 38be9e2ea27..9bb55acef13 100644 --- a/hack/.linted_packages +++ b/hack/.linted_packages @@ -278,6 +278,7 @@ pkg/util/rand pkg/util/runtime pkg/util/sets pkg/util/sets/types +pkg/util/slice pkg/util/tail pkg/util/validation pkg/util/validation/field diff --git a/pkg/kubectl/BUILD b/pkg/kubectl/BUILD index 6bad6f9c8e0..ae9d0ebf358 100644 --- a/pkg/kubectl/BUILD +++ b/pkg/kubectl/BUILD @@ -143,9 +143,9 @@ go_library( "//pkg/credentialprovider:go_default_library", "//pkg/kubectl/resource:go_default_library", "//pkg/kubectl/util:go_default_library", + "//pkg/kubectl/util/slice:go_default_library", "//pkg/printers:go_default_library", "//pkg/printers/internalversion:go_default_library", - "//pkg/util/slice:go_default_library", "//vendor/github.com/emicklei/go-restful-swagger12:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", diff --git a/pkg/kubectl/history.go b/pkg/kubectl/history.go index aca1963eaf7..8f07a40bee2 100644 --- a/pkg/kubectl/history.go +++ b/pkg/kubectl/history.go @@ -39,8 +39,8 @@ import ( clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/controller" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" + sliceutil "k8s.io/kubernetes/pkg/kubectl/util/slice" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" - sliceutil "k8s.io/kubernetes/pkg/util/slice" ) const ( diff --git a/pkg/kubectl/rollback.go b/pkg/kubectl/rollback.go index ded384b2b52..ee9594db648 100644 --- a/pkg/kubectl/rollback.go +++ b/pkg/kubectl/rollback.go @@ -39,8 +39,8 @@ import ( clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/controller/daemon" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" + sliceutil "k8s.io/kubernetes/pkg/kubectl/util/slice" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" - sliceutil "k8s.io/kubernetes/pkg/util/slice" ) const ( diff --git a/pkg/kubectl/util/BUILD b/pkg/kubectl/util/BUILD index fb4b1fdac61..aa82e750aaf 100644 --- a/pkg/kubectl/util/BUILD +++ b/pkg/kubectl/util/BUILD @@ -31,6 +31,7 @@ filegroup( srcs = [ ":package-srcs", "//pkg/kubectl/util/crlf:all-srcs", + "//pkg/kubectl/util/slice:all-srcs", "//pkg/kubectl/util/term:all-srcs", ], tags = ["automanaged"], diff --git a/pkg/kubectl/util/slice/BUILD b/pkg/kubectl/util/slice/BUILD new file mode 100644 index 00000000000..35cb2024d50 --- /dev/null +++ b/pkg/kubectl/util/slice/BUILD @@ -0,0 +1,35 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_library( + name = "go_default_library", + srcs = ["slice.go"], + tags = ["automanaged"], +) + +go_test( + name = "go_default_test", + srcs = ["slice_test.go"], + library = ":go_default_library", + tags = ["automanaged"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubectl/util/slice/slice.go b/pkg/kubectl/util/slice/slice.go new file mode 100644 index 00000000000..6885c4888db --- /dev/null +++ b/pkg/kubectl/util/slice/slice.go @@ -0,0 +1,32 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package slice + +import ( + "sort" +) + +// Int64Slice attaches the methods of Interface to []int64, +// sorting in increasing order. +type Int64Slice []int64 + +func (p Int64Slice) Len() int { return len(p) } +func (p Int64Slice) Less(i, j int) bool { return p[i] < p[j] } +func (p Int64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } + +// Sorts []int64 in increasing order +func SortInts64(a []int64) { sort.Sort(Int64Slice(a)) } diff --git a/pkg/kubectl/util/slice/slice_test.go b/pkg/kubectl/util/slice/slice_test.go new file mode 100644 index 00000000000..7e3bec6e277 --- /dev/null +++ b/pkg/kubectl/util/slice/slice_test.go @@ -0,0 +1,31 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package slice + +import ( + "reflect" + "testing" +) + +func TestSortInts64(t *testing.T) { + src := []int64{10, 1, 2, 3, 4, 5, 6} + expected := []int64{1, 2, 3, 4, 5, 6, 10} + SortInts64(src) + if !reflect.DeepEqual(src, expected) { + t.Errorf("func Ints64 didnt sort correctly, %v !- %v", src, expected) + } +} diff --git a/pkg/util/slice/slice.go b/pkg/util/slice/slice.go index 205b597c404..b408dbae841 100644 --- a/pkg/util/slice/slice.go +++ b/pkg/util/slice/slice.go @@ -68,14 +68,3 @@ func ContainsString(slice []string, s string, modifier func(s string) string) bo } return false } - -// Int64Slice attaches the methods of Interface to []int64, -// sorting in increasing order. -type Int64Slice []int64 - -func (p Int64Slice) Len() int { return len(p) } -func (p Int64Slice) Less(i, j int) bool { return p[i] < p[j] } -func (p Int64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - -// Sorts []int64 in increasing order -func SortInts64(a []int64) { sort.Sort(Int64Slice(a)) } diff --git a/pkg/util/slice/slice_test.go b/pkg/util/slice/slice_test.go index 1c02f420411..437c8ecee55 100644 --- a/pkg/util/slice/slice_test.go +++ b/pkg/util/slice/slice_test.go @@ -89,12 +89,3 @@ func TestShuffleStrings(t *testing.T) { } } } - -func TestSortInts64(t *testing.T) { - src := []int64{10, 1, 2, 3, 4, 5, 6} - expected := []int64{1, 2, 3, 4, 5, 6, 10} - SortInts64(src) - if !reflect.DeepEqual(src, expected) { - t.Errorf("func Ints64 didnt sort correctly, %v !- %v", src, expected) - } -}