From 9183940293d431fe778199da6d81b246d4fdf32d Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 13:45:27 -0800 Subject: [PATCH 1/9] cleanup atomic-write temp directories Signed-off-by: Jess Frazelle --- pkg/volume/util/atomic_writer_test.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/volume/util/atomic_writer_test.go b/pkg/volume/util/atomic_writer_test.go index 36777d9b6ca..4c830b1e67d 100644 --- a/pkg/volume/util/atomic_writer_test.go +++ b/pkg/volume/util/atomic_writer_test.go @@ -37,6 +37,7 @@ func TestNewAtomicWriter(t *testing.T) { if err != nil { t.Fatalf("unexpected error creating tmp dir: %v", err) } + defer os.RemoveAll(targetDir) _, err = NewAtomicWriter(targetDir, "-test-") if err != nil { @@ -225,6 +226,7 @@ func TestPathsToRemove(t *testing.T) { t.Errorf("%v: unexpected error creating tmp dir: %v", tc.name, err) continue } + defer os.RemoveAll(targetDir) writer := &AtomicWriter{targetDir: targetDir, logContext: "-test-"} err = writer.Write(tc.payload1) @@ -382,6 +384,7 @@ IAAAAAAAsDyZDwU=` t.Errorf("%v: unexpected error creating tmp dir: %v", tc.name, err) continue } + defer os.RemoveAll(targetDir) writer := &AtomicWriter{targetDir: targetDir, logContext: "-test-"} err = writer.Write(tc.payload) @@ -557,6 +560,7 @@ func TestUpdate(t *testing.T) { t.Errorf("%v: unexpected error creating tmp dir: %v", tc.name, err) continue } + defer os.RemoveAll(targetDir) writer := &AtomicWriter{targetDir: targetDir, logContext: "-test-"} @@ -724,6 +728,7 @@ func TestMultipleUpdates(t *testing.T) { t.Errorf("%v: unexpected error creating tmp dir: %v", tc.name, err) continue } + defer os.RemoveAll(targetDir) writer := &AtomicWriter{targetDir: targetDir, logContext: "-test-"} From a2dbd456a7967b58c00e2b6c0ff5ce63daea6bd0 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 14:31:01 -0800 Subject: [PATCH 2/9] cleanup all /tmp/kubelet_test files Signed-off-by: Jess Frazelle --- pkg/kubelet/kubelet_cadvisor_test.go | 9 ++++++ pkg/kubelet/kubelet_getters_test.go | 2 ++ pkg/kubelet/kubelet_network_test.go | 3 ++ pkg/kubelet/kubelet_node_status_test.go | 8 +++++ pkg/kubelet/kubelet_pods_test.go | 7 +++++ pkg/kubelet/kubelet_resources_test.go | 1 + pkg/kubelet/kubelet_test.go | 39 +++++++++++++++++++++++++ pkg/kubelet/kubelet_volumes_test.go | 5 ++++ 8 files changed, 74 insertions(+) diff --git a/pkg/kubelet/kubelet_cadvisor_test.go b/pkg/kubelet/kubelet_cadvisor_test.go index 6c21547d5f4..3e544189fa2 100644 --- a/pkg/kubelet/kubelet_cadvisor_test.go +++ b/pkg/kubelet/kubelet_cadvisor_test.go @@ -36,6 +36,7 @@ func TestGetContainerInfo(t *testing.T) { } testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() fakeRuntime := testKubelet.fakeRuntime kubelet := testKubelet.kubelet cadvisorReq := &cadvisorapi.ContainerInfoRequest{} @@ -72,6 +73,7 @@ func TestGetRawContainerInfoRoot(t *testing.T) { }, } testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet mockCadvisor := testKubelet.fakeCadvisor cadvisorReq := &cadvisorapi.ContainerInfoRequest{} @@ -99,6 +101,7 @@ func TestGetRawContainerInfoSubcontainers(t *testing.T) { }, } testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet mockCadvisor := testKubelet.fakeCadvisor cadvisorReq := &cadvisorapi.ContainerInfoRequest{} @@ -117,6 +120,7 @@ func TestGetRawContainerInfoSubcontainers(t *testing.T) { func TestGetContainerInfoWhenCadvisorFailed(t *testing.T) { containerID := "ab2cdf" testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet mockCadvisor := testKubelet.fakeCadvisor fakeRuntime := testKubelet.fakeRuntime @@ -152,6 +156,7 @@ func TestGetContainerInfoWhenCadvisorFailed(t *testing.T) { func TestGetContainerInfoOnNonExistContainer(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet mockCadvisor := testKubelet.fakeCadvisor fakeRuntime := testKubelet.fakeRuntime @@ -166,6 +171,7 @@ func TestGetContainerInfoOnNonExistContainer(t *testing.T) { func TestGetContainerInfoWhenContainerRuntimeFailed(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet mockCadvisor := testKubelet.fakeCadvisor fakeRuntime := testKubelet.fakeRuntime @@ -187,6 +193,7 @@ func TestGetContainerInfoWhenContainerRuntimeFailed(t *testing.T) { func TestGetContainerInfoWithNoContainers(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet mockCadvisor := testKubelet.fakeCadvisor @@ -205,6 +212,7 @@ func TestGetContainerInfoWithNoContainers(t *testing.T) { func TestGetContainerInfoWithNoMatchingContainers(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() fakeRuntime := testKubelet.fakeRuntime kubelet := testKubelet.kubelet mockCadvisor := testKubelet.fakeCadvisor @@ -253,6 +261,7 @@ func TestHasDedicatedImageFs(t *testing.T) { } for testName, testCase := range testCases { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet mockCadvisor := testKubelet.fakeCadvisor mockCadvisor.On("Start").Return(nil) diff --git a/pkg/kubelet/kubelet_getters_test.go b/pkg/kubelet/kubelet_getters_test.go index 0c05c39435f..c72145d9750 100644 --- a/pkg/kubelet/kubelet_getters_test.go +++ b/pkg/kubelet/kubelet_getters_test.go @@ -25,6 +25,7 @@ import ( func TestKubeletDirs(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet root := kubelet.rootDirectory @@ -87,6 +88,7 @@ func TestKubeletDirs(t *testing.T) { func TestKubeletDirsCompat(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet root := kubelet.rootDirectory if err := os.MkdirAll(root, 0750); err != nil { diff --git a/pkg/kubelet/kubelet_network_test.go b/pkg/kubelet/kubelet_network_test.go index 65d185fb2bc..ab126307313 100644 --- a/pkg/kubelet/kubelet_network_test.go +++ b/pkg/kubelet/kubelet_network_test.go @@ -28,6 +28,7 @@ import ( func TestNodeIPParam(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet tests := []struct { nodeIP string @@ -96,6 +97,7 @@ func TestParseResolvConf(t *testing.T) { {"#comment\nnameserver 1.2.3.4\n#comment\nsearch foo\ncomment", []string{"1.2.3.4"}, []string{"foo"}}, } testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet for i, tc := range testCases { ns, srch, err := kubelet.parseResolvConf(strings.NewReader(tc.data)) @@ -178,6 +180,7 @@ func TestCleanupBandwidthLimits(t *testing.T) { } testKube := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKube.Cleanup() testKube.kubelet.shaper = shaper for _, pod := range test.pods { diff --git a/pkg/kubelet/kubelet_node_status_test.go b/pkg/kubelet/kubelet_node_status_test.go index c4f11fbce4f..9f48929dd47 100644 --- a/pkg/kubelet/kubelet_node_status_test.go +++ b/pkg/kubelet/kubelet_node_status_test.go @@ -114,6 +114,7 @@ func TestUpdateNewNodeStatus(t *testing.T) { inputImageList, expectedImageList := generateTestingImageList(maxImagesInNodeStatus + 1) testKubelet := newTestKubeletWithImageList( t, inputImageList, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet kubeClient := testKubelet.fakeKubeClient existingNode := v1.Node{ObjectMeta: v1.ObjectMeta{Name: testKubeletHostname}} @@ -253,6 +254,7 @@ func TestUpdateNewNodeStatus(t *testing.T) { func TestUpdateNewNodeOutOfDiskStatusWithTransitionFrequency(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet kubeClient := testKubelet.fakeKubeClient existingNode := v1.Node{ObjectMeta: v1.ObjectMeta{Name: testKubeletHostname}} @@ -328,6 +330,7 @@ func TestUpdateNewNodeOutOfDiskStatusWithTransitionFrequency(t *testing.T) { func TestUpdateExistingNodeStatus(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet kubeClient := testKubelet.fakeKubeClient existingNode := v1.Node{ @@ -523,6 +526,7 @@ func TestUpdateExistingNodeStatus(t *testing.T) { func TestUpdateExistingNodeOutOfDiskStatusWithTransitionFrequency(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet clock := testKubelet.fakeClock // Do not set nano second, because apiserver function doesn't support nano second. (Only support @@ -681,6 +685,7 @@ func TestUpdateExistingNodeOutOfDiskStatusWithTransitionFrequency(t *testing.T) func TestUpdateNodeStatusWithRuntimeStateError(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet clock := testKubelet.fakeClock kubeClient := testKubelet.fakeKubeClient @@ -900,6 +905,7 @@ func TestUpdateNodeStatusWithRuntimeStateError(t *testing.T) { func TestUpdateNodeStatusError(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet // No matching node for the kubelet testKubelet.fakeKubeClient.ReactionChain = fake.NewSimpleClientset(&v1.NodeList{Items: []v1.Node{}}).ReactionChain @@ -914,6 +920,7 @@ func TestUpdateNodeStatusError(t *testing.T) { func TestRegisterWithApiServer(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet kubeClient := testKubelet.fakeKubeClient kubeClient.AddReactor("create", "nodes", func(action core.Action) (bool, runtime.Object, error) { @@ -1094,6 +1101,7 @@ func TestTryRegisterWithApiServer(t *testing.T) { for _, tc := range cases { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled is a don't-care for this test */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet kubeClient := testKubelet.fakeKubeClient diff --git a/pkg/kubelet/kubelet_pods_test.go b/pkg/kubelet/kubelet_pods_test.go index 3ae5c0b462a..5c13e22aa58 100644 --- a/pkg/kubelet/kubelet_pods_test.go +++ b/pkg/kubelet/kubelet_pods_test.go @@ -113,6 +113,7 @@ func TestMakeMounts(t *testing.T) { func TestRunInContainerNoSuchPod(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet fakeRuntime := testKubelet.fakeRuntime fakeRuntime.PodList = []*containertest.FakePod{} @@ -132,6 +133,7 @@ func TestRunInContainerNoSuchPod(t *testing.T) { func TestRunInContainer(t *testing.T) { for _, testError := range []error{nil, errors.New("bar")} { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet fakeRuntime := testKubelet.fakeRuntime fakeCommandRunner := containertest.FakeContainerCommandRunner{ @@ -165,6 +167,7 @@ func TestRunInContainer(t *testing.T) { func TestGenerateRunContainerOptions_DNSConfigurationParams(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet clusterNS := "203.0.113.1" @@ -737,6 +740,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { for _, tc := range testCases { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kl := testKubelet.kubelet kl.masterServiceNamespace = tc.masterServiceNs if tc.nilLister { @@ -1202,6 +1206,7 @@ func TestExec(t *testing.T) { for _, tc := range testcases { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet testKubelet.fakeRuntime.PodList = []*containertest.FakePod{ {Pod: &kubecontainer.Pod{ @@ -1292,6 +1297,7 @@ func TestPortForward(t *testing.T) { for _, tc := range testcases { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet testKubelet.fakeRuntime.PodList = []*containertest.FakePod{ {Pod: &kubecontainer.Pod{ @@ -1439,6 +1445,7 @@ func TestHasHostMountPVC(t *testing.T) { for k, v := range tests { testKubelet := newTestKubelet(t, false) + defer testKubelet.Cleanup() pod := &v1.Pod{ Spec: v1.PodSpec{}, } diff --git a/pkg/kubelet/kubelet_resources_test.go b/pkg/kubelet/kubelet_resources_test.go index b0a09da9222..69f37bd5cf2 100644 --- a/pkg/kubelet/kubelet_resources_test.go +++ b/pkg/kubelet/kubelet_resources_test.go @@ -33,6 +33,7 @@ func TestPodResourceLimitsDefaulting(t *testing.T) { cpuCores := resource.MustParse("10") memoryCapacity := resource.MustParse("10Gi") tk := newTestKubelet(t, true) + defer tk.Cleanup() tk.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) tk.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{ NumCores: int(cpuCores.Value()), diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 351dd69b681..8d3ce5b508e 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -106,6 +106,12 @@ type TestKubelet struct { volumePlugin *volumetest.FakeVolumePlugin } +func (tk *TestKubelet) Cleanup() { + if tk.kubelet != nil { + os.RemoveAll(tk.kubelet.rootDirectory) + } +} + // newTestKubelet returns test kubelet with two images. func newTestKubelet(t *testing.T, controllerAttachDetachEnabled bool) *TestKubelet { imageList := []kubecontainer.Image{ @@ -289,6 +295,7 @@ var emptyPodUIDs map[types.UID]kubetypes.SyncPodType func TestSyncLoopTimeUpdate(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) kubelet := testKubelet.kubelet @@ -314,6 +321,7 @@ func TestSyncLoopTimeUpdate(t *testing.T) { func TestSyncLoopAbort(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) kubelet := testKubelet.kubelet kubelet.runtimeState.setRuntimeSync(time.Now()) @@ -334,6 +342,7 @@ func TestSyncLoopAbort(t *testing.T) { func TestSyncPodsStartPod(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -356,6 +365,7 @@ func TestSyncPodsDeletesWhenSourcesAreReady(t *testing.T) { ready := false testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() fakeRuntime := testKubelet.fakeRuntime testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -410,6 +420,7 @@ func (ls testNodeLister) List() (v1.NodeList, error) { // Tests that we handle port conflicts correctly by setting the failed status in status map. func TestHandlePortConflicts(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kl := testKubelet.kubelet testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -526,6 +537,7 @@ func TestCriticalPrioritySorting(t *testing.T) { // Tests that we handle host name conflicts correctly by setting the failed status in status map. func TestHandleHostNameConflicts(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kl := testKubelet.kubelet testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -577,6 +589,7 @@ func TestHandleHostNameConflicts(t *testing.T) { // Tests that we handle not matching labels selector correctly by setting the failed status in status map. func TestHandleNodeSelector(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kl := testKubelet.kubelet nodes := []v1.Node{ { @@ -617,6 +630,7 @@ func TestHandleNodeSelector(t *testing.T) { // Tests that we handle exceeded resources correctly by setting the failed status in status map. func TestHandleMemExceeded(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kl := testKubelet.kubelet nodes := []v1.Node{ {ObjectMeta: v1.ObjectMeta{Name: testKubeletHostname}, @@ -665,6 +679,7 @@ func TestHandleMemExceeded(t *testing.T) { // TODO(filipg): This test should be removed once StatusSyncer can do garbage collection without external signal. func TestPurgingObsoleteStatusMapEntries(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) testKubelet.fakeCadvisor.On("RootFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -696,6 +711,7 @@ func TestPurgingObsoleteStatusMapEntries(t *testing.T) { func TestValidateContainerLogStatus(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet containerName := "x" testCases := []struct { @@ -822,6 +838,7 @@ func updateDiskSpacePolicy(kubelet *Kubelet, mockCadvisor *cadvisortest.Mock, ro func TestCreateMirrorPod(t *testing.T) { for _, updateType := range []kubetypes.SyncPodType{kubetypes.SyncPodCreate, kubetypes.SyncPodUpdate} { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) @@ -848,6 +865,7 @@ func TestCreateMirrorPod(t *testing.T) { func TestDeleteOutdatedMirrorPod(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) @@ -890,6 +908,7 @@ func TestDeleteOutdatedMirrorPod(t *testing.T) { func TestDeleteOrphanedMirrorPods(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -981,6 +1000,7 @@ func TestGetContainerInfoForMirrorPods(t *testing.T) { } testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() fakeRuntime := testKubelet.fakeRuntime mockCadvisor := testKubelet.fakeCadvisor cadvisorReq := &cadvisorapi.ContainerInfoRequest{} @@ -1011,6 +1031,7 @@ func TestGetContainerInfoForMirrorPods(t *testing.T) { func TestHostNetworkAllowed(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) @@ -1043,6 +1064,7 @@ func TestHostNetworkAllowed(t *testing.T) { func TestHostNetworkDisallowed(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) @@ -1074,6 +1096,7 @@ func TestHostNetworkDisallowed(t *testing.T) { func TestPrivilegeContainerAllowed(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) @@ -1103,6 +1126,7 @@ func TestPrivilegeContainerAllowed(t *testing.T) { func TestPrivilegedContainerDisallowed(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -1129,6 +1153,7 @@ func TestPrivilegedContainerDisallowed(t *testing.T) { func TestNetworkErrorsWithoutHostNetwork(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -1170,6 +1195,7 @@ func TestNetworkErrorsWithoutHostNetwork(t *testing.T) { func TestFilterOutTerminatedPods(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet pods := newTestPods(5) pods[0].Status.Phase = v1.PodFailed @@ -1236,6 +1262,7 @@ func TestMakePortMappings(t *testing.T) { func TestSyncPodsSetStatusToFailedForPodsThatRunTooLong(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() fakeRuntime := testKubelet.fakeRuntime testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) kubelet := testKubelet.kubelet @@ -1283,6 +1310,7 @@ func TestSyncPodsSetStatusToFailedForPodsThatRunTooLong(t *testing.T) { func TestSyncPodsDoesNotSetPodsThatDidNotRunTooLongToFailed(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() fakeRuntime := testKubelet.fakeRuntime testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) @@ -1352,6 +1380,7 @@ func podWithUidNameNsSpec(uid types.UID, name, namespace string, spec v1.PodSpec func TestDeletePodDirsForDeletedPods(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) @@ -1391,6 +1420,7 @@ func syncAndVerifyPodDir(t *testing.T, testKubelet *TestKubelet, pods []*v1.Pod, func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) @@ -1413,6 +1443,7 @@ func TestDoesNotDeletePodDirsForTerminatedPods(t *testing.T) { func TestDoesNotDeletePodDirsIfContainerIsRunning(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("Start").Return(nil) testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) @@ -1445,6 +1476,7 @@ func TestDoesNotDeletePodDirsIfContainerIsRunning(t *testing.T) { func TestGetPodsToSync(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet clock := testKubelet.fakeClock pods := newTestPods(5) @@ -1475,6 +1507,7 @@ func TestGetPodsToSync(t *testing.T) { func TestGenerateAPIPodStatusWithSortedContainers(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -1537,6 +1570,7 @@ func TestGenerateAPIPodStatusWithReasonCache(t *testing.T) { testErrorReason := fmt.Errorf("test-error") emptyContainerID := (&kubecontainer.ContainerID{}).String() testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -1726,6 +1760,7 @@ func TestGenerateAPIPodStatusWithDifferentRestartPolicies(t *testing.T) { testErrorReason := fmt.Errorf("test-error") emptyContainerID := (&kubecontainer.ContainerID{}).String() testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() testKubelet.fakeCadvisor.On("VersionInfo").Return(&cadvisorapi.VersionInfo{}, nil) testKubelet.fakeCadvisor.On("MachineInfo").Return(&cadvisorapi.MachineInfo{}, nil) testKubelet.fakeCadvisor.On("ImagesFsInfo").Return(cadvisorapiv2.FsInfo{}, nil) @@ -1892,6 +1927,7 @@ func (a *testPodAdmitHandler) Admit(attrs *lifecycle.PodAdmitAttributes) lifecyc // Test verifies that the kubelet invokes an admission handler during HandlePodAdditions. func TestHandlePodAdditionsInvokesPodAdmitHandlers(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kl := testKubelet.kubelet kl.nodeLister = testNodeLister{nodes: []v1.Node{ { @@ -1971,6 +2007,7 @@ func (a *testPodSyncLoopHandler) ShouldSync(pod *v1.Pod) bool { // TestGetPodsToSyncInvokesPodSyncLoopHandlers ensures that the get pods to sync routine invokes the handler. func TestGetPodsToSyncInvokesPodSyncLoopHandlers(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet pods := newTestPods(5) expected := []*v1.Pod{pods[0]} @@ -2006,6 +2043,7 @@ func (a *testPodSyncHandler) ShouldEvict(pod *v1.Pod) lifecycle.ShouldEvictRespo // TestGenerateAPIPodStatusInvokesPodSyncHandlers invokes the handlers and reports the proper status func TestGenerateAPIPodStatusInvokesPodSyncHandlers(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet pod := newTestPods(1)[0] podsToEvict := []*v1.Pod{pod} @@ -2023,6 +2061,7 @@ func TestGenerateAPIPodStatusInvokesPodSyncHandlers(t *testing.T) { func TestSyncPodKillPod(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kl := testKubelet.kubelet pod := &v1.Pod{ ObjectMeta: v1.ObjectMeta{ diff --git a/pkg/kubelet/kubelet_volumes_test.go b/pkg/kubelet/kubelet_volumes_test.go index 1131f8b1d7b..402b08f11fc 100644 --- a/pkg/kubelet/kubelet_volumes_test.go +++ b/pkg/kubelet/kubelet_volumes_test.go @@ -85,6 +85,7 @@ func TestListVolumesForPod(t *testing.T) { func TestPodVolumesExist(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet pods := []*v1.Pod{ @@ -169,6 +170,7 @@ func TestPodVolumesExist(t *testing.T) { func TestVolumeAttachAndMountControllerDisabled(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet pod := podWithUidNameNsSpec("12345678", "foo", "test", v1.PodSpec{ @@ -214,6 +216,7 @@ func TestVolumeAttachAndMountControllerDisabled(t *testing.T) { func TestVolumeUnmountAndDetachControllerDisabled(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet pod := podWithUidNameNsSpec("12345678", "foo", "test", v1.PodSpec{ @@ -284,6 +287,7 @@ func TestVolumeUnmountAndDetachControllerDisabled(t *testing.T) { func TestVolumeAttachAndMountControllerEnabled(t *testing.T) { testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet kubeClient := testKubelet.fakeKubeClient kubeClient.AddReactor("get", "nodes", @@ -352,6 +356,7 @@ func TestVolumeAttachAndMountControllerEnabled(t *testing.T) { func TestVolumeUnmountAndDetachControllerEnabled(t *testing.T) { testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() kubelet := testKubelet.kubelet kubeClient := testKubelet.fakeKubeClient kubeClient.AddReactor("get", "nodes", From ba617fdd1b0994628a6a896e3b22d480d4027764 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 14:58:25 -0800 Subject: [PATCH 3/9] cleanup metrics_du_test in /tmp Signed-off-by: Jess Frazelle --- pkg/volume/testing/testing.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/volume/testing/testing.go b/pkg/volume/testing/testing.go index aaad59a695d..5babfd7afef 100644 --- a/pkg/volume/testing/testing.go +++ b/pkg/volume/testing/testing.go @@ -507,6 +507,7 @@ func FindEmptyDirectoryUsageOnTmpfs() (*resource.Quantity, error) { if err != nil { return nil, err } + defer os.RemoveAll(tmpDir) out, err := exec.Command("nice", "-n", "19", "du", "-s", "-B", "1", tmpDir).CombinedOutput() if err != nil { return nil, fmt.Errorf("failed command 'du' on %s with error %v", tmpDir, err) From ce11f74961ecc63bcddb8e62b4f7f00676cbb157 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 15:22:28 -0800 Subject: [PATCH 4/9] cleanup flockerVolumeTest in /tmp Signed-off-by: Jess Frazelle --- pkg/volume/flocker/flocker_util_test.go | 5 ++++- pkg/volume/flocker/flocker_volume_test.go | 15 +++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/pkg/volume/flocker/flocker_util_test.go b/pkg/volume/flocker/flocker_util_test.go index d10c1c148d2..c47ca006715 100644 --- a/pkg/volume/flocker/flocker_util_test.go +++ b/pkg/volume/flocker/flocker_util_test.go @@ -18,6 +18,7 @@ package flocker import ( "fmt" + "os" "testing" "k8s.io/kubernetes/pkg/api/v1" @@ -38,7 +39,9 @@ func TestFlockerUtil_CreateVolume(t *testing.T) { } fakeFlockerClient := newFakeFlockerClient() - provisioner := newTestableProvisioner(assert, options).(*flockerVolumeProvisioner) + dir, p := newTestableProvisioner(assert, options) + provisioner := p.(*flockerVolumeProvisioner) + defer os.RemoveAll(dir) provisioner.flockerClient = fakeFlockerClient flockerUtil := &FlockerUtil{} diff --git a/pkg/volume/flocker/flocker_volume_test.go b/pkg/volume/flocker/flocker_volume_test.go index 2e7d9a69628..172d75ee869 100644 --- a/pkg/volume/flocker/flocker_volume_test.go +++ b/pkg/volume/flocker/flocker_volume_test.go @@ -18,6 +18,7 @@ package flocker import ( "fmt" + "os" "testing" "k8s.io/kubernetes/pkg/api/v1" @@ -29,7 +30,7 @@ import ( "github.com/stretchr/testify/assert" ) -func newTestableProvisioner(assert *assert.Assertions, options volume.VolumeOptions) volume.Provisioner { +func newTestableProvisioner(assert *assert.Assertions, options volume.VolumeOptions) (string, volume.Provisioner) { tmpDir, err := utiltesting.MkTmpdir("flockervolumeTest") assert.NoError(err, fmt.Sprintf("can't make a temp dir: %v", err)) @@ -41,7 +42,7 @@ func newTestableProvisioner(assert *assert.Assertions, options volume.VolumeOpti provisioner, err := plug.(*flockerPlugin).newProvisionerInternal(options, &fakeFlockerUtil{}) - return provisioner + return tmpDir, provisioner } func TestProvision(t *testing.T) { @@ -53,7 +54,8 @@ func TestProvision(t *testing.T) { PersistentVolumeReclaimPolicy: v1.PersistentVolumeReclaimDelete, } - provisioner := newTestableProvisioner(assert, options) + dir, provisioner := newTestableProvisioner(assert, options) + defer os.RemoveAll(dir) persistentSpec, err := provisioner.Provision() assert.NoError(err, "Provision() failed: ", err) @@ -81,7 +83,8 @@ func TestProvision(t *testing.T) { }, } - provisioner = newTestableProvisioner(assert, options) + dir, provisioner = newTestableProvisioner(assert, options) + defer os.RemoveAll(dir) persistentSpec, err = provisioner.Provision() assert.Error(err, "Provision() did not fail with Parameters specified") @@ -92,8 +95,8 @@ func TestProvision(t *testing.T) { PersistentVolumeReclaimPolicy: v1.PersistentVolumeReclaimDelete, } - provisioner = newTestableProvisioner(assert, options) + dir, provisioner = newTestableProvisioner(assert, options) + defer os.RemoveAll(dir) persistentSpec, err = provisioner.Provision() assert.Error(err, "Provision() did not fail with Selector specified") - } From 6f3212f831e13b61f06c771430cf0d91bc3bd929 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 15:27:30 -0800 Subject: [PATCH 5/9] cleanup flocker in /tmp Signed-off-by: Jess Frazelle --- pkg/volume/flocker/flocker_test.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/volume/flocker/flocker_test.go b/pkg/volume/flocker/flocker_test.go index c76881a356e..e8ae5749cbe 100644 --- a/pkg/volume/flocker/flocker_test.go +++ b/pkg/volume/flocker/flocker_test.go @@ -165,7 +165,8 @@ func TestPlugin(t *testing.T) { func TestGetByName(t *testing.T) { assert := assert.New(t) - plugMgr, _ := newInitializedVolumePlugMgr(t) + plugMgr, dir := newInitializedVolumePlugMgr(t) + defer os.RemoveAll(dir) plug, err := plugMgr.FindPluginByName(pluginName) assert.NotNil(plug, "Can't find the plugin by name") @@ -174,7 +175,8 @@ func TestGetByName(t *testing.T) { func TestCanSupport(t *testing.T) { assert := assert.New(t) - plugMgr, _ := newInitializedVolumePlugMgr(t) + plugMgr, dir := newInitializedVolumePlugMgr(t) + defer os.RemoveAll(dir) plug, err := plugMgr.FindPluginByName(pluginName) assert.NoError(err) @@ -242,7 +244,8 @@ func TestGetFlockerVolumeSource(t *testing.T) { func TestNewMounterDatasetName(t *testing.T) { assert := assert.New(t) - plugMgr, _ := newInitializedVolumePlugMgr(t) + plugMgr, dir := newInitializedVolumePlugMgr(t) + defer os.RemoveAll(dir) plug, err := plugMgr.FindPluginByName(pluginName) assert.NoError(err) @@ -263,7 +266,8 @@ func TestNewMounterDatasetName(t *testing.T) { func TestNewMounterDatasetUUID(t *testing.T) { assert := assert.New(t) - plugMgr, _ := newInitializedVolumePlugMgr(t) + plugMgr, dir := newInitializedVolumePlugMgr(t) + defer os.RemoveAll(dir) plug, err := plugMgr.FindPluginByName(pluginName) assert.NoError(err) From 03f5866ede1766d5dd05af46ef606681e3451c05 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 15:30:22 -0800 Subject: [PATCH 6/9] cleanup etcd_certificates in /tmp Signed-off-by: Jess Frazelle --- pkg/storage/storagebackend/factory/tls_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/storage/storagebackend/factory/tls_test.go b/pkg/storage/storagebackend/factory/tls_test.go index 448cf16f377..23c76346c32 100644 --- a/pkg/storage/storagebackend/factory/tls_test.go +++ b/pkg/storage/storagebackend/factory/tls_test.go @@ -20,6 +20,7 @@ import ( "io/ioutil" "os" "path" + "path/filepath" "testing" "golang.org/x/net/context" @@ -35,6 +36,7 @@ import ( func TestTLSConnection(t *testing.T) { certFile, keyFile, caFile := configureTLSCerts(t) + defer os.RemoveAll(filepath.Dir(certFile)) tlsInfo := &transport.TLSInfo{ CertFile: certFile, From b5da2d13a6ee0593159aebdca0eb063b59e522ef Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 15:33:29 -0800 Subject: [PATCH 7/9] cleanup dataXXX in /tmp Signed-off-by: Jess Frazelle --- pkg/kubectl/proxy_server_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/kubectl/proxy_server_test.go b/pkg/kubectl/proxy_server_test.go index ae536b91a8c..97feb75b027 100644 --- a/pkg/kubectl/proxy_server_test.go +++ b/pkg/kubectl/proxy_server_test.go @@ -22,6 +22,7 @@ import ( "net/http" "net/http/httptest" "net/url" + "os" "path/filepath" "strings" "testing" @@ -225,6 +226,7 @@ func TestFileServing(t *testing.T) { if err != nil { t.Fatalf("error creating tmp dir: %v", err) } + defer os.RemoveAll(dir) if err := ioutil.WriteFile(filepath.Join(dir, fname), []byte(data), 0755); err != nil { t.Fatalf("error writing tmp file: %v", err) } From 7db9c8b454b163529acc6bc511fec05945623dba Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 16:47:53 -0800 Subject: [PATCH 8/9] cleanup fooPodContainerDir in /tmp Signed-off-by: Jess Frazelle --- pkg/kubelet/dockertools/docker_manager_test.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/dockertools/docker_manager_test.go b/pkg/kubelet/dockertools/docker_manager_test.go index 2f22a76bc34..c6021816de7 100644 --- a/pkg/kubelet/dockertools/docker_manager_test.go +++ b/pkg/kubelet/dockertools/docker_manager_test.go @@ -17,6 +17,7 @@ limitations under the License. package dockertools import ( + "flag" "fmt" "io/ioutil" "net" @@ -58,6 +59,21 @@ import ( "k8s.io/kubernetes/pkg/util/sets" ) +var testTempDir string + +func TestMain(m *testing.M) { + dir, err := ioutil.TempDir("", "dockertools") + if err != nil { + panic(err) + } + testTempDir = dir + + flag.Parse() + status := m.Run() + os.RemoveAll(testTempDir) + os.Exit(status) +} + type fakeHTTP struct { url string err error @@ -80,7 +96,7 @@ func (f *fakeRuntimeHelper) GenerateRunContainerOptions(pod *v1.Pod, container * var opts kubecontainer.RunContainerOptions var err error if len(container.TerminationMessagePath) != 0 { - testPodContainerDir, err = ioutil.TempDir("", "fooPodContainerDir") + testPodContainerDir, err = ioutil.TempDir(testTempDir, "fooPodContainerDir") if err != nil { return nil, err } From db75904b42ba2b6350db1bbe17fd8863da0f643a Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Wed, 14 Dec 2016 15:52:18 -0800 Subject: [PATCH 9/9] fix when os.Remove should be os.RemoveAll Signed-off-by: Jess Frazelle --- cmd/kubeadm/app/master/manifests_test.go | 2 +- cmd/kubeadm/app/phases/certs/pki_helpers_test.go | 2 +- cmd/kubeadm/app/phases/kubeconfig/kubeconfig_test.go | 2 +- pkg/client/unversioned/clientcmd/loader_test.go | 7 ++++--- pkg/kubelet/cm/container_manager_linux_test.go | 1 + 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cmd/kubeadm/app/master/manifests_test.go b/cmd/kubeadm/app/master/manifests_test.go index 270ceb4fd01..3b2a013a4ab 100644 --- a/cmd/kubeadm/app/master/manifests_test.go +++ b/cmd/kubeadm/app/master/manifests_test.go @@ -33,7 +33,7 @@ func TestWriteStaticPodManifests(t *testing.T) { if err != nil { t.Fatalf("Couldn't create tmpdir") } - defer os.Remove(tmpdir) + defer os.RemoveAll(tmpdir) // set up tmp GlobalEnvParams values for testing oldEnv := kubeadmapi.GlobalEnvParams diff --git a/cmd/kubeadm/app/phases/certs/pki_helpers_test.go b/cmd/kubeadm/app/phases/certs/pki_helpers_test.go index a0e72f4a3ad..c3699f53548 100644 --- a/cmd/kubeadm/app/phases/certs/pki_helpers_test.go +++ b/cmd/kubeadm/app/phases/certs/pki_helpers_test.go @@ -121,7 +121,7 @@ func TestWriteKeysAndCert(t *testing.T) { if err != nil { t.Fatalf("Couldn't create tmpdir") } - defer os.Remove(tmpdir) + defer os.RemoveAll(tmpdir) caKey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { diff --git a/cmd/kubeadm/app/phases/kubeconfig/kubeconfig_test.go b/cmd/kubeadm/app/phases/kubeconfig/kubeconfig_test.go index b543226751d..d85bf3ded3a 100644 --- a/cmd/kubeadm/app/phases/kubeconfig/kubeconfig_test.go +++ b/cmd/kubeadm/app/phases/kubeconfig/kubeconfig_test.go @@ -142,7 +142,7 @@ func TestWriteKubeconfigToDisk(t *testing.T) { if err != nil { t.Fatalf("Couldn't create tmpdir") } - defer os.Remove(tmpdir) + defer os.RemoveAll(tmpdir) // set up tmp GlobalEnvParams values for testing oldEnv := kubeadmapi.GlobalEnvParams diff --git a/pkg/client/unversioned/clientcmd/loader_test.go b/pkg/client/unversioned/clientcmd/loader_test.go index 501850ba053..62d830c4970 100644 --- a/pkg/client/unversioned/clientcmd/loader_test.go +++ b/pkg/client/unversioned/clientcmd/loader_test.go @@ -129,7 +129,7 @@ func TestErrorReadingNonFile(t *testing.T) { if err != nil { t.Fatalf("Couldn't create tmpdir") } - defer os.Remove(tmpdir) + defer os.RemoveAll(tmpdir) loadingRules := ClientConfigLoadingRules{ ExplicitPath: tmpdir, @@ -224,14 +224,15 @@ func TestResolveRelativePaths(t *testing.T) { } configDir1, _ := ioutil.TempDir("", "") + defer os.RemoveAll(configDir1) configFile1 := path.Join(configDir1, ".kubeconfig") configDir1, _ = filepath.Abs(configDir1) - defer os.Remove(configFile1) + configDir2, _ := ioutil.TempDir("", "") + defer os.RemoveAll(configDir2) configDir2, _ = ioutil.TempDir(configDir2, "") configFile2 := path.Join(configDir2, ".kubeconfig") configDir2, _ = filepath.Abs(configDir2) - defer os.Remove(configFile2) WriteToFile(pathResolutionConfig1, configFile1) WriteToFile(pathResolutionConfig2, configFile2) diff --git a/pkg/kubelet/cm/container_manager_linux_test.go b/pkg/kubelet/cm/container_manager_linux_test.go index 37a4d645044..31e8c5356c9 100644 --- a/pkg/kubelet/cm/container_manager_linux_test.go +++ b/pkg/kubelet/cm/container_manager_linux_test.go @@ -152,6 +152,7 @@ func TestSoftRequirementsValidationSuccess(t *testing.T) { req := require.New(t) tempDir, err := ioutil.TempDir("", "") req.NoError(err) + defer os.RemoveAll(tempDir) req.NoError(ioutil.WriteFile(path.Join(tempDir, "cpu.cfs_period_us"), []byte("0"), os.ModePerm)) req.NoError(ioutil.WriteFile(path.Join(tempDir, "cpu.cfs_quota_us"), []byte("0"), os.ModePerm)) mountInt := &fakeMountInterface{