Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelogs/unreleased/8875-hu-keyu
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Pass the logger in kopia related operations.
8 changes: 6 additions & 2 deletions pkg/repository/udmrepo/kopialib/backend/azure.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import (
"context"

"github.com/sirupsen/logrus"

"github.com/kopia/kopia/repo/blob"

"github.com/vmware-tanzu/velero/pkg/repository/udmrepo"
Expand All @@ -29,17 +31,19 @@
option azure.Option
}

func (c *AzureBackend) Setup(ctx context.Context, flags map[string]string) error {
func (c *AzureBackend) Setup(ctx context.Context, flags map[string]string, logger logrus.FieldLogger) error {
if flags[udmrepo.StoreOptionCACert] != "" {
flags["caCertEncoded"] = "true"
}
c.option = azure.Option{
Config: flags,
Limits: setupLimits(ctx, flags),
Logger: logger,
}
return nil
}

func (c *AzureBackend) Connect(ctx context.Context, isCreate bool) (blob.Storage, error) {
func (c *AzureBackend) Connect(ctx context.Context, isCreate bool, logger logrus.FieldLogger) (blob.Storage, error) {
c.option.Logger = logger

Check warning on line 47 in pkg/repository/udmrepo/kopialib/backend/azure.go

View check run for this annotation

Codecov / codecov/patch

pkg/repository/udmrepo/kopialib/backend/azure.go#L46-L47

Added lines #L46 - L47 were not covered by tests
return azure.NewStorage(ctx, &c.option, false)
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@
import (
"context"

"github.com/sirupsen/logrus"

"github.com/kopia/kopia/repo/blob"
"github.com/kopia/kopia/repo/blob/azure"
"github.com/kopia/kopia/repo/blob/throttling"
"github.com/sirupsen/logrus"

"github.com/vmware-tanzu/velero/pkg/repository/udmrepo"
azureutil "github.com/vmware-tanzu/velero/pkg/util/azure"
Expand All @@ -33,12 +34,13 @@
)

func init() {
blob.AddSupportedStorage(storageType, Option{}, NewStorage)
blob.AddSupportedStorage(storageType, Option{Logger: logrus.New()}, NewStorage)
}

type Option struct {
Config map[string]string `json:"config" kopia:"sensitive"`
Limits throttling.Limits
Logger logrus.FieldLogger
}

type Storage struct {
Expand All @@ -56,7 +58,7 @@
func NewStorage(ctx context.Context, option *Option, isCreate bool) (blob.Storage, error) {
cfg := option.Config

client, _, err := azureutil.NewStorageClient(logrus.New(), cfg)
client, _, err := azureutil.NewStorageClient(option.Logger, cfg)

Check warning on line 61 in pkg/repository/udmrepo/kopialib/backend/azure/azure_storage_wrapper.go

View check run for this annotation

Codecov / codecov/patch

pkg/repository/udmrepo/kopialib/backend/azure/azure_storage_wrapper.go#L61

Added line #L61 was not covered by tests
if err != nil {
return nil, err
}
Expand Down
5 changes: 4 additions & 1 deletion pkg/repository/udmrepo/kopialib/backend/azure_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import (
"context"
"testing"

velerotest "github.com/vmware-tanzu/velero/pkg/test"

"github.com/kopia/kopia/repo/blob/throttling"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
Expand All @@ -29,6 +31,7 @@ import (

func TestAzureSetup(t *testing.T) {
backend := AzureBackend{}
logger := velerotest.NewLogger()

flags := map[string]string{
"key": "value",
Expand All @@ -40,7 +43,7 @@ func TestAzureSetup(t *testing.T) {
UploadBytesPerSecond: 200,
}

err := backend.Setup(context.Background(), flags)
err := backend.Setup(context.Background(), flags, logger)
require.NoError(t, err)
assert.Equal(t, flags, backend.option.Config)
assert.Equal(t, limits, backend.option.Limits)
Expand Down
6 changes: 4 additions & 2 deletions pkg/repository/udmrepo/kopialib/backend/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@ package backend
import (
"context"

"github.com/sirupsen/logrus"

"github.com/kopia/kopia/repo/blob"
)

// Store defines the methods for Kopia to establish a connection to
// the backend storage
type Store interface {
// Setup setups the variables to a specific backend storage
Setup(ctx context.Context, flags map[string]string) error
Setup(ctx context.Context, flags map[string]string, logger logrus.FieldLogger) error

// Connect connects to a specific backend storage with the storage variables
Connect(ctx context.Context, isCreate bool) (blob.Storage, error)
Connect(ctx context.Context, isCreate bool, logger logrus.FieldLogger) (blob.Storage, error)
}
6 changes: 4 additions & 2 deletions pkg/repository/udmrepo/kopialib/backend/file_system.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
"context"
"path/filepath"

"github.com/sirupsen/logrus"

"github.com/kopia/kopia/repo/blob"
"github.com/kopia/kopia/repo/blob/filesystem"
"github.com/pkg/errors"
Expand All @@ -36,7 +38,7 @@
defaultDirMode = 0o700
)

func (c *FsBackend) Setup(ctx context.Context, flags map[string]string) error {
func (c *FsBackend) Setup(ctx context.Context, flags map[string]string, logger logrus.FieldLogger) error {
path, err := mustHaveString(udmrepo.StoreOptionFsPath, flags)
if err != nil {
return err
Expand All @@ -53,7 +55,7 @@
return nil
}

func (c *FsBackend) Connect(ctx context.Context, isCreate bool) (blob.Storage, error) {
func (c *FsBackend) Connect(ctx context.Context, isCreate bool, logger logrus.FieldLogger) (blob.Storage, error) {

Check warning on line 58 in pkg/repository/udmrepo/kopialib/backend/file_system.go

View check run for this annotation

Codecov / codecov/patch

pkg/repository/udmrepo/kopialib/backend/file_system.go#L58

Added line #L58 was not covered by tests
if !filepath.IsAbs(c.options.Path) {
return nil, errors.Errorf("filesystem repository path is not absolute, path: %s", c.options.Path)
}
Expand Down
5 changes: 4 additions & 1 deletion pkg/repository/udmrepo/kopialib/backend/file_system_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import (
"context"
"testing"

velerotest "github.com/vmware-tanzu/velero/pkg/test"

"github.com/kopia/kopia/repo/blob/filesystem"
"github.com/stretchr/testify/assert"

Expand Down Expand Up @@ -63,11 +65,12 @@ func TestFSSetup(t *testing.T) {
},
}

logger := velerotest.NewLogger()
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
fsFlags := FsBackend{}

err := fsFlags.Setup(context.Background(), tc.flags)
err := fsFlags.Setup(context.Background(), tc.flags, logger)

if tc.expectedErr == "" {
assert.NoError(t, err)
Expand Down
6 changes: 4 additions & 2 deletions pkg/repository/udmrepo/kopialib/backend/gcs.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import (
"context"

"github.com/sirupsen/logrus"

"github.com/kopia/kopia/repo/blob"
"github.com/kopia/kopia/repo/blob/gcs"

Expand All @@ -29,7 +31,7 @@
options gcs.Options
}

func (c *GCSBackend) Setup(ctx context.Context, flags map[string]string) error {
func (c *GCSBackend) Setup(ctx context.Context, flags map[string]string, logger logrus.FieldLogger) error {
var err error
c.options.BucketName, err = mustHaveString(udmrepo.StoreOptionOssBucket, flags)
if err != nil {
Expand All @@ -49,6 +51,6 @@
return nil
}

func (c *GCSBackend) Connect(ctx context.Context, isCreate bool) (blob.Storage, error) {
func (c *GCSBackend) Connect(ctx context.Context, isCreate bool, logger logrus.FieldLogger) (blob.Storage, error) {

Check warning on line 54 in pkg/repository/udmrepo/kopialib/backend/gcs.go

View check run for this annotation

Codecov / codecov/patch

pkg/repository/udmrepo/kopialib/backend/gcs.go#L54

Added line #L54 was not covered by tests
return gcs.New(ctx, &c.options, false)
}
5 changes: 4 additions & 1 deletion pkg/repository/udmrepo/kopialib/backend/gcs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import (
"context"
"testing"

velerotest "github.com/vmware-tanzu/velero/pkg/test"

"github.com/kopia/kopia/repo/blob/gcs"
"github.com/stretchr/testify/assert"

Expand Down Expand Up @@ -85,11 +87,12 @@ func TestGcsSetup(t *testing.T) {
},
}

logger := velerotest.NewLogger()
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
gcsFlags := GCSBackend{}

err := gcsFlags.Setup(context.Background(), tc.flags)
err := gcsFlags.Setup(context.Background(), tc.flags, logger)

if tc.expectedErr == "" {
assert.NoError(t, err)
Expand Down
5 changes: 3 additions & 2 deletions pkg/repository/udmrepo/kopialib/backend/mocks/Store.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 4 additions & 2 deletions pkg/repository/udmrepo/kopialib/backend/s3.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import (
"context"

"github.com/sirupsen/logrus"

"github.com/kopia/kopia/repo/blob"
"github.com/kopia/kopia/repo/blob/s3"

Expand All @@ -29,7 +31,7 @@
options s3.Options
}

func (c *S3Backend) Setup(ctx context.Context, flags map[string]string) error {
func (c *S3Backend) Setup(ctx context.Context, flags map[string]string, logger logrus.FieldLogger) error {
var err error
c.options.BucketName, err = mustHaveString(udmrepo.StoreOptionOssBucket, flags)
if err != nil {
Expand All @@ -51,6 +53,6 @@
return nil
}

func (c *S3Backend) Connect(ctx context.Context, isCreate bool) (blob.Storage, error) {
func (c *S3Backend) Connect(ctx context.Context, isCreate bool, logger logrus.FieldLogger) (blob.Storage, error) {

Check warning on line 56 in pkg/repository/udmrepo/kopialib/backend/s3.go

View check run for this annotation

Codecov / codecov/patch

pkg/repository/udmrepo/kopialib/backend/s3.go#L56

Added line #L56 was not covered by tests
return s3.New(ctx, &c.options, false)
}
5 changes: 4 additions & 1 deletion pkg/repository/udmrepo/kopialib/backend/s3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import (
"context"
"testing"

velerotest "github.com/vmware-tanzu/velero/pkg/test"

"github.com/kopia/kopia/repo/blob/s3"
"github.com/stretchr/testify/assert"

Expand Down Expand Up @@ -115,11 +117,12 @@ func TestS3Setup(t *testing.T) {
},
}

logger := velerotest.NewLogger()
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
s3Flags := S3Backend{}

err := s3Flags.Setup(context.Background(), tc.flags)
err := s3Flags.Setup(context.Background(), tc.flags, logger)

if tc.expectedErr == "" {
assert.NoError(t, err)
Expand Down
4 changes: 2 additions & 2 deletions pkg/repository/udmrepo/kopialib/lib_repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@
repoCtx := kopia.SetupKopiaLog(ctx, ks.logger)

if createNew {
if err := CreateBackupRepo(repoCtx, repoOption); err != nil {
if err := CreateBackupRepo(repoCtx, repoOption, ks.logger); err != nil {

Check warning on line 99 in pkg/repository/udmrepo/kopialib/lib_repo.go

View check run for this annotation

Codecov / codecov/patch

pkg/repository/udmrepo/kopialib/lib_repo.go#L99

Added line #L99 was not covered by tests
return err
}

return writeInitParameters(repoCtx, repoOption, ks.logger)
}
return ConnectBackupRepo(repoCtx, repoOption)
return ConnectBackupRepo(repoCtx, repoOption, ks.logger)

Check warning on line 105 in pkg/repository/udmrepo/kopialib/lib_repo.go

View check run for this annotation

Codecov / codecov/patch

pkg/repository/udmrepo/kopialib/lib_repo.go#L105

Added line #L105 was not covered by tests
}

func (ks *kopiaRepoService) Open(ctx context.Context, repoOption udmrepo.RepoOptions) (udmrepo.BackupRepo, error) {
Expand Down
18 changes: 10 additions & 8 deletions pkg/repository/udmrepo/kopialib/repo_init.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import (
"context"
"strings"

"github.com/sirupsen/logrus"

"github.com/kopia/kopia/repo"
"github.com/kopia/kopia/repo/blob"
"github.com/pkg/errors"
Expand All @@ -44,17 +46,17 @@ var backendStores = []kopiaBackendStore{

// CreateBackupRepo creates a Kopia repository and then connect to it.
// The storage must be empty, otherwise, it will fail
func CreateBackupRepo(ctx context.Context, repoOption udmrepo.RepoOptions) error {
func CreateBackupRepo(ctx context.Context, repoOption udmrepo.RepoOptions, logger logrus.FieldLogger) error {
if repoOption.ConfigFilePath == "" {
return errors.New("invalid config file path")
}

backendStore, err := setupBackendStore(ctx, repoOption.StorageType, repoOption.StorageOptions)
backendStore, err := setupBackendStore(ctx, repoOption.StorageType, repoOption.StorageOptions, logger)
if err != nil {
return errors.Wrap(err, "error to setup backend storage")
}

st, err := backendStore.store.Connect(ctx, true)
st, err := backendStore.store.Connect(ctx, true, logger)
if err != nil {
return errors.Wrap(err, "error to connect to storage")
}
Expand All @@ -74,17 +76,17 @@ func CreateBackupRepo(ctx context.Context, repoOption udmrepo.RepoOptions) error

// ConnectBackupRepo connects to an existing Kopia repository.
// If the repository doesn't exist, it will fail
func ConnectBackupRepo(ctx context.Context, repoOption udmrepo.RepoOptions) error {
func ConnectBackupRepo(ctx context.Context, repoOption udmrepo.RepoOptions, logger logrus.FieldLogger) error {
if repoOption.ConfigFilePath == "" {
return errors.New("invalid config file path")
}

backendStore, err := setupBackendStore(ctx, repoOption.StorageType, repoOption.StorageOptions)
backendStore, err := setupBackendStore(ctx, repoOption.StorageType, repoOption.StorageOptions, logger)
if err != nil {
return errors.Wrap(err, "error to setup backend storage")
}

st, err := backendStore.store.Connect(ctx, false)
st, err := backendStore.store.Connect(ctx, false, logger)
if err != nil {
return errors.Wrap(err, "error to connect to storage")
}
Expand All @@ -107,13 +109,13 @@ func findBackendStore(storage string) *kopiaBackendStore {
return nil
}

func setupBackendStore(ctx context.Context, storageType string, storageOptions map[string]string) (*kopiaBackendStore, error) {
func setupBackendStore(ctx context.Context, storageType string, storageOptions map[string]string, logger logrus.FieldLogger) (*kopiaBackendStore, error) {
backendStore := findBackendStore(storageType)
if backendStore == nil {
return nil, errors.New("error to find storage type")
}

err := backendStore.store.Setup(ctx, storageOptions)
err := backendStore.store.Setup(ctx, storageOptions, logger)
if err != nil {
return nil, errors.Wrap(err, "error to setup storage")
}
Expand Down
Loading
Loading