From e5cf604dbc6b9aa5666fa23be3d4e4254f579839 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 11:39:09 +1300 Subject: [PATCH 01/16] fix(window): improve rename and redact file process --- pkg/collect/redact.go | 11 ++++++++++- pkg/collect/result.go | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/pkg/collect/redact.go b/pkg/collect/redact.go index e86cab0b1..b418caaec 100644 --- a/pkg/collect/redact.go +++ b/pkg/collect/redact.go @@ -40,6 +40,7 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors defer func() { <-limitCh }() // free up after the function execution has run var reader io.Reader + var readerCloseFn func() error // Function to close reader if needed if data == nil { // Collected contents are in a file. Get a reader to the file. @@ -83,12 +84,20 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors errorCh <- errors.Wrap(err, "failed to get reader") return } - defer r.Close() reader = r + readerCloseFn = r.Close // Ensure we close the file later } else { // Collected contents are in memory. Get a reader to the memory buffer. reader = bytes.NewBuffer(data) + readerCloseFn = func() error { return nil } // No-op for in-memory data + } + + // Close the file BEFORE calling ReplaceResult() to avoid Windows locking issues + if err := readerCloseFn(); err != nil { + klog.Warningf("Failed to close reader for %s: %v", file, err) + errorCh <- errors.Wrap(err, "failed to close reader before replace") + return } // If the file is .tar, .tgz or .tar.gz, it must not be redacted. Instead it is diff --git a/pkg/collect/result.go b/pkg/collect/result.go index 427741d53..0876b8ed0 100644 --- a/pkg/collect/result.go +++ b/pkg/collect/result.go @@ -188,17 +188,32 @@ func (r CollectorResult) ReplaceResult(bundlePath string, relativePath string, r return nil } + // Create a temporary file in the same directory as the target file to prevent cross-device issues tmpFile, err := os.CreateTemp("", "replace-") if err != nil { return errors.Wrap(err, "failed to create temp file") } - defer tmpFile.Close() + // Ensure the temp file is closed and deleted if there's an error + defer func() { + tmpFile.Close() + // Remove temp file if the rename fails + if err != nil { + os.Remove(tmpFile.Name()) + } + }() + + // Write data to the temporary file _, err = io.Copy(tmpFile, reader) if err != nil { return errors.Wrap(err, "failed to write tmp file") } + // Explicitly close the file before renaming (required on Windows) + if err := tmpFile.Close(); err != nil { + return errors.Wrap(err, "failed to close temp file") + } + // This rename should always be in /tmp, so no cross-partition copying will happen err = os.Rename(tmpFile.Name(), filepath.Join(bundlePath, relativePath)) if err != nil { From 33f0e60d35e7ec57c63e6c9c9eda9b68ea0cbf5e Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 14:30:35 +1300 Subject: [PATCH 02/16] fix decompress fail --- pkg/collect/redact.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/collect/redact.go b/pkg/collect/redact.go index b418caaec..85653526c 100644 --- a/pkg/collect/redact.go +++ b/pkg/collect/redact.go @@ -93,13 +93,6 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors readerCloseFn = func() error { return nil } // No-op for in-memory data } - // Close the file BEFORE calling ReplaceResult() to avoid Windows locking issues - if err := readerCloseFn(); err != nil { - klog.Warningf("Failed to close reader for %s: %v", file, err) - errorCh <- errors.Wrap(err, "failed to close reader before replace") - return - } - // If the file is .tar, .tgz or .tar.gz, it must not be redacted. Instead it is // decompressed and each file inside the tar redacted and compressed back into the archive. if filepath.Ext(file) == ".tar" || filepath.Ext(file) == ".tgz" || strings.HasSuffix(file, ".tar.gz") { @@ -134,6 +127,13 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors return } + // Close the file BEFORE calling ReplaceResult() to avoid Windows locking issues + if err := readerCloseFn(); err != nil { + klog.Warningf("Failed to close reader for %s: %v", file, err) + errorCh <- errors.Wrap(err, "failed to close reader before replace") + return + } + redacted, err := redact.Redact(reader, file, additionalRedactors) if err != nil { errorCh <- errors.Wrap(err, "failed to redact io stream") From 26ad5822d964a66389d1543cb25c81de4f59de52 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 14:41:11 +1300 Subject: [PATCH 03/16] fix test fail --- pkg/collect/result.go | 9 --------- 1 file changed, 9 deletions(-) diff --git a/pkg/collect/result.go b/pkg/collect/result.go index 0876b8ed0..72f30eefa 100644 --- a/pkg/collect/result.go +++ b/pkg/collect/result.go @@ -194,15 +194,6 @@ func (r CollectorResult) ReplaceResult(bundlePath string, relativePath string, r return errors.Wrap(err, "failed to create temp file") } - // Ensure the temp file is closed and deleted if there's an error - defer func() { - tmpFile.Close() - // Remove temp file if the rename fails - if err != nil { - os.Remove(tmpFile.Name()) - } - }() - // Write data to the temporary file _, err = io.Copy(tmpFile, reader) if err != nil { From a563622e353f8c5da2b4ac05c89479574ffe0ef3 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 14:46:28 +1300 Subject: [PATCH 04/16] test --- pkg/collect/redact.go | 11 +---------- pkg/collect/result.go | 8 +------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/pkg/collect/redact.go b/pkg/collect/redact.go index 85653526c..e86cab0b1 100644 --- a/pkg/collect/redact.go +++ b/pkg/collect/redact.go @@ -40,7 +40,6 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors defer func() { <-limitCh }() // free up after the function execution has run var reader io.Reader - var readerCloseFn func() error // Function to close reader if needed if data == nil { // Collected contents are in a file. Get a reader to the file. @@ -84,13 +83,12 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors errorCh <- errors.Wrap(err, "failed to get reader") return } + defer r.Close() reader = r - readerCloseFn = r.Close // Ensure we close the file later } else { // Collected contents are in memory. Get a reader to the memory buffer. reader = bytes.NewBuffer(data) - readerCloseFn = func() error { return nil } // No-op for in-memory data } // If the file is .tar, .tgz or .tar.gz, it must not be redacted. Instead it is @@ -127,13 +125,6 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors return } - // Close the file BEFORE calling ReplaceResult() to avoid Windows locking issues - if err := readerCloseFn(); err != nil { - klog.Warningf("Failed to close reader for %s: %v", file, err) - errorCh <- errors.Wrap(err, "failed to close reader before replace") - return - } - redacted, err := redact.Redact(reader, file, additionalRedactors) if err != nil { errorCh <- errors.Wrap(err, "failed to redact io stream") diff --git a/pkg/collect/result.go b/pkg/collect/result.go index 72f30eefa..427741d53 100644 --- a/pkg/collect/result.go +++ b/pkg/collect/result.go @@ -188,23 +188,17 @@ func (r CollectorResult) ReplaceResult(bundlePath string, relativePath string, r return nil } - // Create a temporary file in the same directory as the target file to prevent cross-device issues tmpFile, err := os.CreateTemp("", "replace-") if err != nil { return errors.Wrap(err, "failed to create temp file") } + defer tmpFile.Close() - // Write data to the temporary file _, err = io.Copy(tmpFile, reader) if err != nil { return errors.Wrap(err, "failed to write tmp file") } - // Explicitly close the file before renaming (required on Windows) - if err := tmpFile.Close(); err != nil { - return errors.Wrap(err, "failed to close temp file") - } - // This rename should always be in /tmp, so no cross-partition copying will happen err = os.Rename(tmpFile.Name(), filepath.Join(bundlePath, relativePath)) if err != nil { From c28e9953eafd65ab35741ce236cca9f391f5fbea Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 14:50:57 +1300 Subject: [PATCH 05/16] test --- pkg/collect/result.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/collect/result.go b/pkg/collect/result.go index 427741d53..b0cae0401 100644 --- a/pkg/collect/result.go +++ b/pkg/collect/result.go @@ -188,12 +188,16 @@ func (r CollectorResult) ReplaceResult(bundlePath string, relativePath string, r return nil } + // Create a temporary file in the same directory as the target file to prevent cross-device issues tmpFile, err := os.CreateTemp("", "replace-") if err != nil { return errors.Wrap(err, "failed to create temp file") } + + // Ensure the temp file is closed and deleted if there's an error defer tmpFile.Close() + // Write data to the temporary file _, err = io.Copy(tmpFile, reader) if err != nil { return errors.Wrap(err, "failed to write tmp file") From 0551323c475799c2df5fc8f80c0112edf338e897 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 14:59:08 +1300 Subject: [PATCH 06/16] test --- pkg/collect/result.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/collect/result.go b/pkg/collect/result.go index b0cae0401..0b31c918b 100644 --- a/pkg/collect/result.go +++ b/pkg/collect/result.go @@ -194,17 +194,17 @@ func (r CollectorResult) ReplaceResult(bundlePath string, relativePath string, r return errors.Wrap(err, "failed to create temp file") } - // Ensure the temp file is closed and deleted if there's an error - defer tmpFile.Close() - // Write data to the temporary file _, err = io.Copy(tmpFile, reader) if err != nil { return errors.Wrap(err, "failed to write tmp file") } + name := tmpFile.Name() + tmpFile.Close() + // This rename should always be in /tmp, so no cross-partition copying will happen - err = os.Rename(tmpFile.Name(), filepath.Join(bundlePath, relativePath)) + err = os.Rename(name, filepath.Join(bundlePath, relativePath)) if err != nil { return errors.Wrap(err, "failed to rename tmp file") } From eca768fecdae7c213d7d928df51cdbf2ec30f700 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 15:11:17 +1300 Subject: [PATCH 07/16] test --- pkg/collect/redact.go | 11 ++++++++++- pkg/collect/result.go | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pkg/collect/redact.go b/pkg/collect/redact.go index e86cab0b1..85653526c 100644 --- a/pkg/collect/redact.go +++ b/pkg/collect/redact.go @@ -40,6 +40,7 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors defer func() { <-limitCh }() // free up after the function execution has run var reader io.Reader + var readerCloseFn func() error // Function to close reader if needed if data == nil { // Collected contents are in a file. Get a reader to the file. @@ -83,12 +84,13 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors errorCh <- errors.Wrap(err, "failed to get reader") return } - defer r.Close() reader = r + readerCloseFn = r.Close // Ensure we close the file later } else { // Collected contents are in memory. Get a reader to the memory buffer. reader = bytes.NewBuffer(data) + readerCloseFn = func() error { return nil } // No-op for in-memory data } // If the file is .tar, .tgz or .tar.gz, it must not be redacted. Instead it is @@ -125,6 +127,13 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors return } + // Close the file BEFORE calling ReplaceResult() to avoid Windows locking issues + if err := readerCloseFn(); err != nil { + klog.Warningf("Failed to close reader for %s: %v", file, err) + errorCh <- errors.Wrap(err, "failed to close reader before replace") + return + } + redacted, err := redact.Redact(reader, file, additionalRedactors) if err != nil { errorCh <- errors.Wrap(err, "failed to redact io stream") diff --git a/pkg/collect/result.go b/pkg/collect/result.go index 0b31c918b..80e76faf1 100644 --- a/pkg/collect/result.go +++ b/pkg/collect/result.go @@ -200,11 +200,11 @@ func (r CollectorResult) ReplaceResult(bundlePath string, relativePath string, r return errors.Wrap(err, "failed to write tmp file") } - name := tmpFile.Name() + // Close the file to ensure all data is written tmpFile.Close() // This rename should always be in /tmp, so no cross-partition copying will happen - err = os.Rename(name, filepath.Join(bundlePath, relativePath)) + err = os.Rename(tmpFile.Name(), filepath.Join(bundlePath, relativePath)) if err != nil { return errors.Wrap(err, "failed to rename tmp file") } From 418fe269f5f1769eaa49e54d8594e2d9d723cca4 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 15:18:18 +1300 Subject: [PATCH 08/16] test --- pkg/collect/result.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/collect/result.go b/pkg/collect/result.go index 80e76faf1..6263a58fe 100644 --- a/pkg/collect/result.go +++ b/pkg/collect/result.go @@ -201,10 +201,11 @@ func (r CollectorResult) ReplaceResult(bundlePath string, relativePath string, r } // Close the file to ensure all data is written + name := tmpFile.Name() tmpFile.Close() // This rename should always be in /tmp, so no cross-partition copying will happen - err = os.Rename(tmpFile.Name(), filepath.Join(bundlePath, relativePath)) + err = os.Rename(name, filepath.Join(bundlePath, relativePath)) if err != nil { return errors.Wrap(err, "failed to rename tmp file") } From 37e225e36bc4432983a5804fb11ddc6bf30d2712 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 15:23:02 +1300 Subject: [PATCH 09/16] test --- pkg/collect/redact.go | 11 +---------- pkg/collect/result.go | 3 +-- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/pkg/collect/redact.go b/pkg/collect/redact.go index 85653526c..e86cab0b1 100644 --- a/pkg/collect/redact.go +++ b/pkg/collect/redact.go @@ -40,7 +40,6 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors defer func() { <-limitCh }() // free up after the function execution has run var reader io.Reader - var readerCloseFn func() error // Function to close reader if needed if data == nil { // Collected contents are in a file. Get a reader to the file. @@ -84,13 +83,12 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors errorCh <- errors.Wrap(err, "failed to get reader") return } + defer r.Close() reader = r - readerCloseFn = r.Close // Ensure we close the file later } else { // Collected contents are in memory. Get a reader to the memory buffer. reader = bytes.NewBuffer(data) - readerCloseFn = func() error { return nil } // No-op for in-memory data } // If the file is .tar, .tgz or .tar.gz, it must not be redacted. Instead it is @@ -127,13 +125,6 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors return } - // Close the file BEFORE calling ReplaceResult() to avoid Windows locking issues - if err := readerCloseFn(); err != nil { - klog.Warningf("Failed to close reader for %s: %v", file, err) - errorCh <- errors.Wrap(err, "failed to close reader before replace") - return - } - redacted, err := redact.Redact(reader, file, additionalRedactors) if err != nil { errorCh <- errors.Wrap(err, "failed to redact io stream") diff --git a/pkg/collect/result.go b/pkg/collect/result.go index 6263a58fe..80e76faf1 100644 --- a/pkg/collect/result.go +++ b/pkg/collect/result.go @@ -201,11 +201,10 @@ func (r CollectorResult) ReplaceResult(bundlePath string, relativePath string, r } // Close the file to ensure all data is written - name := tmpFile.Name() tmpFile.Close() // This rename should always be in /tmp, so no cross-partition copying will happen - err = os.Rename(name, filepath.Join(bundlePath, relativePath)) + err = os.Rename(tmpFile.Name(), filepath.Join(bundlePath, relativePath)) if err != nil { return errors.Wrap(err, "failed to rename tmp file") } From 773e718b40c120c96edc73247637ad0751a6fa75 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 15:33:45 +1300 Subject: [PATCH 10/16] test --- pkg/collect/redact.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/collect/redact.go b/pkg/collect/redact.go index e86cab0b1..59f306acf 100644 --- a/pkg/collect/redact.go +++ b/pkg/collect/redact.go @@ -40,6 +40,7 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors defer func() { <-limitCh }() // free up after the function execution has run var reader io.Reader + var readerCloseFn func() error // Function to close reader if needed if data == nil { // Collected contents are in a file. Get a reader to the file. @@ -83,14 +84,24 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors errorCh <- errors.Wrap(err, "failed to get reader") return } - defer r.Close() reader = r + readerCloseFn = r.Close // Ensure we close the file later } else { // Collected contents are in memory. Get a reader to the memory buffer. reader = bytes.NewBuffer(data) + readerCloseFn = func() error { return nil } // No-op for in-memory data } + // Ensure the reader is closed after processing + defer func() { + if err := readerCloseFn(); err != nil { + klog.Warningf("Failed to close reader for %s: %v", file, err) + errorCh <- errors.Wrap(err, "failed to close reader") + return + } + }() + // If the file is .tar, .tgz or .tar.gz, it must not be redacted. Instead it is // decompressed and each file inside the tar redacted and compressed back into the archive. if filepath.Ext(file) == ".tar" || filepath.Ext(file) == ".tgz" || strings.HasSuffix(file, ".tar.gz") { From 2c9306040a48330a01ea61740ad25245f96451c0 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 4 Feb 2025 17:00:20 +1300 Subject: [PATCH 11/16] remove windows build --- .github/workflows/build-test-deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-deploy.yaml b/.github/workflows/build-test-deploy.yaml index 13e846ea7..07e38dece 100644 --- a/.github/workflows/build-test-deploy.yaml +++ b/.github/workflows/build-test-deploy.yaml @@ -187,7 +187,7 @@ jobs: strategy: matrix: goarch: [amd64, arm64] - goos: [darwin, linux, windows] + goos: [darwin, linux] include: - goarch: arm goos: linux From 828d6ed0853f9011bf5edf342ea23c801a84d834 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Wed, 5 Feb 2025 10:21:32 +1300 Subject: [PATCH 12/16] improve close reader --- pkg/collect/redact.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkg/collect/redact.go b/pkg/collect/redact.go index 59f306acf..095729de8 100644 --- a/pkg/collect/redact.go +++ b/pkg/collect/redact.go @@ -93,15 +93,6 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors readerCloseFn = func() error { return nil } // No-op for in-memory data } - // Ensure the reader is closed after processing - defer func() { - if err := readerCloseFn(); err != nil { - klog.Warningf("Failed to close reader for %s: %v", file, err) - errorCh <- errors.Wrap(err, "failed to close reader") - return - } - }() - // If the file is .tar, .tgz or .tar.gz, it must not be redacted. Instead it is // decompressed and each file inside the tar redacted and compressed back into the archive. if filepath.Ext(file) == ".tar" || filepath.Ext(file) == ".tgz" || strings.HasSuffix(file, ".tar.gz") { @@ -117,6 +108,14 @@ func RedactResult(bundlePath string, input CollectorResult, additionalRedactors errorCh <- errors.Wrap(err, "failed to decompress file") return } + + // Ensure the reader is closed after processing + if err := readerCloseFn(); err != nil { + klog.Warningf("Failed to close reader for %s: %v", file, err) + errorCh <- errors.Wrap(err, "failed to close reader") + return + } + err = RedactResult(tmpDir, subResult, additionalRedactors) if err != nil { errorCh <- errors.Wrap(err, "failed to redact file") From ab7f9cd26a1f8aa6b72c72d0bda26998dfffbd41 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Wed, 5 Feb 2025 10:35:18 +1300 Subject: [PATCH 13/16] remove krew windows target --- deploy/krew/preflight.yaml | 11 ----------- deploy/krew/support-bundle.yaml | 11 ----------- 2 files changed, 22 deletions(-) diff --git a/deploy/krew/preflight.yaml b/deploy/krew/preflight.yaml index 5e5dad1e6..f6ddb08fd 100644 --- a/deploy/krew/preflight.yaml +++ b/deploy/krew/preflight.yaml @@ -60,17 +60,6 @@ spec: - from: LICENSE to: . bin: preflight - - selector: - matchLabels: - os: windows - arch: amd64 - {{addURIAndSha "https://github.com/replicatedhq/troubleshoot/releases/download/{{ .TagName }}/preflight_windows_amd64.zip" .TagName }} - files: - - from: preflight.exe - to: . - - from: LICENSE - to: . - bin: preflight.exe shortDescription: Executes application preflight tests in a cluster homepage: https://github.com/replicatedhq/troubleshoot description: | diff --git a/deploy/krew/support-bundle.yaml b/deploy/krew/support-bundle.yaml index 098eb29b4..f7080b13f 100644 --- a/deploy/krew/support-bundle.yaml +++ b/deploy/krew/support-bundle.yaml @@ -60,17 +60,6 @@ spec: - from: LICENSE to: . bin: support-bundle - - selector: - matchLabels: - os: windows - arch: amd64 - {{addURIAndSha "https://github.com/replicatedhq/troubleshoot/releases/download/{{ .TagName }}/support-bundle_windows_amd64.zip" .TagName }} - files: - - from: support-bundle.exe - to: . - - from: LICENSE - to: . - bin: support-bundle.exe shortDescription: Creates support bundles for off-cluster analysis homepage: https://github.com/replicatedhq/troubleshoot description: | From e3d1c276a37951a68e747e0ac4cb79c8ddd7f29d Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Wed, 5 Feb 2025 10:35:32 +1300 Subject: [PATCH 14/16] remove windows test --- internal/util/util_test.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/internal/util/util_test.go b/internal/util/util_test.go index 441134e0a..ade0408fc 100644 --- a/internal/util/util_test.go +++ b/internal/util/util_test.go @@ -21,12 +21,6 @@ func Test_HomeDir(t *testing.T) { dir: "/home/test", want: "/home/test", }, - { - name: "test windows home directory", - env: "USERPROFILE", - dir: `C:\Users\test`, - want: `C:\Users\test`, - }, } for _, tt := range tests { From be6190f554cf6d0bdec417d870a71849e7e83e9b Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Wed, 5 Feb 2025 10:35:48 +1300 Subject: [PATCH 15/16] remove windows build code --- pkg/longhorn/util/iscsi_windows.go | 40 ------------------------------ 1 file changed, 40 deletions(-) delete mode 100644 pkg/longhorn/util/iscsi_windows.go diff --git a/pkg/longhorn/util/iscsi_windows.go b/pkg/longhorn/util/iscsi_windows.go deleted file mode 100644 index d9efaefe7..000000000 --- a/pkg/longhorn/util/iscsi_windows.go +++ /dev/null @@ -1,40 +0,0 @@ -//go:build windows -// +build windows - -package util - -import ( - "github.com/pkg/errors" -) - -func GetDiskInfo(directory string) (*DiskInfo, error) { - return nil, errors.Errorf("cannot get disk info of directory %v", directory) -} - -func RemoveHostDirectoryContent(directory string) error { - return errors.Errorf("failed to remove host directory %v", directory) -} - -func CopyHostDirectoryContent(src, dest string) error { - return errors.Errorf("failed to copy the content from %v to %v for the host", src, dest) -} - -func CreateDiskPathReplicaSubdirectory(path string) error { - return errors.Errorf("error creating data path %v on host", path) -} - -func ExpandFileSystem(volumeName string) error { - return errors.Errorf("error expanding filsystem on %v", volumeName) -} - -func DetectFileSystem(volumeName string) (string, error) { - return "", errors.Errorf("error detecting filsystem on %v", volumeName) -} - -func GetDiskConfig(path string) (*DiskConfig, error) { - return nil, errors.Errorf("error getting disk config from %v", path) -} - -func GenerateDiskConfig(path string) (*DiskConfig, error) { - return nil, errors.Errorf("error generating disk config from %v", path) -} From 6120f56cb6a4ed2296e5693e1435251835047008 Mon Sep 17 00:00:00 2001 From: Dexter Yan Date: Tue, 11 Feb 2025 15:32:46 +1300 Subject: [PATCH 16/16] remove windows --- internal/util/util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/util/util.go b/internal/util/util.go index e10f80856..1ccb35e49 100644 --- a/internal/util/util.go +++ b/internal/util/util.go @@ -21,7 +21,7 @@ func HomeDir() string { if h := os.Getenv("HOME"); h != "" { return h } - return os.Getenv("USERPROFILE") // windows + return "" } func IsURL(str string) bool {