handle error conditions

This commit is contained in:
neha-Gupta1 2023-10-11 15:09:11 +05:30
parent 78347af93e
commit 492c02e758
7 changed files with 56 additions and 87 deletions

View File

@ -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"

View File

@ -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)
}()
// -----

View File

@ -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)
}()
// -----

View File

@ -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)

View File

@ -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)
}()
// -----

View File

@ -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")
}

View File

@ -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")
})
}