From 90b168eb6cde4fe1afd6aad68185d6abcca3b806 Mon Sep 17 00:00:00 2001 From: DRON-666 <64691982+DRON-666@users.noreply.github.com> Date: Mon, 29 Apr 2024 01:23:50 +0300 Subject: [PATCH] isMountPointExcluded to isMountPointIncluded --- internal/fs/fs_local_vss.go | 22 ++++++++++------------ internal/fs/fs_local_vss_test.go | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/internal/fs/fs_local_vss.go b/internal/fs/fs_local_vss.go index 0f983d136..48ab165f1 100644 --- a/internal/fs/fs_local_vss.go +++ b/internal/fs/fs_local_vss.go @@ -145,22 +145,20 @@ func (fs *LocalVss) Lstat(name string) (os.FileInfo, error) { return os.Lstat(fs.snapshotPath(name)) } -// isMountPointExcluded is true if given mountpoint excluded by user. -func (fs *LocalVss) isMountPointExcluded(mountPoint string) bool { +// isMountPointIncluded is true if given mountpoint included by user. +func (fs *LocalVss) isMountPointIncluded(mountPoint string) bool { if fs.excludeVolumes == nil { - return false + return true } volume, err := GetVolumeNameForVolumeMountPoint(mountPoint) if err != nil { fs.msgError(mountPoint, errors.Errorf("failed to get volume from mount point [%s]: %s", mountPoint, err)) - - return false + return true } _, ok := fs.excludeVolumes[strings.ToLower(volume)] - - return ok + return !ok } // snapshotPath returns the path inside a VSS snapshots if it already exists. @@ -199,20 +197,20 @@ func (fs *LocalVss) snapshotPath(path string) string { if !snapshotExists && !snapshotFailed { vssVolume := volumeNameLower + string(filepath.Separator) - if fs.isMountPointExcluded(vssVolume) { + if !fs.isMountPointIncluded(vssVolume) { fs.msgMessage("snapshots for [%s] excluded by user\n", vssVolume) fs.failedSnapshots[volumeNameLower] = struct{}{} } else { fs.msgMessage("creating VSS snapshot for [%s]\n", vssVolume) - var filter VolumeFilter + var includeVolume VolumeFilter if !fs.excludeAllMountPoints { - filter = func(volume string) bool { - return !fs.isMountPointExcluded(volume) + includeVolume = func(volume string) bool { + return fs.isMountPointIncluded(volume) } } - if snapshot, err := NewVssSnapshot(fs.provider, vssVolume, fs.timeout, filter, fs.msgError); err != nil { + if snapshot, err := NewVssSnapshot(fs.provider, vssVolume, fs.timeout, includeVolume, fs.msgError); err != nil { fs.msgError(vssVolume, errors.Errorf("failed to create snapshot for [%s]: %s", vssVolume, err)) fs.failedSnapshots[volumeNameLower] = struct{}{} diff --git a/internal/fs/fs_local_vss_test.go b/internal/fs/fs_local_vss_test.go index 9e11b6c6e..c25ce4535 100644 --- a/internal/fs/fs_local_vss_test.go +++ b/internal/fs/fs_local_vss_test.go @@ -154,10 +154,10 @@ func TestParseMountPoints(t *testing.T) { sysVolumeMatch, }, []check{ - {`c:\`, true}, - {`c:`, true}, - {sysVolume, true}, - {sysVolumeMutated, true}, + {`c:\`, false}, + {`c:`, false}, + {sysVolume, false}, + {sysVolumeMutated, false}, }, []string{}, }, @@ -169,10 +169,10 @@ func TestParseMountPoints(t *testing.T) { sysVolumeMatch, }, []check{ - {`c:\windows\`, false}, - {`\\?\Volume{39b9cac2-bcdb-4d51-97c8-0d0677d607fb}\`, false}, - {`c:`, true}, - {``, false}, + {`c:\windows\`, true}, + {`\\?\Volume{39b9cac2-bcdb-4d51-97c8-0d0677d607fb}\`, true}, + {`c:`, false}, + {``, true}, }, []string{ `failed to parse vss\.exclude-volumes \[z:\\nonexistent\]:.*`, @@ -208,8 +208,8 @@ func TestParseMountPoints(t *testing.T) { } for _, c := range test.checks { - if dst.isMountPointExcluded(c.volume) != c.result { - t.Fatalf(`wrong check: isMountPointExcluded("%s") != %v`, c.volume, c.result) + if dst.isMountPointIncluded(c.volume) != c.result { + t.Fatalf(`wrong check: isMountPointIncluded("%s") != %v`, c.volume, c.result) } }