From 4e26e84948266d418260096341e95f12df19137a Mon Sep 17 00:00:00 2001 From: Mathieu CARBONNEAUX OSUAGWU Date: Thu, 19 Dec 2024 00:30:21 +0100 Subject: [PATCH 1/6] fix checkIsEmptyDir --- pkg/transformer/kubernetes/k8sutils.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index 61b940d24..afab552cd 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -1237,6 +1237,8 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) skip = true return } + log.Debugf("isConfigFile File : %v", filePath) + fi, err := os.Stat(filePath) if err != nil { @@ -1264,22 +1266,44 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) // checkIsEmptyDir checks if filepath is empty func checkIsEmptyDir(filePath string) (bool, error) { + log.Debugf("checkIsEmptyDir of File : %v", filePath) + var dirFilePath string = "" + fi, err := os.Stat(filePath) + if errors.Is(err, os.ErrNotExist) { + log.Errorf("filePath %v does not exist!", filePath) + return false, err + } + mode := fi.Mode() + if mode.IsDir() { + dirFilePath = filePath + log.Debugf("filePath %v is directory!", dirFilePath) + } else { + dirFilePath = filepath.Dir(filePath) + log.Debugf("dirname of filePath is %v !", dirFilePath) + } files, err := os.ReadDir(filePath) if err != nil { + log.Errorf("ReadDir of %v failed !",filePath); return false, err } if len(files) == 0 { + log.Debugf("ReadDir return no file %d !",len(files)); + // is empty return true, err } for _, file := range files { if !file.IsDir() { + log.Debugf("IsDir of %v return that is not directory !",file); + // not empty return false, nil } - _, err := checkIsEmptyDir(file.Name()) + _, err := checkIsEmptyDir(filepath.Join(dirFilePath,file.Name())) if err != nil { + log.Debugf("Recursive checkIsEmptyDir return err %v for %v !",err, file); return false, err } } + // is empty return true, nil } From 87227b7daec567a50d998a092542d068c84b5ee1 Mon Sep 17 00:00:00 2001 From: Mathieu CARBONNEAUX OSUAGWU Date: Thu, 19 Dec 2024 00:48:11 +0100 Subject: [PATCH 2/6] simplify --- pkg/transformer/kubernetes/k8sutils.go | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index afab552cd..e3fde35e9 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -1267,20 +1267,6 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) // checkIsEmptyDir checks if filepath is empty func checkIsEmptyDir(filePath string) (bool, error) { log.Debugf("checkIsEmptyDir of File : %v", filePath) - var dirFilePath string = "" - fi, err := os.Stat(filePath) - if errors.Is(err, os.ErrNotExist) { - log.Errorf("filePath %v does not exist!", filePath) - return false, err - } - mode := fi.Mode() - if mode.IsDir() { - dirFilePath = filePath - log.Debugf("filePath %v is directory!", dirFilePath) - } else { - dirFilePath = filepath.Dir(filePath) - log.Debugf("dirname of filePath is %v !", dirFilePath) - } files, err := os.ReadDir(filePath) if err != nil { log.Errorf("ReadDir of %v failed !",filePath); @@ -1297,7 +1283,8 @@ func checkIsEmptyDir(filePath string) (bool, error) { // not empty return false, nil } - _, err := checkIsEmptyDir(filepath.Join(dirFilePath,file.Name())) + // recurse directory + _, err := checkIsEmptyDir(filepath.Join(filePath,file.Name())) if err != nil { log.Debugf("Recursive checkIsEmptyDir return err %v for %v !",err, file); return false, err From fcb5d79c674b8d1eb6ed9a6d8112b5ba1007bf15 Mon Sep 17 00:00:00 2001 From: Mathieu CARBONNEAUX OSUAGWU Date: Fri, 20 Dec 2024 10:41:47 +0100 Subject: [PATCH 3/6] remove debug log gofmt --- pkg/transformer/kubernetes/k8sutils.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index e3fde35e9..baf0684f5 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -1237,12 +1237,10 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) skip = true return } - log.Debugf("isConfigFile File : %v", filePath) - fi, err := os.Stat(filePath) if err != nil { - log.Warnf("File don't exist or failed to check if the directory is empty: %v", err) + log.Errorf("File don't exist or failed to check if the directory is empty: %v", err) // dir/file not exist // here not assigned skip to true, // maybe dont want to skip @@ -1266,27 +1264,23 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) // checkIsEmptyDir checks if filepath is empty func checkIsEmptyDir(filePath string) (bool, error) { - log.Debugf("checkIsEmptyDir of File : %v", filePath) files, err := os.ReadDir(filePath) if err != nil { - log.Errorf("ReadDir of %v failed !",filePath); + log.Errorf("ReadDir of %v failed !", filePath) return false, err } if len(files) == 0 { - log.Debugf("ReadDir return no file %d !",len(files)); // is empty return true, err } for _, file := range files { if !file.IsDir() { - log.Debugf("IsDir of %v return that is not directory !",file); // not empty return false, nil } // recurse directory - _, err := checkIsEmptyDir(filepath.Join(filePath,file.Name())) + _, err := checkIsEmptyDir(filepath.Join(filePath, file.Name())) if err != nil { - log.Debugf("Recursive checkIsEmptyDir return err %v for %v !",err, file); return false, err } } From 4b0cdad35e9ba54de0123ff5877492b98a33132f Mon Sep 17 00:00:00 2001 From: Mathieu CARBONNEAUX OSUAGWU Date: Fri, 20 Dec 2024 16:30:51 +0100 Subject: [PATCH 4/6] remove comment change errorf from %v to %s --- pkg/transformer/kubernetes/k8sutils.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index baf0684f5..44abea679 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -1266,25 +1266,21 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) func checkIsEmptyDir(filePath string) (bool, error) { files, err := os.ReadDir(filePath) if err != nil { - log.Errorf("ReadDir of %v failed !", filePath) + log.Errorf("ReadDir of %s failed !", filePath) return false, err } if len(files) == 0 { - // is empty return true, err } for _, file := range files { if !file.IsDir() { - // not empty return false, nil } - // recurse directory _, err := checkIsEmptyDir(filepath.Join(filePath, file.Name())) if err != nil { return false, err } } - // is empty return true, nil } From 6dcc6dfa7bc249e9de118d8d72c0c4af319c6621 Mon Sep 17 00:00:00 2001 From: Mathieu CARBONNEAUX OSUAGWU Date: Sun, 22 Dec 2024 15:06:37 +0100 Subject: [PATCH 5/6] fix test --- pkg/transformer/kubernetes/k8sutils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index 44abea679..9d703575f 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -1250,7 +1250,7 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) if !fi.Mode().IsRegular() { // is dir isDirEmpty, err := checkIsEmptyDir(filePath) if err != nil { - log.Warnf("Failed to check if the directory is empty: %v", err) + log.Debugf("Failed to check if the directory is empty: %v", err) skip = true return } From ffbe054ba92ae884c8f54b6ffec7c3a60ddf631d Mon Sep 17 00:00:00 2001 From: Mathieu CARBONNEAUX OSUAGWU Date: Sun, 22 Dec 2024 16:18:49 +0100 Subject: [PATCH 6/6] force call of checkIsEmptyDir only if is dir --- pkg/transformer/kubernetes/k8sutils.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index 9d703575f..649b4b52d 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -1240,17 +1240,17 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) fi, err := os.Stat(filePath) if err != nil { - log.Errorf("File don't exist or failed to check if the directory is empty: %v", err) + log.Warnf("File don't exist or failed to check if the directory is empty: %v", err) // dir/file not exist // here not assigned skip to true, // maybe dont want to skip return } - if !fi.Mode().IsRegular() { // is dir + if fi.Mode().IsDir() { // is dir isDirEmpty, err := checkIsEmptyDir(filePath) if err != nil { - log.Debugf("Failed to check if the directory is empty: %v", err) + log.Warnf("Failed to check if the directory is empty: %v", err) skip = true return } @@ -1266,7 +1266,6 @@ func isConfigFile(filePath string) (useConfigMap bool, readonly bool, skip bool) func checkIsEmptyDir(filePath string) (bool, error) { files, err := os.ReadDir(filePath) if err != nil { - log.Errorf("ReadDir of %s failed !", filePath) return false, err } if len(files) == 0 {