mirror of
https://github.com/kopia/kopia.git
synced 2026-03-05 23:08:11 -05:00
Merge 'master' into feat-k10-12441-B-validate-index
This commit is contained in:
@@ -121,8 +121,37 @@ func (c *commandRepositorySetParameters) setRetentionModeParameter(ctx context.C
|
||||
log(ctx).Infof(" - setting %v to %s.\n", desc, v)
|
||||
}
|
||||
|
||||
func (c *commandRepositorySetParameters) updateEpochParameters(mp *format.MutableParameters, anyChange, upgradeToEpochManager *bool) {
|
||||
*anyChange = true
|
||||
func updateRepositoryParameters(
|
||||
ctx context.Context,
|
||||
upgradeToEpochManager bool,
|
||||
mp format.MutableParameters,
|
||||
rep repo.DirectRepositoryWriter,
|
||||
blobcfg format.BlobStorageConfiguration,
|
||||
requiredFeatures []feature.Required,
|
||||
) error {
|
||||
if upgradeToEpochManager {
|
||||
log(ctx).Infof("migrating current indexes to epoch format")
|
||||
|
||||
if err := rep.ContentManager().PrepareUpgradeToIndexBlobManagerV1(ctx, mp.EpochParameters); err != nil {
|
||||
return errors.Wrap(err, "error upgrading indexes")
|
||||
}
|
||||
}
|
||||
|
||||
if err := rep.FormatManager().SetParameters(ctx, mp, blobcfg, requiredFeatures); err != nil {
|
||||
return errors.Wrap(err, "error setting parameters")
|
||||
}
|
||||
|
||||
if upgradeToEpochManager {
|
||||
if err := format.WriteLegacyIndexPoisonBlob(ctx, rep.BlobStorage()); err != nil {
|
||||
log(ctx).Errorf("unable to write legacy index poison blob: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *commandRepositorySetParameters) run(ctx context.Context, rep repo.DirectRepositoryWriter) error {
|
||||
var anyChange bool
|
||||
|
||||
if !mp.EpochParameters.Enabled {
|
||||
mp.EpochParameters = epoch.DefaultParameters()
|
||||
@@ -223,7 +252,8 @@ func (c *commandRepositorySetParameters) run(ctx context.Context, rep repo.Direc
|
||||
return errors.Errorf("no changes")
|
||||
}
|
||||
|
||||
if err := c.applyNewParameters(ctx, rep, requiredFeatures, blobcfg, mp, upgradeToEpochManager); err != nil {
|
||||
err = updateRepositoryParameters(ctx, upgradeToEpochManager, mp, rep, blobcfg, requiredFeatures)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "error updating repository parameters")
|
||||
}
|
||||
|
||||
|
||||
@@ -114,6 +114,7 @@ func (e *CLITest) TweakFile(t *testing.T, dirn, fglob string) {
|
||||
t.Helper()
|
||||
|
||||
const RwUserGroupOther = 0o666
|
||||
|
||||
// find a file within the repository to corrupt
|
||||
mch, err := fs.Glob(os.DirFS(dirn), fglob)
|
||||
require.NoError(t, err)
|
||||
|
||||
Reference in New Issue
Block a user