Skip to content

Commit 72724b3

Browse files
committed
fix
1 parent a5e42da commit 72724b3

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

coderd/notifications/reports/generator.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ func NewReportGenerator(ctx context.Context, logger slog.Logger, db database.Sto
5151

5252
err = reportFailedWorkspaceBuilds(ctx, logger, db, enqueuer, clk)
5353
if err != nil {
54-
logger.Debug(ctx, "unable to generate reports with failed workspace builds")
5554
return xerrors.Errorf("unable to generate reports with failed workspace builds: %w", err)
5655
}
5756

@@ -137,6 +136,11 @@ func reportFailedWorkspaceBuilds(ctx context.Context, logger slog.Logger, db dat
137136
}
138137

139138
for _, stats := range templateStatsRows {
139+
if ctx.Err() == context.Canceled {
140+
logger.Debug(ctx, "context is canceled, quitting")
141+
break
142+
}
143+
140144
if stats.FailedBuilds == 0 {
141145
logger.Info(ctx, "no failed workspace builds found for template", slog.F("template_id", stats.TemplateID), slog.Error(err))
142146
continue
@@ -167,6 +171,11 @@ func reportFailedWorkspaceBuilds(ctx context.Context, logger slog.Logger, db dat
167171
}
168172

169173
for _, templateAdmin := range templateAdmins {
174+
if ctx.Err() == context.Canceled {
175+
logger.Debug(ctx, "context is canceled, quitting")
176+
break
177+
}
178+
170179
if _, err := enqueuer.EnqueueWithData(ctx, templateAdmin.ID, notifications.TemplateWorkspaceBuildsFailedReport,
171180
map[string]string{
172181
"template_name": stats.TemplateName,
@@ -181,6 +190,11 @@ func reportFailedWorkspaceBuilds(ctx context.Context, logger slog.Logger, db dat
181190
}
182191
}
183192

193+
if ctx.Err() == context.Canceled {
194+
logger.Error(ctx, "report generator job is canceled")
195+
return ctx.Err()
196+
}
197+
184198
// Lastly, update the timestamp in the generator log.
185199
err = db.UpsertNotificationReportGeneratorLog(ctx, database.UpsertNotificationReportGeneratorLogParams{
186200
NotificationTemplateID: notifications.TemplateWorkspaceBuildsFailedReport,
@@ -193,14 +207,6 @@ func reportFailedWorkspaceBuilds(ctx context.Context, logger slog.Logger, db dat
193207
}
194208

195209
func buildDataForReportFailedWorkspaceBuilds(stats database.GetWorkspaceBuildStatsByTemplatesRow, failedBuilds []database.GetFailedWorkspaceBuildsByTemplateIDRow) map[string]any {
196-
// Sorting order: template_version_name ASC, workspace build number DESC
197-
sort.Slice(failedBuilds, func(i, j int) bool {
198-
if failedBuilds[i].TemplateVersionName != failedBuilds[j].TemplateVersionName {
199-
return failedBuilds[i].TemplateVersionName < failedBuilds[j].TemplateVersionName
200-
}
201-
return failedBuilds[i].WorkspaceBuildNumber > failedBuilds[j].WorkspaceBuildNumber
202-
})
203-
204210
// Build notification model for template versions and failed workspace builds.
205211
//
206212
// Failed builds are sorted by template version ascending, workspace build number descending.

0 commit comments

Comments
 (0)