diff --git a/src/internal/operations/backup.go b/src/internal/operations/backup.go index 4b4a7a7eb..40a74d089 100644 --- a/src/internal/operations/backup.go +++ b/src/internal/operations/backup.go @@ -35,10 +35,12 @@ import ( type BackupOperation struct { operation - ResourceOwner string `json:"resourceOwner"` - Results BackupResults `json:"results"` - Selectors selectors.Selector `json:"selectors"` - Version string `json:"version"` + ResourceOwner string `json:"resourceOwner"` + ResourceOwnerName string `json:"resourceOwnerName"` + + Results BackupResults `json:"results"` + Selectors selectors.Selector `json:"selectors"` + Version string `json:"version"` account account.Account @@ -61,15 +63,17 @@ func NewBackupOperation( sw *store.Wrapper, acct account.Account, selector selectors.Selector, + ownerName string, bus events.Eventer, ) (BackupOperation, error) { op := BackupOperation{ - operation: newOperation(opts, bus, kw, sw), - ResourceOwner: selector.DiscreteOwner, - Selectors: selector, - Version: "v0", - account: acct, - incremental: useIncrementalBackup(selector, opts), + operation: newOperation(opts, bus, kw, sw), + ResourceOwner: selector.DiscreteOwner, + ResourceOwnerName: ownerName, + Selectors: selector, + Version: "v0", + account: acct, + incremental: useIncrementalBackup(selector, opts), } if err := op.validate(); err != nil { return BackupOperation{}, err @@ -707,6 +711,8 @@ func (op *BackupOperation) createBackupModels( op.Status.String(), backupID, op.Selectors, + op.ResourceOwner, + op.ResourceOwnerName, op.Results.ReadWrites, op.Results.StartAndEndTime, op.Errors.Errors()) diff --git a/src/internal/operations/backup_integration_test.go b/src/internal/operations/backup_integration_test.go index 32630dd6a..78b4efcb2 100644 --- a/src/internal/operations/backup_integration_test.go +++ b/src/internal/operations/backup_integration_test.go @@ -127,7 +127,7 @@ func newTestBackupOp( opts.ToggleFeatures = featureToggles - bo, err := NewBackupOperation(ctx, opts, kw, sw, acct, sel, bus) + bo, err := NewBackupOperation(ctx, opts, kw, sw, acct, sel, sel.DiscreteOwner, bus) if !assert.NoError(t, err, clues.ToCore(err)) { closer() t.FailNow() @@ -508,6 +508,7 @@ func (suite *BackupOpIntegrationSuite) TestNewBackupOperation() { test.sw, test.acct, selectors.Selector{DiscreteOwner: "test"}, + "test-name", evmock.NewBus()) test.errCheck(suite.T(), err, clues.ToCore(err)) }) diff --git a/src/internal/operations/backup_test.go b/src/internal/operations/backup_test.go index f74b6f8b8..127ac5483 100644 --- a/src/internal/operations/backup_test.go +++ b/src/internal/operations/backup_test.go @@ -408,6 +408,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_PersistResults() { sw, acct, sel, + sel.DiscreteOwner, evmock.NewBus()) require.NoError(t, err, clues.ToCore(err)) diff --git a/src/internal/operations/restore_test.go b/src/internal/operations/restore_test.go index 1e7cec997..8833218a9 100644 --- a/src/internal/operations/restore_test.go +++ b/src/internal/operations/restore_test.go @@ -209,6 +209,7 @@ func (suite *RestoreOpIntegrationSuite) SetupSuite() { sw, acct, bsel.Selector, + bsel.Selector.DiscreteOwner, evmock.NewBus()) require.NoError(t, err, clues.ToCore(err)) @@ -236,6 +237,7 @@ func (suite *RestoreOpIntegrationSuite) SetupSuite() { sw, acct, csel.Selector, + csel.Selector.DiscreteOwner, evmock.NewBus()) require.NoError(t, err, clues.ToCore(err)) diff --git a/src/pkg/backup/backup.go b/src/pkg/backup/backup.go index d08ccfbb6..24f02992a 100644 --- a/src/pkg/backup/backup.go +++ b/src/pkg/backup/backup.go @@ -32,6 +32,10 @@ type Backup struct { // Selector used in this operation Selector selectors.Selector `json:"selectors"` + // ResourceOwner reference + ResourceOwnerID string `json:"resourceOwnerID"` + ResourceOwnerName string `json:"resourceOwnerName"` + // Version represents the version of the backup format Version int `json:"version"` @@ -61,6 +65,7 @@ func New( snapshotID, streamStoreID, status string, id model.StableID, selector selectors.Selector, + ownerID, ownerName string, rw stats.ReadWrites, se stats.StartAndEndTime, fe *fault.Errors, diff --git a/src/pkg/repository/repository.go b/src/pkg/repository/repository.go index 21ba4aef6..874b3a04f 100644 --- a/src/pkg/repository/repository.go +++ b/src/pkg/repository/repository.go @@ -292,6 +292,7 @@ func (r repository) NewBackup( store.NewKopiaStore(r.modelStore), r.Account, selector, + selector.DiscreteOwner, r.Bus) } diff --git a/src/pkg/repository/repository_unexported_test.go b/src/pkg/repository/repository_unexported_test.go index d9d900fc7..2bceff5c9 100644 --- a/src/pkg/repository/repository_unexported_test.go +++ b/src/pkg/repository/repository_unexported_test.go @@ -127,6 +127,7 @@ func writeBackup( sw *store.Wrapper, tID, snapID, backupID string, sel selectors.Selector, + ownerID, ownerName string, deets *details.Details, fe *fault.Errors, errs *fault.Bus, @@ -150,6 +151,7 @@ func writeBackup( operations.Completed.String(), model.StableID(backupID), sel, + ownerID, ownerName, stats.ReadWrites{}, stats.StartAndEndTime{}, fe) @@ -161,7 +163,10 @@ func writeBackup( } func (suite *RepositoryModelIntgSuite) TestGetBackupDetails() { - const tenantID = "tenant" + const ( + brunhilda = "brunhilda" + tenantID = "tenant" + ) info := details.ItemInfo{ Folder: &details.FolderInfo{ @@ -207,7 +212,8 @@ func (suite *RepositoryModelIntgSuite) TestGetBackupDetails() { suite.kw, suite.sw, tenantID, "snapID", test.writeBupID, - selectors.NewExchangeBackup([]string{"brunhilda"}).Selector, + selectors.NewExchangeBackup([]string{brunhilda}).Selector, + brunhilda, brunhilda, test.deets, &fault.Errors{}, fault.New(true)) @@ -228,8 +234,9 @@ func (suite *RepositoryModelIntgSuite) TestGetBackupDetails() { func (suite *RepositoryModelIntgSuite) TestGetBackupErrors() { const ( - tenantID = "tenant" - failFast = true + tenantID = "tenant" + failFast = true + brunhilda = "brunhilda" ) var ( @@ -309,7 +316,8 @@ func (suite *RepositoryModelIntgSuite) TestGetBackupErrors() { suite.kw, suite.sw, tenantID, "snapID", test.writeBupID, - selectors.NewExchangeBackup([]string{"brunhilda"}).Selector, + selectors.NewExchangeBackup([]string{brunhilda}).Selector, + brunhilda, brunhilda, test.deets, test.errors, fault.New(failFast))