Skip to content

Commit

Permalink
Merge pull request #279 from kaovilai/unkopia-openshift-for-plugins
Browse files Browse the repository at this point in the history
oadp-1.2: Moving kopia logging to remove kopia from indirect dependency in vele…
  • Loading branch information
kaovilai authored Aug 21, 2023
2 parents cfd301e + d70733f commit a530174
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 20 deletions.
1 change: 1 addition & 0 deletions changelogs/unreleased/6484-kaovilai
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Velero Plugins no longer need kopia indirect dependency in their go.mod
4 changes: 2 additions & 2 deletions pkg/util/logging/kopia_log.go → pkg/kopia/kopia_log.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
package kopia

/*
Copyright the Velero contributors.
Expand All @@ -14,8 +16,6 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

package logging

import (
"context"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

package logging
package kopia

import (
"testing"
Expand Down
33 changes: 19 additions & 14 deletions pkg/repository/udmrepo/kopialib/lib_repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ import (
"github.com/pkg/errors"
"github.com/sirupsen/logrus"

"github.com/vmware-tanzu/velero/pkg/kopia"
"github.com/vmware-tanzu/velero/pkg/repository/udmrepo"
"github.com/vmware-tanzu/velero/pkg/util/logging"
)

type kopiaRepoService struct {
Expand Down Expand Up @@ -92,7 +92,7 @@ func NewKopiaRepoService(logger logrus.FieldLogger) udmrepo.BackupRepoService {
}

func (ks *kopiaRepoService) Init(ctx context.Context, repoOption udmrepo.RepoOptions, createNew bool) error {
repoCtx := logging.SetupKopiaLog(ctx, ks.logger)
repoCtx := kopia.SetupKopiaLog(ctx, ks.logger)

if createNew {
if err := CreateBackupRepo(repoCtx, repoOption); err != nil {
Expand All @@ -115,7 +115,7 @@ func (ks *kopiaRepoService) Open(ctx context.Context, repoOption udmrepo.RepoOpt
return nil, errors.Wrapf(err, "repo config %s doesn't exist", repoConfig)
}

repoCtx := logging.SetupKopiaLog(ctx, ks.logger)
repoCtx := kopia.SetupKopiaLog(ctx, ks.logger)

r, err := openKopiaRepo(repoCtx, repoConfig, repoOption.RepoPassword)
if err != nil {
Expand Down Expand Up @@ -158,7 +158,7 @@ func (ks *kopiaRepoService) Maintain(ctx context.Context, repoOption udmrepo.Rep
return errors.Wrapf(err, "repo config %s doesn't exist", repoConfig)
}

repoCtx := logging.SetupKopiaLog(ctx, ks.logger)
repoCtx := kopia.SetupKopiaLog(ctx, ks.logger)

r, err := openKopiaRepo(repoCtx, repoConfig, repoOption.RepoPassword)
if err != nil {
Expand Down Expand Up @@ -208,7 +208,7 @@ func (ks *kopiaRepoService) DefaultMaintenanceFrequency() time.Duration {
}

func (km *kopiaMaintenance) runMaintenance(ctx context.Context, rep repo.DirectRepositoryWriter) error {
err := snapshotmaintenance.Run(logging.SetupKopiaLog(ctx, km.logger), rep, km.mode, false, maintenance.SafetyFull)
err := snapshotmaintenance.Run(kopia.SetupKopiaLog(ctx, km.logger), rep, km.mode, false, maintenance.SafetyFull)
if err != nil {
return errors.Wrapf(err, "error to run maintenance under mode %s", km.mode)
}
Expand All @@ -235,7 +235,12 @@ func (kr *kopiaRepository) OpenObject(ctx context.Context, id udmrepo.ID) (udmre
return nil, errors.New("repo is closed or not open")
}

reader, err := kr.rawRepo.OpenObject(logging.SetupKopiaLog(ctx, kr.logger), object.ID(id))
objID, err := object.ParseID(string(id))
if err != nil {
return nil, errors.Wrapf(err, "error to parse object ID from %v", id)
}

reader, err := kr.rawRepo.OpenObject(kopia.SetupKopiaLog(ctx, kr.logger), objID)
if err != nil {
return nil, errors.Wrap(err, "error to open object")
}
Expand All @@ -250,7 +255,7 @@ func (kr *kopiaRepository) GetManifest(ctx context.Context, id udmrepo.ID, mani
return errors.New("repo is closed or not open")
}

metadata, err := kr.rawRepo.GetManifest(logging.SetupKopiaLog(ctx, kr.logger), manifest.ID(id), mani.Payload)
metadata, err := kr.rawRepo.GetManifest(kopia.SetupKopiaLog(ctx, kr.logger), manifest.ID(id), mani.Payload)
if err != nil {
return errors.Wrap(err, "error to get manifest")
}
Expand All @@ -265,7 +270,7 @@ func (kr *kopiaRepository) FindManifests(ctx context.Context, filter udmrepo.Man
return nil, errors.New("repo is closed or not open")
}

metadata, err := kr.rawRepo.FindManifests(logging.SetupKopiaLog(ctx, kr.logger), filter.Labels)
metadata, err := kr.rawRepo.FindManifests(kopia.SetupKopiaLog(ctx, kr.logger), filter.Labels)
if err != nil {
return nil, errors.Wrap(err, "error to find manifests")
}
Expand All @@ -283,7 +288,7 @@ func (kr *kopiaRepository) Time() time.Time {

func (kr *kopiaRepository) Close(ctx context.Context) error {
if kr.rawWriter != nil {
err := kr.rawWriter.Close(logging.SetupKopiaLog(ctx, kr.logger))
err := kr.rawWriter.Close(kopia.SetupKopiaLog(ctx, kr.logger))
if err != nil {
return errors.Wrap(err, "error to close repo writer")
}
Expand All @@ -292,7 +297,7 @@ func (kr *kopiaRepository) Close(ctx context.Context) error {
}

if kr.rawRepo != nil {
err := kr.rawRepo.Close(logging.SetupKopiaLog(ctx, kr.logger))
err := kr.rawRepo.Close(kopia.SetupKopiaLog(ctx, kr.logger))
if err != nil {
return errors.Wrap(err, "error to close repo")
}
Expand All @@ -308,7 +313,7 @@ func (kr *kopiaRepository) NewObjectWriter(ctx context.Context, opt udmrepo.Obje
return nil
}

writer := kr.rawWriter.NewObjectWriter(logging.SetupKopiaLog(ctx, kr.logger), object.WriterOptions{
writer := kr.rawWriter.NewObjectWriter(kopia.SetupKopiaLog(ctx, kr.logger), object.WriterOptions{
Description: opt.Description,
Prefix: index.ID(opt.Prefix),
AsyncWrites: getAsyncWrites(),
Expand All @@ -329,7 +334,7 @@ func (kr *kopiaRepository) PutManifest(ctx context.Context, manifest udmrepo.Rep
return "", errors.New("repo writer is closed or not open")
}

id, err := kr.rawWriter.PutManifest(logging.SetupKopiaLog(ctx, kr.logger), manifest.Metadata.Labels, manifest.Payload)
id, err := kr.rawWriter.PutManifest(kopia.SetupKopiaLog(ctx, kr.logger), manifest.Metadata.Labels, manifest.Payload)
if err != nil {
return "", errors.Wrap(err, "error to put manifest")
}
Expand All @@ -342,7 +347,7 @@ func (kr *kopiaRepository) DeleteManifest(ctx context.Context, id udmrepo.ID) er
return errors.New("repo writer is closed or not open")
}

err := kr.rawWriter.DeleteManifest(logging.SetupKopiaLog(ctx, kr.logger), manifest.ID(id))
err := kr.rawWriter.DeleteManifest(kopia.SetupKopiaLog(ctx, kr.logger), manifest.ID(id))
if err != nil {
return errors.Wrap(err, "error to delete manifest")
}
Expand All @@ -355,7 +360,7 @@ func (kr *kopiaRepository) Flush(ctx context.Context) error {
return errors.New("repo writer is closed or not open")
}

err := kr.rawWriter.Flush(logging.SetupKopiaLog(ctx, kr.logger))
err := kr.rawWriter.Flush(kopia.SetupKopiaLog(ctx, kr.logger))
if err != nil {
return errors.Wrap(err, "error to flush repo")
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/uploader/kopia/snapshot.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ import (

"github.com/sirupsen/logrus"

"github.com/vmware-tanzu/velero/pkg/kopia"
"github.com/vmware-tanzu/velero/pkg/repository/udmrepo"
"github.com/vmware-tanzu/velero/pkg/uploader"
"github.com/vmware-tanzu/velero/pkg/util/logging"

"github.com/kopia/kopia/fs"
"github.com/kopia/kopia/fs/localfs"
Expand Down Expand Up @@ -121,7 +121,7 @@ func Backup(ctx context.Context, fsUploader *snapshotfs.Uploader, repoWriter rep
return nil, false, errors.Wrap(err, "Unable to get local filesystem entry")
}

kopiaCtx := logging.SetupKopiaLog(ctx, log)
kopiaCtx := kopia.SetupKopiaLog(ctx, log)
snapID, snapshotSize, err := SnapshotSource(kopiaCtx, repoWriter, fsUploader, sourceInfo, rootDir, parentSnapshot, log, "Kopia Uploader")
if err != nil {
return nil, false, err
Expand Down Expand Up @@ -277,7 +277,7 @@ func findPreviousSnapshotManifest(ctx context.Context, rep repo.Repository, sour
func Restore(ctx context.Context, rep repo.RepositoryWriter, progress *KopiaProgress, snapshotID, dest string, log logrus.FieldLogger, cancleCh chan struct{}) (int64, int32, error) {
log.Info("Start to restore...")

kopiaCtx := logging.SetupKopiaLog(ctx, log)
kopiaCtx := kopia.SetupKopiaLog(ctx, log)

rootEntry, err := snapshotfs.FilesystemEntryFromIDWithPath(kopiaCtx, rep, snapshotID, false)
if err != nil {
Expand Down

0 comments on commit a530174

Please sign in to comment.