소스 검색

Merge pull request #44251 from thaJeztah/pkg_dir_cleanup

pkg/directory: remove unused MoveToSubdir() utility, and some refactoring
Sebastiaan van Stijn 2 년 전
부모
커밋
d006242d73
4개의 변경된 파일18개의 추가작업 그리고 80개의 파일을 삭제
  1. 4 20
      pkg/directory/directory.go
  2. 0 48
      pkg/directory/directory_test.go
  3. 7 6
      pkg/directory/directory_unix.go
  4. 7 6
      pkg/directory/directory_windows.go

+ 4 - 20
pkg/directory/directory.go

@@ -1,24 +1,8 @@
 package directory // import "github.com/docker/docker/pkg/directory"
 
-import (
-	"os"
-	"path/filepath"
-)
+import "context"
 
-// MoveToSubdir moves all contents of a directory to a subdirectory underneath the original path
-func MoveToSubdir(oldpath, subdir string) error {
-	infos, err := os.ReadDir(oldpath)
-	if err != nil {
-		return err
-	}
-	for _, info := range infos {
-		if info.Name() != subdir {
-			oldName := filepath.Join(oldpath, info.Name())
-			newName := filepath.Join(oldpath, subdir, info.Name())
-			if err := os.Rename(oldName, newName); err != nil {
-				return err
-			}
-		}
-	}
-	return nil
+// Size walks a directory tree and returns its total size in bytes.
+func Size(ctx context.Context, dir string) (int64, error) {
+	return calcSize(ctx, dir)
 }

+ 0 - 48
pkg/directory/directory_test.go

@@ -3,9 +3,6 @@ package directory // import "github.com/docker/docker/pkg/directory"
 import (
 	"context"
 	"os"
-	"path/filepath"
-	"reflect"
-	"sort"
 	"testing"
 )
 
@@ -144,51 +141,6 @@ func TestSizeFileAndNestedDirectoryNonempty(t *testing.T) {
 	}
 }
 
-// Test migration of directory to a subdir underneath itself
-func TestMoveToSubdir(t *testing.T) {
-	var outerDir, subDir string
-	var err error
-
-	if outerDir, err = os.MkdirTemp(os.TempDir(), "TestMoveToSubdir"); err != nil {
-		t.Fatalf("failed to create directory: %v", err)
-	}
-
-	if subDir, err = os.MkdirTemp(outerDir, "testSub"); err != nil {
-		t.Fatalf("failed to create subdirectory: %v", err)
-	}
-
-	// write 4 temp files in the outer dir to get moved
-	filesList := []string{"a", "b", "c", "d"}
-	for _, fName := range filesList {
-		if file, err := os.Create(filepath.Join(outerDir, fName)); err != nil {
-			t.Fatalf("couldn't create temp file %q: %v", fName, err)
-		} else {
-			file.WriteString(fName)
-			file.Close()
-		}
-	}
-
-	if err = MoveToSubdir(outerDir, filepath.Base(subDir)); err != nil {
-		t.Fatalf("Error during migration of content to subdirectory: %v", err)
-	}
-	// validate that the files were moved to the subdirectory
-	infos, err := os.ReadDir(subDir)
-	if err != nil {
-		t.Fatal(err)
-	}
-	if len(infos) != 4 {
-		t.Fatalf("Should be four files in the subdir after the migration: actual length: %d", len(infos))
-	}
-	var results []string
-	for _, info := range infos {
-		results = append(results, info.Name())
-	}
-	sort.Strings(results)
-	if !reflect.DeepEqual(filesList, results) {
-		t.Fatalf("Results after migration do not equal list of files: expected: %v, got: %v", filesList, results)
-	}
-}
-
 // Test a non-existing directory
 func TestSizeNonExistingDirectory(t *testing.T) {
 	if _, err := Size(context.Background(), "/thisdirectoryshouldnotexist/TestSizeNonExistingDirectory"); err == nil {

+ 7 - 6
pkg/directory/directory_unix.go

@@ -10,14 +10,15 @@ import (
 	"syscall"
 )
 
-// Size walks a directory tree and returns its total size in bytes.
-func Size(ctx context.Context, dir string) (size int64, err error) {
+// calcSize walks a directory tree and returns its total size in bytes.
+func calcSize(ctx context.Context, dir string) (int64, error) {
+	var size int64
 	data := make(map[uint64]struct{})
-	err = filepath.Walk(dir, func(d string, fileInfo os.FileInfo, err error) error {
+	err := filepath.Walk(dir, func(d string, fileInfo os.FileInfo, err error) error {
 		if err != nil {
-			// if dir does not exist, Size() returns the error.
 			// if dir/x disappeared while walking, Size() ignores dir/x.
-			if os.IsNotExist(err) && d != dir {
+			// if dir does not exist, Size() returns the error.
+			if d != dir && os.IsNotExist(err) {
 				return nil
 			}
 			return err
@@ -51,5 +52,5 @@ func Size(ctx context.Context, dir string) (size int64, err error) {
 
 		return nil
 	})
-	return
+	return size, err
 }

+ 7 - 6
pkg/directory/directory_windows.go

@@ -6,13 +6,14 @@ import (
 	"path/filepath"
 )
 
-// Size walks a directory tree and returns its total size in bytes.
-func Size(ctx context.Context, dir string) (size int64, err error) {
-	err = filepath.Walk(dir, func(d string, fileInfo os.FileInfo, err error) error {
+// calcSize walks a directory tree and returns its total calcSize in bytes.
+func calcSize(ctx context.Context, dir string) (int64, error) {
+	var size int64
+	err := filepath.Walk(dir, func(d string, fileInfo os.FileInfo, err error) error {
 		if err != nil {
-			// if dir does not exist, Size() returns the error.
 			// if dir/x disappeared while walking, Size() ignores dir/x.
-			if os.IsNotExist(err) && d != dir {
+			// if dir does not exist, Size() returns the error.
+			if d != dir && os.IsNotExist(err) {
 				return nil
 			}
 			return err
@@ -38,5 +39,5 @@ func Size(ctx context.Context, dir string) (size int64, err error) {
 
 		return nil
 	})
-	return
+	return size, err
 }