mirror of
https://github.com/kopia/kopia.git
synced 2026-01-24 14:28:06 -05:00
Also simplified validation test suite, which will simply test whether the provider supports DoNotRecreate or properly rejects it without external configuration.
36 lines
1.2 KiB
Go
36 lines
1.2 KiB
Go
package cli
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/pkg/errors"
|
|
|
|
"github.com/kopia/kopia/internal/providervalidation"
|
|
"github.com/kopia/kopia/repo"
|
|
)
|
|
|
|
type commandRepositoryValidateProvider struct {
|
|
opt providervalidation.Options
|
|
out textOutput
|
|
}
|
|
|
|
func (c *commandRepositoryValidateProvider) setup(svc advancedAppServices, parent commandParent) {
|
|
cmd := parent.Command("validate-provider", "Validates that a repository provider is compatible with Kopia")
|
|
|
|
c.opt = providervalidation.DefaultOptions
|
|
|
|
cmd.Flag("concurrency-test-duration", "Duration of concurrency test").DurationVar(&c.opt.ConcurrencyTestDuration)
|
|
cmd.Flag("put-blob-workers", "Number of PutBlob workers").IntVar(&c.opt.NumPutBlobWorkers)
|
|
cmd.Flag("get-blob-workers", "Number of GetBlob workers").IntVar(&c.opt.NumGetBlobWorkers)
|
|
cmd.Flag("get-metadata-workers", "Number of GetMetadata workers").IntVar(&c.opt.NumGetMetadataWorkers)
|
|
c.out.setup(svc)
|
|
|
|
cmd.Action(c.out.svc.directRepositoryWriteAction(c.run))
|
|
}
|
|
|
|
func (c *commandRepositoryValidateProvider) run(ctx context.Context, dr repo.DirectRepositoryWriter) error {
|
|
return errors.Wrap(
|
|
providervalidation.ValidateProvider(ctx, dr.BlobStorage(), c.opt),
|
|
"provider validation error")
|
|
}
|