introduce the resource owner name to op.backup (#2921)
adds a resourceOwnerName property to the op backup struct. Also adds a resource owner id and owner name to the backup.backup. These values will be used for both identification and for end user display. Values are not currently populated reliably, nor are they used. This change only allows them to exist. --- #### Does this PR need a docs update or release note? - [x] ⛔ No #### Type of change - [x] 🌻 Feature #### Issue(s) * #2825 #### Test Plan - [x] ⚡ Unit test - [x] 💚 E2E
This commit is contained in:
parent
328d75945b
commit
f76222df73
@ -35,10 +35,12 @@ import (
|
|||||||
type BackupOperation struct {
|
type BackupOperation struct {
|
||||||
operation
|
operation
|
||||||
|
|
||||||
ResourceOwner string `json:"resourceOwner"`
|
ResourceOwner string `json:"resourceOwner"`
|
||||||
Results BackupResults `json:"results"`
|
ResourceOwnerName string `json:"resourceOwnerName"`
|
||||||
Selectors selectors.Selector `json:"selectors"`
|
|
||||||
Version string `json:"version"`
|
Results BackupResults `json:"results"`
|
||||||
|
Selectors selectors.Selector `json:"selectors"`
|
||||||
|
Version string `json:"version"`
|
||||||
|
|
||||||
account account.Account
|
account account.Account
|
||||||
|
|
||||||
@ -61,15 +63,17 @@ func NewBackupOperation(
|
|||||||
sw *store.Wrapper,
|
sw *store.Wrapper,
|
||||||
acct account.Account,
|
acct account.Account,
|
||||||
selector selectors.Selector,
|
selector selectors.Selector,
|
||||||
|
ownerName string,
|
||||||
bus events.Eventer,
|
bus events.Eventer,
|
||||||
) (BackupOperation, error) {
|
) (BackupOperation, error) {
|
||||||
op := BackupOperation{
|
op := BackupOperation{
|
||||||
operation: newOperation(opts, bus, kw, sw),
|
operation: newOperation(opts, bus, kw, sw),
|
||||||
ResourceOwner: selector.DiscreteOwner,
|
ResourceOwner: selector.DiscreteOwner,
|
||||||
Selectors: selector,
|
ResourceOwnerName: ownerName,
|
||||||
Version: "v0",
|
Selectors: selector,
|
||||||
account: acct,
|
Version: "v0",
|
||||||
incremental: useIncrementalBackup(selector, opts),
|
account: acct,
|
||||||
|
incremental: useIncrementalBackup(selector, opts),
|
||||||
}
|
}
|
||||||
if err := op.validate(); err != nil {
|
if err := op.validate(); err != nil {
|
||||||
return BackupOperation{}, err
|
return BackupOperation{}, err
|
||||||
@ -707,6 +711,8 @@ func (op *BackupOperation) createBackupModels(
|
|||||||
op.Status.String(),
|
op.Status.String(),
|
||||||
backupID,
|
backupID,
|
||||||
op.Selectors,
|
op.Selectors,
|
||||||
|
op.ResourceOwner,
|
||||||
|
op.ResourceOwnerName,
|
||||||
op.Results.ReadWrites,
|
op.Results.ReadWrites,
|
||||||
op.Results.StartAndEndTime,
|
op.Results.StartAndEndTime,
|
||||||
op.Errors.Errors())
|
op.Errors.Errors())
|
||||||
|
|||||||
@ -127,7 +127,7 @@ func newTestBackupOp(
|
|||||||
|
|
||||||
opts.ToggleFeatures = featureToggles
|
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)) {
|
if !assert.NoError(t, err, clues.ToCore(err)) {
|
||||||
closer()
|
closer()
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
@ -508,6 +508,7 @@ func (suite *BackupOpIntegrationSuite) TestNewBackupOperation() {
|
|||||||
test.sw,
|
test.sw,
|
||||||
test.acct,
|
test.acct,
|
||||||
selectors.Selector{DiscreteOwner: "test"},
|
selectors.Selector{DiscreteOwner: "test"},
|
||||||
|
"test-name",
|
||||||
evmock.NewBus())
|
evmock.NewBus())
|
||||||
test.errCheck(suite.T(), err, clues.ToCore(err))
|
test.errCheck(suite.T(), err, clues.ToCore(err))
|
||||||
})
|
})
|
||||||
|
|||||||
@ -408,6 +408,7 @@ func (suite *BackupOpUnitSuite) TestBackupOperation_PersistResults() {
|
|||||||
sw,
|
sw,
|
||||||
acct,
|
acct,
|
||||||
sel,
|
sel,
|
||||||
|
sel.DiscreteOwner,
|
||||||
evmock.NewBus())
|
evmock.NewBus())
|
||||||
require.NoError(t, err, clues.ToCore(err))
|
require.NoError(t, err, clues.ToCore(err))
|
||||||
|
|
||||||
|
|||||||
@ -209,6 +209,7 @@ func (suite *RestoreOpIntegrationSuite) SetupSuite() {
|
|||||||
sw,
|
sw,
|
||||||
acct,
|
acct,
|
||||||
bsel.Selector,
|
bsel.Selector,
|
||||||
|
bsel.Selector.DiscreteOwner,
|
||||||
evmock.NewBus())
|
evmock.NewBus())
|
||||||
require.NoError(t, err, clues.ToCore(err))
|
require.NoError(t, err, clues.ToCore(err))
|
||||||
|
|
||||||
@ -236,6 +237,7 @@ func (suite *RestoreOpIntegrationSuite) SetupSuite() {
|
|||||||
sw,
|
sw,
|
||||||
acct,
|
acct,
|
||||||
csel.Selector,
|
csel.Selector,
|
||||||
|
csel.Selector.DiscreteOwner,
|
||||||
evmock.NewBus())
|
evmock.NewBus())
|
||||||
require.NoError(t, err, clues.ToCore(err))
|
require.NoError(t, err, clues.ToCore(err))
|
||||||
|
|
||||||
|
|||||||
@ -32,6 +32,10 @@ type Backup struct {
|
|||||||
// Selector used in this operation
|
// Selector used in this operation
|
||||||
Selector selectors.Selector `json:"selectors"`
|
Selector selectors.Selector `json:"selectors"`
|
||||||
|
|
||||||
|
// ResourceOwner reference
|
||||||
|
ResourceOwnerID string `json:"resourceOwnerID"`
|
||||||
|
ResourceOwnerName string `json:"resourceOwnerName"`
|
||||||
|
|
||||||
// Version represents the version of the backup format
|
// Version represents the version of the backup format
|
||||||
Version int `json:"version"`
|
Version int `json:"version"`
|
||||||
|
|
||||||
@ -61,6 +65,7 @@ func New(
|
|||||||
snapshotID, streamStoreID, status string,
|
snapshotID, streamStoreID, status string,
|
||||||
id model.StableID,
|
id model.StableID,
|
||||||
selector selectors.Selector,
|
selector selectors.Selector,
|
||||||
|
ownerID, ownerName string,
|
||||||
rw stats.ReadWrites,
|
rw stats.ReadWrites,
|
||||||
se stats.StartAndEndTime,
|
se stats.StartAndEndTime,
|
||||||
fe *fault.Errors,
|
fe *fault.Errors,
|
||||||
|
|||||||
@ -292,6 +292,7 @@ func (r repository) NewBackup(
|
|||||||
store.NewKopiaStore(r.modelStore),
|
store.NewKopiaStore(r.modelStore),
|
||||||
r.Account,
|
r.Account,
|
||||||
selector,
|
selector,
|
||||||
|
selector.DiscreteOwner,
|
||||||
r.Bus)
|
r.Bus)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -127,6 +127,7 @@ func writeBackup(
|
|||||||
sw *store.Wrapper,
|
sw *store.Wrapper,
|
||||||
tID, snapID, backupID string,
|
tID, snapID, backupID string,
|
||||||
sel selectors.Selector,
|
sel selectors.Selector,
|
||||||
|
ownerID, ownerName string,
|
||||||
deets *details.Details,
|
deets *details.Details,
|
||||||
fe *fault.Errors,
|
fe *fault.Errors,
|
||||||
errs *fault.Bus,
|
errs *fault.Bus,
|
||||||
@ -150,6 +151,7 @@ func writeBackup(
|
|||||||
operations.Completed.String(),
|
operations.Completed.String(),
|
||||||
model.StableID(backupID),
|
model.StableID(backupID),
|
||||||
sel,
|
sel,
|
||||||
|
ownerID, ownerName,
|
||||||
stats.ReadWrites{},
|
stats.ReadWrites{},
|
||||||
stats.StartAndEndTime{},
|
stats.StartAndEndTime{},
|
||||||
fe)
|
fe)
|
||||||
@ -161,7 +163,10 @@ func writeBackup(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (suite *RepositoryModelIntgSuite) TestGetBackupDetails() {
|
func (suite *RepositoryModelIntgSuite) TestGetBackupDetails() {
|
||||||
const tenantID = "tenant"
|
const (
|
||||||
|
brunhilda = "brunhilda"
|
||||||
|
tenantID = "tenant"
|
||||||
|
)
|
||||||
|
|
||||||
info := details.ItemInfo{
|
info := details.ItemInfo{
|
||||||
Folder: &details.FolderInfo{
|
Folder: &details.FolderInfo{
|
||||||
@ -207,7 +212,8 @@ func (suite *RepositoryModelIntgSuite) TestGetBackupDetails() {
|
|||||||
suite.kw,
|
suite.kw,
|
||||||
suite.sw,
|
suite.sw,
|
||||||
tenantID, "snapID", test.writeBupID,
|
tenantID, "snapID", test.writeBupID,
|
||||||
selectors.NewExchangeBackup([]string{"brunhilda"}).Selector,
|
selectors.NewExchangeBackup([]string{brunhilda}).Selector,
|
||||||
|
brunhilda, brunhilda,
|
||||||
test.deets,
|
test.deets,
|
||||||
&fault.Errors{},
|
&fault.Errors{},
|
||||||
fault.New(true))
|
fault.New(true))
|
||||||
@ -228,8 +234,9 @@ func (suite *RepositoryModelIntgSuite) TestGetBackupDetails() {
|
|||||||
|
|
||||||
func (suite *RepositoryModelIntgSuite) TestGetBackupErrors() {
|
func (suite *RepositoryModelIntgSuite) TestGetBackupErrors() {
|
||||||
const (
|
const (
|
||||||
tenantID = "tenant"
|
tenantID = "tenant"
|
||||||
failFast = true
|
failFast = true
|
||||||
|
brunhilda = "brunhilda"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -309,7 +316,8 @@ func (suite *RepositoryModelIntgSuite) TestGetBackupErrors() {
|
|||||||
suite.kw,
|
suite.kw,
|
||||||
suite.sw,
|
suite.sw,
|
||||||
tenantID, "snapID", test.writeBupID,
|
tenantID, "snapID", test.writeBupID,
|
||||||
selectors.NewExchangeBackup([]string{"brunhilda"}).Selector,
|
selectors.NewExchangeBackup([]string{brunhilda}).Selector,
|
||||||
|
brunhilda, brunhilda,
|
||||||
test.deets,
|
test.deets,
|
||||||
test.errors,
|
test.errors,
|
||||||
fault.New(failFast))
|
fault.New(failFast))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user