handle error conditions
This commit is contained in:
parent
78347af93e
commit
492c02e758
@ -32,7 +32,6 @@ const (
|
||||
RepoConnect = "Repo Connect"
|
||||
BackupEnd = "Backup End"
|
||||
RestoreEnd = "Restore End"
|
||||
CorsoError = "Corso Error"
|
||||
ExportEnd = "Export End"
|
||||
MaintenanceEnd = "Maintenance End"
|
||||
|
||||
@ -53,6 +52,7 @@ const (
|
||||
StartTime = "start_time"
|
||||
Status = "status"
|
||||
Command = "command"
|
||||
ErrorMessage = "error"
|
||||
|
||||
// default values for keys
|
||||
RepoIDNotFound = "not_found"
|
||||
|
||||
@ -248,34 +248,25 @@ func (op *BackupOperation) Run(ctx context.Context) (err error) {
|
||||
"disable_assist_backup", op.disableAssistBackup)
|
||||
|
||||
defer func() {
|
||||
data := map[string]any{
|
||||
events.BackupID: op.Results.BackupID,
|
||||
events.DataStored: op.Results.BytesUploaded,
|
||||
events.Duration: op.Results.CompletedAt.Sub(op.Results.StartedAt),
|
||||
events.EndTime: dttm.Format(op.Results.CompletedAt),
|
||||
events.Resources: op.Results.ResourceOwners,
|
||||
events.Service: op.Selectors.PathService().String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
}
|
||||
|
||||
if op.Errors.Failure() != nil {
|
||||
op.bus.Event(
|
||||
ctx,
|
||||
events.CorsoError,
|
||||
map[string]any{
|
||||
events.Resources: op.ResourceOwner.ID(),
|
||||
events.ResourcesName: op.ResourceOwner.Name(),
|
||||
events.Service: op.Selectors.PathService().String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
events.BackupID: op.Results.BackupID,
|
||||
events.Command: "Backup",
|
||||
})
|
||||
data[events.ErrorMessage] = op.Errors.Errors().Failure.Msg
|
||||
}
|
||||
|
||||
op.bus.Event(
|
||||
ctx,
|
||||
events.BackupEnd,
|
||||
map[string]any{
|
||||
events.BackupID: op.Results.BackupID,
|
||||
events.DataStored: op.Results.BytesUploaded,
|
||||
events.Duration: op.Results.CompletedAt.Sub(op.Results.StartedAt),
|
||||
events.EndTime: dttm.Format(op.Results.CompletedAt),
|
||||
events.Resources: op.Results.ResourceOwners,
|
||||
events.Service: op.Selectors.PathService().String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
})
|
||||
data)
|
||||
}()
|
||||
|
||||
// -----
|
||||
|
||||
@ -144,35 +144,28 @@ func (op *ExportOperation) Run(ctx context.Context) (
|
||||
"service", op.Selectors.Service)
|
||||
|
||||
defer func() {
|
||||
data := map[string]any{
|
||||
events.BackupID: op.BackupID,
|
||||
events.DataRetrieved: op.Results.BytesRead,
|
||||
events.Duration: op.Results.CompletedAt.Sub(op.Results.StartedAt),
|
||||
events.EndTime: dttm.Format(op.Results.CompletedAt),
|
||||
events.ItemsRead: op.Results.ItemsRead,
|
||||
events.ItemsWritten: op.Results.ItemsWritten,
|
||||
events.Resources: op.Results.ResourceOwners,
|
||||
events.ExportID: opStats.exportID,
|
||||
events.Service: op.Selectors.Service.String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
}
|
||||
|
||||
if op.Errors.Failure() != nil {
|
||||
op.bus.Event(
|
||||
ctx,
|
||||
events.CorsoError,
|
||||
map[string]any{
|
||||
events.Service: op.Selectors.PathService().String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
events.BackupID: op.BackupID,
|
||||
events.Command: "Export",
|
||||
})
|
||||
data[events.ErrorMessage] = op.Errors.Errors()
|
||||
}
|
||||
|
||||
op.bus.Event(
|
||||
ctx,
|
||||
events.ExportEnd,
|
||||
map[string]any{
|
||||
events.BackupID: op.BackupID,
|
||||
events.DataRetrieved: op.Results.BytesRead,
|
||||
events.Duration: op.Results.CompletedAt.Sub(op.Results.StartedAt),
|
||||
events.EndTime: dttm.Format(op.Results.CompletedAt),
|
||||
events.ItemsRead: op.Results.ItemsRead,
|
||||
events.ItemsWritten: op.Results.ItemsWritten,
|
||||
events.Resources: op.Results.ResourceOwners,
|
||||
events.ExportID: opStats.exportID,
|
||||
events.Service: op.Selectors.Service.String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
})
|
||||
data)
|
||||
}()
|
||||
|
||||
// -----
|
||||
|
||||
@ -58,28 +58,22 @@ func (op *MaintenanceOperation) Run(ctx context.Context) (err error) {
|
||||
op.Results.StartedAt = time.Now()
|
||||
|
||||
defer func() {
|
||||
data := map[string]any{
|
||||
events.StartTime: op.Results.StartedAt,
|
||||
events.Duration: op.Results.CompletedAt.Sub(op.Results.StartedAt),
|
||||
events.EndTime: dttm.Format(op.Results.CompletedAt),
|
||||
events.Status: op.Status.String(),
|
||||
events.Resources: op.mOpts.Type.String(),
|
||||
}
|
||||
|
||||
if op.Errors.Failure() != nil {
|
||||
op.bus.Event(
|
||||
ctx,
|
||||
events.CorsoError,
|
||||
map[string]any{
|
||||
events.Resources: op.mOpts.Type.String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
events.Command: "Maintenance",
|
||||
})
|
||||
data[events.ErrorMessage] = op.Errors.Errors()
|
||||
}
|
||||
|
||||
op.bus.Event(
|
||||
ctx,
|
||||
events.MaintenanceEnd,
|
||||
map[string]any{
|
||||
events.StartTime: op.Results.StartedAt,
|
||||
events.Duration: op.Results.CompletedAt.Sub(op.Results.StartedAt),
|
||||
events.EndTime: dttm.Format(op.Results.CompletedAt),
|
||||
events.Status: op.Status.String(),
|
||||
events.Resources: op.mOpts.Type.String(),
|
||||
})
|
||||
data)
|
||||
}()
|
||||
|
||||
return op.do(ctx)
|
||||
|
||||
@ -146,35 +146,28 @@ func (op *RestoreOperation) Run(ctx context.Context) (restoreDetails *details.De
|
||||
"destination_container", clues.Hide(op.RestoreCfg.Location))
|
||||
|
||||
defer func() {
|
||||
data := map[string]any{
|
||||
events.BackupID: op.BackupID,
|
||||
events.DataRetrieved: op.Results.BytesRead,
|
||||
events.Duration: op.Results.CompletedAt.Sub(op.Results.StartedAt),
|
||||
events.EndTime: dttm.Format(op.Results.CompletedAt),
|
||||
events.ItemsRead: op.Results.ItemsRead,
|
||||
events.ItemsWritten: op.Results.ItemsWritten,
|
||||
events.Resources: op.Results.ResourceOwners,
|
||||
events.RestoreID: opStats.restoreID,
|
||||
events.Service: op.Selectors.Service.String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
}
|
||||
|
||||
if op.Errors.Failure() != nil {
|
||||
op.bus.Event(
|
||||
ctx,
|
||||
events.CorsoError,
|
||||
map[string]any{
|
||||
events.Service: op.Selectors.PathService().String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
events.BackupID: op.BackupID,
|
||||
events.Command: "Restore",
|
||||
})
|
||||
data[events.ErrorMessage] = op.Errors.Errors()
|
||||
}
|
||||
|
||||
op.bus.Event(
|
||||
ctx,
|
||||
events.RestoreEnd,
|
||||
map[string]any{
|
||||
events.BackupID: op.BackupID,
|
||||
events.DataRetrieved: op.Results.BytesRead,
|
||||
events.Duration: op.Results.CompletedAt.Sub(op.Results.StartedAt),
|
||||
events.EndTime: dttm.Format(op.Results.CompletedAt),
|
||||
events.ItemsRead: op.Results.ItemsRead,
|
||||
events.ItemsWritten: op.Results.ItemsWritten,
|
||||
events.Resources: op.Results.ResourceOwners,
|
||||
events.RestoreID: opStats.restoreID,
|
||||
events.Service: op.Selectors.Service.String(),
|
||||
events.StartTime: dttm.Format(op.Results.StartedAt),
|
||||
events.Status: op.Status.String(),
|
||||
})
|
||||
data)
|
||||
}()
|
||||
|
||||
// -----
|
||||
|
||||
@ -366,6 +366,5 @@ func (suite *RestoreOpIntegrationSuite) TestRestore_Run_errorNoBackup() {
|
||||
require.Nil(t, ds, "restoreOp.Run() should not produce details")
|
||||
assert.Zero(t, ro.Results.ResourceOwners, "resource owners")
|
||||
assert.Zero(t, ro.Results.BytesRead, "bytes read")
|
||||
assert.Equal(t, 1, mb.TimesCalled[events.CorsoError], "corso-error events")
|
||||
assert.Equal(t, 1, mb.TimesCalled[events.RestoreEnd], "restore-end events")
|
||||
}
|
||||
|
||||
@ -226,7 +226,6 @@ func (suite *ExchangeBackupIntgSuite) TestBackup_Run_exchange() {
|
||||
assert.Equal(t, bo.Results.ResourceOwners, incBO.Results.ResourceOwners, "incremental backup resource owner")
|
||||
assert.NoError(t, incBO.Errors.Failure(), "incremental non-recoverable error", clues.ToCore(bo.Errors.Failure()))
|
||||
assert.Empty(t, incBO.Errors.Recovered(), "count incremental recoverable/iteration errors")
|
||||
assert.Equal(t, 0, incMB.TimesCalled[events.CorsoError], "corso error events")
|
||||
assert.Equal(t, 1, incMB.TimesCalled[events.BackupEnd], "incremental backup-end events")
|
||||
})
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user