From 7405c7899bdc5b74d2b835ce5f72b9bc1145e8f4 Mon Sep 17 00:00:00 2001 From: harry Date: Mon, 11 Jan 2016 15:55:51 +0800 Subject: [PATCH] Add strings pkg to hold strings utils Replace funtions with strings pkg Fix all references and rename the pkg --- pkg/kubelet/dockertools/manager.go | 9 ++-- pkg/kubelet/rkt/rkt.go | 3 +- pkg/kubelet/volumes.go | 3 +- pkg/util/{ => strings}/escape.go | 2 +- pkg/util/strings/strings.go | 47 ++++++++++++++++ pkg/util/strings/strings_test.go | 54 +++++++++++++++++++ pkg/util/util.go | 26 --------- pkg/util/util_test.go | 34 ------------ pkg/volume/aws_ebs/aws_ebs.go | 6 +-- pkg/volume/cephfs/cephfs.go | 4 +- pkg/volume/cinder/cinder.go | 6 +-- pkg/volume/downwardapi/downwardapi.go | 6 +-- pkg/volume/empty_dir/empty_dir.go | 6 +-- pkg/volume/fc/fc.go | 4 +- pkg/volume/flexvolume/flexvolume.go | 6 +-- pkg/volume/flocker/plugin.go | 4 +- pkg/volume/gce_pd/gce_pd.go | 6 +-- pkg/volume/git_repo/git_repo.go | 6 +-- pkg/volume/glusterfs/glusterfs.go | 4 +- pkg/volume/iscsi/iscsi.go | 4 +- pkg/volume/nfs/nfs.go | 6 +-- .../persistent_claim/persistent_claim_test.go | 4 +- pkg/volume/rbd/rbd.go | 4 +- pkg/volume/secret/secret.go | 6 +-- pkg/volume/testing.go | 3 +- 25 files changed, 154 insertions(+), 109 deletions(-) rename pkg/util/{ => strings}/escape.go (99%) create mode 100644 pkg/util/strings/strings.go create mode 100644 pkg/util/strings/strings_test.go diff --git a/pkg/kubelet/dockertools/manager.go b/pkg/kubelet/dockertools/manager.go index 5071cf56445..2f64966ed70 100644 --- a/pkg/kubelet/dockertools/manager.go +++ b/pkg/kubelet/dockertools/manager.go @@ -54,6 +54,7 @@ import ( "k8s.io/kubernetes/pkg/util/oom" "k8s.io/kubernetes/pkg/util/procfs" "k8s.io/kubernetes/pkg/util/sets" + utilstrings "k8s.io/kubernetes/pkg/util/strings" ) const ( @@ -709,7 +710,7 @@ func (dm *DockerManager) runContainer( return kubecontainer.ContainerID{}, err } - dm.recorder.Eventf(ref, api.EventTypeNormal, kubecontainer.CreatedContainer, "Created container with docker id %v", util.ShortenString(dockerContainer.ID, 12)) + dm.recorder.Eventf(ref, api.EventTypeNormal, kubecontainer.CreatedContainer, "Created container with docker id %v", utilstrings.ShortenString(dockerContainer.ID, 12)) podHasSELinuxLabel := pod.Spec.SecurityContext != nil && pod.Spec.SecurityContext.SELinuxOptions != nil binds := makeMountBindings(opts.Mounts, podHasSELinuxLabel) @@ -766,10 +767,10 @@ func (dm *DockerManager) runContainer( if err = dm.client.StartContainer(dockerContainer.ID, hc); err != nil { dm.recorder.Eventf(ref, api.EventTypeWarning, kubecontainer.FailedToStartContainer, - "Failed to start container with docker id %v with error: %v", util.ShortenString(dockerContainer.ID, 12), err) + "Failed to start container with docker id %v with error: %v", utilstrings.ShortenString(dockerContainer.ID, 12), err) return kubecontainer.ContainerID{}, err } - dm.recorder.Eventf(ref, api.EventTypeNormal, kubecontainer.StartedContainer, "Started container with docker id %v", util.ShortenString(dockerContainer.ID, 12)) + dm.recorder.Eventf(ref, api.EventTypeNormal, kubecontainer.StartedContainer, "Started container with docker id %v", utilstrings.ShortenString(dockerContainer.ID, 12)) return kubecontainer.DockerID(dockerContainer.ID).ContainerID(), nil } @@ -1384,7 +1385,7 @@ func (dm *DockerManager) killContainer(containerID kubecontainer.ContainerID, co if !ok { glog.Warningf("No ref for pod '%q'", name) } else { - message := fmt.Sprintf("Killing container with docker id %v", util.ShortenString(ID, 12)) + message := fmt.Sprintf("Killing container with docker id %v", utilstrings.ShortenString(ID, 12)) if reason != "" { message = fmt.Sprint(message, ": ", reason) } diff --git a/pkg/kubelet/rkt/rkt.go b/pkg/kubelet/rkt/rkt.go index e5af5aaa3b7..4c694fd4852 100644 --- a/pkg/kubelet/rkt/rkt.go +++ b/pkg/kubelet/rkt/rkt.go @@ -50,6 +50,7 @@ import ( "k8s.io/kubernetes/pkg/util" utilexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/sets" + utilstrings "k8s.io/kubernetes/pkg/util/strings" ) const ( @@ -721,7 +722,7 @@ func (r *Runtime) generateEvents(runtimePod *kubecontainer.Pod, reason string, f } // Note that 'rkt id' is the pod id. - uuid := util.ShortenString(id.uuid, 8) + uuid := utilstrings.ShortenString(id.uuid, 8) switch reason { case "Created": r.recorder.Eventf(ref, api.EventTypeNormal, kubecontainer.CreatedContainer, "Created with rkt id %v", uuid) diff --git a/pkg/kubelet/volumes.go b/pkg/kubelet/volumes.go index 60a569feef9..c6c5e296892 100644 --- a/pkg/kubelet/volumes.go +++ b/pkg/kubelet/volumes.go @@ -30,6 +30,7 @@ import ( "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/io" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -233,7 +234,7 @@ func (kl *Kubelet) getPodVolumesFromDisk() map[string]volume.Cleaner { } func (kl *Kubelet) newVolumeCleanerFromPlugins(kind string, name string, podUID types.UID) (volume.Cleaner, error) { - plugName := util.UnescapeQualifiedNameForDisk(kind) + plugName := strings.UnescapeQualifiedNameForDisk(kind) plugin, err := kl.volumePluginMgr.FindPluginByName(plugName) if err != nil { // TODO: Maybe we should launch a cleanup of this dir? diff --git a/pkg/util/escape.go b/pkg/util/strings/escape.go similarity index 99% rename from pkg/util/escape.go rename to pkg/util/strings/escape.go index 5304f842123..d00207bf87d 100644 --- a/pkg/util/escape.go +++ b/pkg/util/strings/escape.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package util +package strings import ( "strings" diff --git a/pkg/util/strings/strings.go b/pkg/util/strings/strings.go new file mode 100644 index 00000000000..db5abb45eef --- /dev/null +++ b/pkg/util/strings/strings.go @@ -0,0 +1,47 @@ +/* +Copyright 2014 The Kubernetes Authors All rights reserved. + +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 strings + +import ( + "path" + "strings" +) + +// Splits a fully qualified name and returns its namespace and name. +// Assumes that the input 'str' has been validated. +func SplitQualifiedName(str string) (string, string) { + parts := strings.Split(str, "/") + if len(parts) < 2 { + return "", str + } + return parts[0], parts[1] +} + +// Joins 'namespace' and 'name' and returns a fully qualified name +// Assumes that the input is valid. +func JoinQualifiedName(namespace, name string) string { + return path.Join(namespace, name) +} + +// Returns the first N slice of a string. +func ShortenString(str string, n int) string { + if len(str) <= n { + return str + } else { + return str[:n] + } +} diff --git a/pkg/util/strings/strings_test.go b/pkg/util/strings/strings_test.go new file mode 100644 index 00000000000..eefd0e68b98 --- /dev/null +++ b/pkg/util/strings/strings_test.go @@ -0,0 +1,54 @@ +/* +Copyright 2014 The Kubernetes Authors All rights reserved. + +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 strings + +import ( + "testing" +) + +func TestSplitQualifiedName(t *testing.T) { + testCases := []struct { + input string + output []string + }{ + {"kubernetes.io/blah", []string{"kubernetes.io", "blah"}}, + {"blah", []string{"", "blah"}}, + {"kubernetes.io/blah/blah", []string{"kubernetes.io", "blah"}}, + } + for i, tc := range testCases { + namespace, name := SplitQualifiedName(tc.input) + if namespace != tc.output[0] || name != tc.output[1] { + t.Errorf("case[%d]: expected (%q, %q), got (%q, %q)", i, tc.output[0], tc.output[1], namespace, name) + } + } +} +func TestJoinQualifiedName(t *testing.T) { + testCases := []struct { + input []string + output string + }{ + {[]string{"kubernetes.io", "blah"}, "kubernetes.io/blah"}, + {[]string{"blah", ""}, "blah"}, + {[]string{"kubernetes.io", "blah"}, "kubernetes.io/blah"}, + } + for i, tc := range testCases { + res := JoinQualifiedName(tc.input[0], tc.input[1]) + if res != tc.output { + t.Errorf("case[%d]: expected %q, got %q", i, tc.output, res) + } + } +} diff --git a/pkg/util/util.go b/pkg/util/util.go index 4e8affc3e4e..2a4ecfb2dbc 100644 --- a/pkg/util/util.go +++ b/pkg/util/util.go @@ -25,7 +25,6 @@ import ( "net" "net/http" "os" - "path" "reflect" "regexp" "runtime" @@ -204,23 +203,6 @@ func AllPtrFieldsNil(obj interface{}) bool { return true } -// Splits a fully qualified name and returns its namespace and name. -// Assumes that the input 'str' has been validated. -func SplitQualifiedName(str string) (string, string) { - parts := strings.Split(str, "/") - if len(parts) < 2 { - return "", str - } - - return parts[0], parts[1] -} - -// Joins 'namespace' and 'name' and returns a fully qualified name -// Assumes that the input is valid. -func JoinQualifiedName(namespace, name string) string { - return path.Join(namespace, name) -} - type Route struct { Interface string Destination net.IP @@ -464,14 +446,6 @@ func GetClient(req *http.Request) string { return "unknown" } -func ShortenString(str string, n int) string { - if len(str) <= n { - return str - } else { - return str[:n] - } -} - func FileExists(filename string) (bool, error) { if _, err := os.Stat(filename); os.IsNotExist(err) { return false, nil diff --git a/pkg/util/util_test.go b/pkg/util/util_test.go index 5e2b01b19da..bb39b5b7a75 100644 --- a/pkg/util/util_test.go +++ b/pkg/util/util_test.go @@ -183,40 +183,6 @@ func TestAllPtrFieldsNil(t *testing.T) { } } -func TestSplitQualifiedName(t *testing.T) { - testCases := []struct { - input string - output []string - }{ - {"kubernetes.io/blah", []string{"kubernetes.io", "blah"}}, - {"blah", []string{"", "blah"}}, - {"kubernetes.io/blah/blah", []string{"kubernetes.io", "blah"}}, - } - for i, tc := range testCases { - namespace, name := SplitQualifiedName(tc.input) - if namespace != tc.output[0] || name != tc.output[1] { - t.Errorf("case[%d]: expected (%q, %q), got (%q, %q)", i, tc.output[0], tc.output[1], namespace, name) - } - } -} - -func TestJoinQualifiedName(t *testing.T) { - testCases := []struct { - input []string - output string - }{ - {[]string{"kubernetes.io", "blah"}, "kubernetes.io/blah"}, - {[]string{"blah", ""}, "blah"}, - {[]string{"kubernetes.io", "blah"}, "kubernetes.io/blah"}, - } - for i, tc := range testCases { - res := JoinQualifiedName(tc.input[0], tc.input[1]) - if res != tc.output { - t.Errorf("case[%d]: expected %q, got %q", i, tc.output, res) - } - } -} - const gatewayfirst = `Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT eth3 00000000 0100FE0A 0003 0 0 1024 00000000 0 0 0 eth3 0000FE0A 00000000 0001 0 0 0 0080FFFF 0 0 0 diff --git a/pkg/volume/aws_ebs/aws_ebs.go b/pkg/volume/aws_ebs/aws_ebs.go index 30e55d9b645..401ac551676 100644 --- a/pkg/volume/aws_ebs/aws_ebs.go +++ b/pkg/volume/aws_ebs/aws_ebs.go @@ -29,9 +29,9 @@ import ( "k8s.io/kubernetes/pkg/api/resource" awscloud "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -321,7 +321,7 @@ func getVolumeIDFromGlobalMount(host volume.VolumeHost, globalPath string) (stri func (ebs *awsElasticBlockStore) GetPath() string { name := awsElasticBlockStorePluginName - return ebs.plugin.host.GetPodVolumeDir(ebs.podUID, util.EscapeQualifiedNameForDisk(name), ebs.volName) + return ebs.plugin.host.GetPodVolumeDir(ebs.podUID, utilstrings.EscapeQualifiedNameForDisk(name), ebs.volName) } type awsElasticBlockStoreCleaner struct { @@ -400,7 +400,7 @@ var _ volume.Deleter = &awsElasticBlockStoreDeleter{} func (d *awsElasticBlockStoreDeleter) GetPath() string { name := awsElasticBlockStorePluginName - return d.plugin.host.GetPodVolumeDir(d.podUID, util.EscapeQualifiedNameForDisk(name), d.volName) + return d.plugin.host.GetPodVolumeDir(d.podUID, utilstrings.EscapeQualifiedNameForDisk(name), d.volName) } func (d *awsElasticBlockStoreDeleter) Delete() error { diff --git a/pkg/volume/cephfs/cephfs.go b/pkg/volume/cephfs/cephfs.go index d362027cb6f..09a85db2aac 100644 --- a/pkg/volume/cephfs/cephfs.go +++ b/pkg/volume/cephfs/cephfs.go @@ -23,8 +23,8 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -209,7 +209,7 @@ func (cephfsVolume *cephfsCleaner) TearDownAt(dir string) error { // GatePath creates global mount path func (cephfsVolume *cephfs) GetPath() string { name := cephfsPluginName - return cephfsVolume.plugin.host.GetPodVolumeDir(cephfsVolume.podUID, util.EscapeQualifiedNameForDisk(name), cephfsVolume.volName) + return cephfsVolume.plugin.host.GetPodVolumeDir(cephfsVolume.podUID, strings.EscapeQualifiedNameForDisk(name), cephfsVolume.volName) } func (cephfsVolume *cephfs) cleanup(dir string) error { diff --git a/pkg/volume/cinder/cinder.go b/pkg/volume/cinder/cinder.go index c824ff586bf..b54c4b89a0a 100644 --- a/pkg/volume/cinder/cinder.go +++ b/pkg/volume/cinder/cinder.go @@ -27,9 +27,9 @@ import ( "k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/cloudprovider/providers/openstack" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -293,7 +293,7 @@ func makeGlobalPDName(host volume.VolumeHost, devName string) string { func (cd *cinderVolume) GetPath() string { name := cinderVolumePluginName - return cd.plugin.host.GetPodVolumeDir(cd.podUID, util.EscapeQualifiedNameForDisk(name), cd.volName) + return cd.plugin.host.GetPodVolumeDir(cd.podUID, strings.EscapeQualifiedNameForDisk(name), cd.volName) } type cinderVolumeCleaner struct { @@ -354,7 +354,7 @@ var _ volume.Deleter = &cinderVolumeDeleter{} func (r *cinderVolumeDeleter) GetPath() string { name := cinderVolumePluginName - return r.plugin.host.GetPodVolumeDir(r.podUID, util.EscapeQualifiedNameForDisk(name), r.volName) + return r.plugin.host.GetPodVolumeDir(r.podUID, strings.EscapeQualifiedNameForDisk(name), r.volName) } func (r *cinderVolumeDeleter) Delete() error { diff --git a/pkg/volume/downwardapi/downwardapi.go b/pkg/volume/downwardapi/downwardapi.go index be71ab431c4..7fc919293e0 100644 --- a/pkg/volume/downwardapi/downwardapi.go +++ b/pkg/volume/downwardapi/downwardapi.go @@ -28,8 +28,8 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/fieldpath" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" utilerrors "k8s.io/kubernetes/pkg/util/errors" + utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "github.com/golang/glog" @@ -345,7 +345,7 @@ func sortLines(values string) string { } func (d *downwardAPIVolume) GetPath() string { - return d.plugin.host.GetPodVolumeDir(d.podUID, util.EscapeQualifiedNameForDisk(downwardAPIPluginName), d.volName) + return d.plugin.host.GetPodVolumeDir(d.podUID, utilstrings.EscapeQualifiedNameForDisk(downwardAPIPluginName), d.volName) } // downwardAPIVolumeCleander handles cleaning up downwardAPI volumes @@ -372,5 +372,5 @@ func (c *downwardAPIVolumeCleaner) TearDownAt(dir string) error { } func (b *downwardAPIVolumeBuilder) getMetaDir() string { - return path.Join(b.plugin.host.GetPodPluginDir(b.podUID, util.EscapeQualifiedNameForDisk(downwardAPIPluginName)), b.volName) + return path.Join(b.plugin.host.GetPodPluginDir(b.podUID, utilstrings.EscapeQualifiedNameForDisk(downwardAPIPluginName)), b.volName) } diff --git a/pkg/volume/empty_dir/empty_dir.go b/pkg/volume/empty_dir/empty_dir.go index 7028f819e55..15ad499bc78 100644 --- a/pkg/volume/empty_dir/empty_dir.go +++ b/pkg/volume/empty_dir/empty_dir.go @@ -24,8 +24,8 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" ) @@ -275,7 +275,7 @@ func (ed *emptyDir) GetPath() string { func GetPath(uid types.UID, volName string, host volume.VolumeHost) string { name := emptyDirPluginName - return host.GetPodVolumeDir(uid, util.EscapeQualifiedNameForDisk(name), volName) + return host.GetPodVolumeDir(uid, strings.EscapeQualifiedNameForDisk(name), volName) } // TearDown simply discards everything in the directory. @@ -324,5 +324,5 @@ func (ed *emptyDir) teardownTmpfs(dir string) error { } func (ed *emptyDir) getMetaDir() string { - return path.Join(ed.plugin.host.GetPodPluginDir(ed.pod.UID, util.EscapeQualifiedNameForDisk(emptyDirPluginName)), ed.volName) + return path.Join(ed.plugin.host.GetPodPluginDir(ed.pod.UID, strings.EscapeQualifiedNameForDisk(emptyDirPluginName)), ed.volName) } diff --git a/pkg/volume/fc/fc.go b/pkg/volume/fc/fc.go index 8029f1690fc..1d99393ebd3 100644 --- a/pkg/volume/fc/fc.go +++ b/pkg/volume/fc/fc.go @@ -23,9 +23,9 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -156,7 +156,7 @@ type fcDisk struct { func (fc *fcDisk) GetPath() string { name := fcPluginName // safe to use PodVolumeDir now: volume teardown occurs before pod is cleaned up - return fc.plugin.host.GetPodVolumeDir(fc.podUID, util.EscapeQualifiedNameForDisk(name), fc.volName) + return fc.plugin.host.GetPodVolumeDir(fc.podUID, strings.EscapeQualifiedNameForDisk(name), fc.volName) } type fcDiskBuilder struct { diff --git a/pkg/volume/flexvolume/flexvolume.go b/pkg/volume/flexvolume/flexvolume.go index c558453bbcb..0096d5698d1 100644 --- a/pkg/volume/flexvolume/flexvolume.go +++ b/pkg/volume/flexvolume/flexvolume.go @@ -26,9 +26,9 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -45,7 +45,7 @@ func ProbeVolumePlugins(pluginDir string) []volume.VolumePlugin { // then, executable will be pluginDir/dirname/cifs if f.IsDir() { execPath := path.Join(pluginDir, f.Name()) - plugins = append(plugins, &flexVolumePlugin{driverName: util.UnescapePluginName(f.Name()), execPath: execPath}) + plugins = append(plugins, &flexVolumePlugin{driverName: utilstrings.UnescapePluginName(f.Name()), execPath: execPath}) } } return plugins @@ -326,7 +326,7 @@ func (f *flexVolumeBuilder) IsReadOnly() bool { // GetPathFromPlugin gets the actual volume mount directory based on plugin. func (f *flexVolumeDisk) GetPath() string { name := f.driverName - return f.plugin.host.GetPodVolumeDir(f.podUID, util.EscapeQualifiedNameForDisk(name), f.volName) + return f.plugin.host.GetPodVolumeDir(f.podUID, utilstrings.EscapeQualifiedNameForDisk(name), f.volName) } // TearDown simply deletes everything in the directory. diff --git a/pkg/volume/flocker/plugin.go b/pkg/volume/flocker/plugin.go index a4b4fa99ba5..a7c6a9c7af6 100644 --- a/pkg/volume/flocker/plugin.go +++ b/pkg/volume/flocker/plugin.go @@ -25,9 +25,9 @@ import ( flockerclient "github.com/ClusterHQ/flocker-go" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" ) @@ -151,7 +151,7 @@ func (b flockerBuilder) newFlockerClient() (*flockerclient.Client, error) { func (b *flockerBuilder) getMetaDir() string { return path.Join( b.plugin.host.GetPodPluginDir( - b.flocker.pod.UID, util.EscapeQualifiedNameForDisk(flockerPluginName), + b.flocker.pod.UID, strings.EscapeQualifiedNameForDisk(flockerPluginName), ), b.datasetName, ) diff --git a/pkg/volume/gce_pd/gce_pd.go b/pkg/volume/gce_pd/gce_pd.go index f77a0a4c78f..86a42ea7822 100644 --- a/pkg/volume/gce_pd/gce_pd.go +++ b/pkg/volume/gce_pd/gce_pd.go @@ -26,9 +26,9 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -289,7 +289,7 @@ func makeGlobalPDName(host volume.VolumeHost, devName string) string { func (pd *gcePersistentDisk) GetPath() string { name := gcePersistentDiskPluginName - return pd.plugin.host.GetPodVolumeDir(pd.podUID, util.EscapeQualifiedNameForDisk(name), pd.volName) + return pd.plugin.host.GetPodVolumeDir(pd.podUID, strings.EscapeQualifiedNameForDisk(name), pd.volName) } type gcePersistentDiskCleaner struct { @@ -353,7 +353,7 @@ var _ volume.Deleter = &gcePersistentDiskDeleter{} func (d *gcePersistentDiskDeleter) GetPath() string { name := gcePersistentDiskPluginName - return d.plugin.host.GetPodVolumeDir(d.podUID, util.EscapeQualifiedNameForDisk(name), d.volName) + return d.plugin.host.GetPodVolumeDir(d.podUID, strings.EscapeQualifiedNameForDisk(name), d.volName) } func (d *gcePersistentDiskDeleter) Delete() error { diff --git a/pkg/volume/git_repo/git_repo.go b/pkg/volume/git_repo/git_repo.go index cd6bd05c5a6..689ab8c4c9b 100644 --- a/pkg/volume/git_repo/git_repo.go +++ b/pkg/volume/git_repo/git_repo.go @@ -24,8 +24,8 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" + utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" ) @@ -97,7 +97,7 @@ var _ volume.Volume = &gitRepoVolume{} func (gr *gitRepoVolume) GetPath() string { name := gitRepoPluginName - return gr.plugin.host.GetPodVolumeDir(gr.podUID, util.EscapeQualifiedNameForDisk(name), gr.volName) + return gr.plugin.host.GetPodVolumeDir(gr.podUID, utilstrings.EscapeQualifiedNameForDisk(name), gr.volName) } // gitRepoVolumeBuilder builds git repo volumes. @@ -195,7 +195,7 @@ func (b *gitRepoVolumeBuilder) SetUpAt(dir string) error { } func (b *gitRepoVolumeBuilder) getMetaDir() string { - return path.Join(b.plugin.host.GetPodPluginDir(b.podUID, util.EscapeQualifiedNameForDisk(gitRepoPluginName)), b.volName) + return path.Join(b.plugin.host.GetPodPluginDir(b.podUID, utilstrings.EscapeQualifiedNameForDisk(gitRepoPluginName)), b.volName) } func (b *gitRepoVolumeBuilder) execCommand(command string, args []string, dir string) ([]byte, error) { diff --git a/pkg/volume/glusterfs/glusterfs.go b/pkg/volume/glusterfs/glusterfs.go index 4b0e5d9f10a..50e2d435d1a 100644 --- a/pkg/volume/glusterfs/glusterfs.go +++ b/pkg/volume/glusterfs/glusterfs.go @@ -24,9 +24,9 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -194,7 +194,7 @@ func (b *glusterfsBuilder) SetUpAt(dir string) error { func (glusterfsVolume *glusterfs) GetPath() string { name := glusterfsPluginName - return glusterfsVolume.plugin.host.GetPodVolumeDir(glusterfsVolume.pod.UID, util.EscapeQualifiedNameForDisk(name), glusterfsVolume.volName) + return glusterfsVolume.plugin.host.GetPodVolumeDir(glusterfsVolume.pod.UID, strings.EscapeQualifiedNameForDisk(name), glusterfsVolume.volName) } type glusterfsCleaner struct { diff --git a/pkg/volume/iscsi/iscsi.go b/pkg/volume/iscsi/iscsi.go index cea14098720..6d01b31336b 100644 --- a/pkg/volume/iscsi/iscsi.go +++ b/pkg/volume/iscsi/iscsi.go @@ -23,9 +23,9 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -154,7 +154,7 @@ type iscsiDisk struct { func (iscsi *iscsiDisk) GetPath() string { name := iscsiPluginName // safe to use PodVolumeDir now: volume teardown occurs before pod is cleaned up - return iscsi.plugin.host.GetPodVolumeDir(iscsi.podUID, util.EscapeQualifiedNameForDisk(name), iscsi.volName) + return iscsi.plugin.host.GetPodVolumeDir(iscsi.podUID, utilstrings.EscapeQualifiedNameForDisk(name), iscsi.volName) } type iscsiDiskBuilder struct { diff --git a/pkg/volume/nfs/nfs.go b/pkg/volume/nfs/nfs.go index 300777e5266..4b1934f85f4 100644 --- a/pkg/volume/nfs/nfs.go +++ b/pkg/volume/nfs/nfs.go @@ -22,8 +22,8 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "github.com/golang/glog" @@ -137,7 +137,7 @@ type nfs struct { func (nfsVolume *nfs) GetPath() string { name := nfsPluginName - return nfsVolume.plugin.host.GetPodVolumeDir(nfsVolume.pod.UID, util.EscapeQualifiedNameForDisk(name), nfsVolume.volName) + return nfsVolume.plugin.host.GetPodVolumeDir(nfsVolume.pod.UID, strings.EscapeQualifiedNameForDisk(name), nfsVolume.volName) } type nfsBuilder struct { @@ -210,7 +210,7 @@ func (b *nfsBuilder) SetUpAt(dir string) error { // //func (c *nfsCleaner) GetPath() string { // name := nfsPluginName -// return c.plugin.host.GetPodVolumeDir(c.pod.UID, util.EscapeQualifiedNameForDisk(name), c.volName) +// return c.plugin.host.GetPodVolumeDir(c.pod.UID, strings.EscapeQualifiedNameForDisk(name), c.volName) //} var _ volume.Cleaner = &nfsCleaner{} diff --git a/pkg/volume/persistent_claim/persistent_claim_test.go b/pkg/volume/persistent_claim/persistent_claim_test.go index 89ab507ce5d..ea1c3cc6d6b 100644 --- a/pkg/volume/persistent_claim/persistent_claim_test.go +++ b/pkg/volume/persistent_claim/persistent_claim_test.go @@ -26,7 +26,7 @@ import ( client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/client/unversioned/testclient" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" + utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/gce_pd" "k8s.io/kubernetes/pkg/volume/host_path" @@ -105,7 +105,7 @@ func TestNewBuilder(t *testing.T) { }, plugin: gce_pd.ProbeVolumePlugins()[0], testFunc: func(builder volume.Builder, plugin volume.VolumePlugin) error { - if !strings.Contains(builder.GetPath(), util.EscapeQualifiedNameForDisk(plugin.Name())) { + if !strings.Contains(builder.GetPath(), utilstrings.EscapeQualifiedNameForDisk(plugin.Name())) { return fmt.Errorf("builder path expected to contain plugin name. Got: %s", builder.GetPath()) } return nil diff --git a/pkg/volume/rbd/rbd.go b/pkg/volume/rbd/rbd.go index 7ba955230ef..c40aa4a67ff 100644 --- a/pkg/volume/rbd/rbd.go +++ b/pkg/volume/rbd/rbd.go @@ -22,9 +22,9 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ) @@ -179,7 +179,7 @@ type rbd struct { func (rbd *rbd) GetPath() string { name := rbdPluginName // safe to use PodVolumeDir now: volume teardown occurs before pod is cleaned up - return rbd.plugin.host.GetPodVolumeDir(rbd.podUID, util.EscapeQualifiedNameForDisk(name), rbd.volName) + return rbd.plugin.host.GetPodVolumeDir(rbd.podUID, strings.EscapeQualifiedNameForDisk(name), rbd.volName) } type rbdBuilder struct { diff --git a/pkg/volume/secret/secret.go b/pkg/volume/secret/secret.go index 2bb426d3c60..aa91a743a73 100644 --- a/pkg/volume/secret/secret.go +++ b/pkg/volume/secret/secret.go @@ -24,9 +24,9 @@ import ( "github.com/golang/glog" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/types" - "k8s.io/kubernetes/pkg/util" ioutil "k8s.io/kubernetes/pkg/util/io" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" ) @@ -84,7 +84,7 @@ type secretVolume struct { var _ volume.Volume = &secretVolume{} func (sv *secretVolume) GetPath() string { - return sv.plugin.host.GetPodVolumeDir(sv.podUID, util.EscapeQualifiedNameForDisk(secretPluginName), sv.volName) + return sv.plugin.host.GetPodVolumeDir(sv.podUID, strings.EscapeQualifiedNameForDisk(secretPluginName), sv.volName) } // secretVolumeBuilder handles retrieving secrets from the API server @@ -117,7 +117,7 @@ var wrappedVolumeSpec = &volume.Spec{ } func (b *secretVolumeBuilder) getMetaDir() string { - return path.Join(b.plugin.host.GetPodPluginDir(b.podUID, util.EscapeQualifiedNameForDisk(secretPluginName)), b.volName) + return path.Join(b.plugin.host.GetPodPluginDir(b.podUID, strings.EscapeQualifiedNameForDisk(secretPluginName)), b.volName) } func (b *secretVolumeBuilder) SetUpAt(dir string) error { diff --git a/pkg/volume/testing.go b/pkg/volume/testing.go index 02f8fba72fc..d8b7898d866 100644 --- a/pkg/volume/testing.go +++ b/pkg/volume/testing.go @@ -32,6 +32,7 @@ import ( "k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util/io" "k8s.io/kubernetes/pkg/util/mount" + utilstrings "k8s.io/kubernetes/pkg/util/strings" ) // fakeVolumeHost is useful for testing volume plugins. @@ -192,7 +193,7 @@ func (fv *FakeVolume) SetUpAt(dir string) error { } func (fv *FakeVolume) GetPath() string { - return path.Join(fv.Plugin.Host.GetPodVolumeDir(fv.PodUID, util.EscapeQualifiedNameForDisk(fv.Plugin.PluginName), fv.VolName)) + return path.Join(fv.Plugin.Host.GetPodVolumeDir(fv.PodUID, utilstrings.EscapeQualifiedNameForDisk(fv.Plugin.PluginName), fv.VolName)) } func (fv *FakeVolume) TearDown() error {