Count every file of each version in secret info's Total Size (closes #147)
check / check (push) Waiting to run
check / check (push) Waiting to run
Total Size added up each version's data.age and metadata.age, but a version keeps its value in value.age, so no secret's value was counted. It now adds up every file in each version directory: the value, the metadata and the version's two keys, as the plan on the issue decided. A version directory that cannot be read adds nothing and gets a warning naming it. The new tests add a 10000-byte secret and check that the total grows by at least that much, and check the warning for a version directory that cannot be read. Model: opus-5-5
This commit was merged in pull request #176.
This commit is contained in:
+12
-13
@@ -18,24 +18,23 @@ type vaultStats struct {
|
||||
|
||||
// addVersion accumulates size and timestamp info for one version directory
|
||||
func (s *vaultStats) addVersion(fs afero.Fs, versionPath string) {
|
||||
// Add size of encrypted data
|
||||
dataPath := filepath.Join(versionPath, "data.age")
|
||||
|
||||
stat, err := fs.Stat(dataPath)
|
||||
if err == nil {
|
||||
s.totalSize += stat.Size()
|
||||
// Add the size of every file in the version directory: its value,
|
||||
// metadata and keys. A directory that cannot be read adds nothing and
|
||||
// gets a warning; its timestamp is still tracked below.
|
||||
files, err := afero.ReadDir(fs, versionPath)
|
||||
if err != nil {
|
||||
secret.Warn("Could not read version directory",
|
||||
"directory", versionPath, "error", err)
|
||||
}
|
||||
|
||||
// Add size of metadata
|
||||
metaPath := filepath.Join(versionPath, "metadata.age")
|
||||
|
||||
stat, err = fs.Stat(metaPath)
|
||||
if err == nil {
|
||||
s.totalSize += stat.Size()
|
||||
for _, file := range files {
|
||||
if !file.IsDir() {
|
||||
s.totalSize += file.Size()
|
||||
}
|
||||
}
|
||||
|
||||
// Track timestamps
|
||||
stat, err = fs.Stat(versionPath)
|
||||
stat, err := fs.Stat(versionPath)
|
||||
if err == nil {
|
||||
modTime := stat.ModTime()
|
||||
if s.oldestTime.IsZero() || modTime.Before(s.oldestTime) {
|
||||
|
||||
Reference in New Issue
Block a user