Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/backup/locator.go29
-rw-r--r--internal/backup/locator_test.go9
2 files changed, 27 insertions, 11 deletions
diff --git a/internal/backup/locator.go b/internal/backup/locator.go
index 1e1c42550..216037aea 100644
--- a/internal/backup/locator.go
+++ b/internal/backup/locator.go
@@ -294,17 +294,10 @@ func (l ManifestLocator) Commit(ctx context.Context, backup *Backup) (returnErr
return err
}
- f, err := l.Sink.GetWriter(ctx, manifestPath(backup.Repository, backup.ID))
- if err != nil {
+ if err := l.writeManifest(ctx, backup, backup.ID); err != nil {
return fmt.Errorf("manifest: commit: %w", err)
}
- defer func() {
- if err := f.Close(); err != nil && returnErr == nil {
- returnErr = fmt.Errorf("manifest: commit: %w", err)
- }
- }()
-
- if err := toml.NewEncoder(f).Encode(backup); err != nil {
+ if err := l.writeManifest(ctx, backup, "+latest"); err != nil {
return fmt.Errorf("manifest: commit: %w", err)
}
@@ -340,6 +333,24 @@ func (l ManifestLocator) Find(ctx context.Context, repo storage.Repository, back
return &backup, nil
}
+func (l ManifestLocator) writeManifest(ctx context.Context, backup *Backup, backupID string) (returnErr error) {
+ f, err := l.Sink.GetWriter(ctx, manifestPath(backup.Repository, backupID))
+ if err != nil {
+ return fmt.Errorf("write manifest: %w", err)
+ }
+ defer func() {
+ if err := f.Close(); err != nil && returnErr == nil {
+ returnErr = fmt.Errorf("write manifest: %w", err)
+ }
+ }()
+
+ if err := toml.NewEncoder(f).Encode(backup); err != nil {
+ return fmt.Errorf("write manifest: %w", err)
+ }
+
+ return nil
+}
+
func manifestPath(repo storage.Repository, backupID string) string {
storageName := repo.GetStorageName()
// Other locators strip the .git suffix off of relative paths. This suffix
diff --git a/internal/backup/locator_test.go b/internal/backup/locator_test.go
index 90cac3664..cca9ee8e8 100644
--- a/internal/backup/locator_test.go
+++ b/internal/backup/locator_test.go
@@ -470,7 +470,9 @@ custom_hooks_path = '%[1]s/%[2]s/001.custom_hooks.tar'
require.NoError(t, l.Commit(ctx, incremental))
manifest := testhelper.MustReadFile(t, filepath.Join(backupPath, "manifests", repo.StorageName, repo.RelativePath, backupID+".toml"))
- require.Equal(t, fmt.Sprintf(`object_format = 'sha1'
+ latestManifest := testhelper.MustReadFile(t, filepath.Join(backupPath, "manifests", repo.StorageName, repo.RelativePath, "+latest.toml"))
+
+ expectedManifest := fmt.Sprintf(`object_format = 'sha1'
[[steps]]
bundle_path = '%[1]s/%[2]s/001.bundle'
@@ -482,7 +484,10 @@ bundle_path = '%[1]s/%[2]s/002.bundle'
ref_path = '%[1]s/%[2]s/002.refs'
previous_ref_path = '%[1]s/%[2]s/001.refs'
custom_hooks_path = '%[1]s/%[2]s/002.custom_hooks.tar'
-`, repo.RelativePath, backupID), string(manifest))
+`, repo.RelativePath, backupID)
+
+ require.Equal(t, expectedManifest, string(manifest))
+ require.Equal(t, expectedManifest, string(latestManifest))
})
}