diff --git a/enterprise/coderd/prebuilds/reconcile.go b/enterprise/coderd/prebuilds/reconcile.go index 8240ac78a58bc..343a639845f44 100644 --- a/enterprise/coderd/prebuilds/reconcile.go +++ b/enterprise/coderd/prebuilds/reconcile.go @@ -427,7 +427,6 @@ func (c *StoreReconciler) ReconcilePreset(ctx context.Context, ps prebuilds.Pres // If the preset reached the hard failure limit for the first time during this iteration: // - Mark it as hard-limited in the database - // - Send notifications to template admins // - Continue execution, we disallow only creation operation for hard-limited presets. Deletion is allowed. if ps.Preset.PrebuildStatus != database.PrebuildStatusHardLimited && ps.IsHardLimited { logger.Warn(ctx, "preset is hard limited, notifying template admins") @@ -439,11 +438,6 @@ func (c *StoreReconciler) ReconcilePreset(ctx context.Context, ps prebuilds.Pres if err != nil { return xerrors.Errorf("failed to update preset prebuild status: %w", err) } - - err = c.notifyPrebuildFailureLimitReached(ctx, ps) - if err != nil { - logger.Error(ctx, "failed to notify that number of prebuild failures reached the limit", slog.Error(err)) - } } state := ps.CalculateState() @@ -474,49 +468,6 @@ func (c *StoreReconciler) ReconcilePreset(ctx context.Context, ps prebuilds.Pres return multiErr.ErrorOrNil() } -func (c *StoreReconciler) notifyPrebuildFailureLimitReached(ctx context.Context, ps prebuilds.PresetSnapshot) error { - // nolint:gocritic // Necessary to query all the required data. - ctx = dbauthz.AsSystemRestricted(ctx) - - // Send notification to template admins. - if c.notifEnq == nil { - c.logger.Warn(ctx, "notification enqueuer not set, cannot send prebuild is hard limited notification(s)") - return nil - } - - templateAdmins, err := c.store.GetUsers(ctx, database.GetUsersParams{ - RbacRole: []string{codersdk.RoleTemplateAdmin}, - }) - if err != nil { - return xerrors.Errorf("fetch template admins: %w", err) - } - - for _, templateAdmin := range templateAdmins { - if _, err := c.notifEnq.EnqueueWithData(ctx, templateAdmin.ID, notifications.PrebuildFailureLimitReached, - map[string]string{ - "org": ps.Preset.OrganizationName, - "template": ps.Preset.TemplateName, - "template_version": ps.Preset.TemplateVersionName, - "preset": ps.Preset.Name, - }, - map[string]any{}, - "prebuilds_reconciler", - // Associate this notification with all the related entities. - ps.Preset.TemplateID, ps.Preset.TemplateVersionID, ps.Preset.ID, ps.Preset.OrganizationID, - ); err != nil { - c.logger.Error(ctx, - "failed to send notification", - slog.Error(err), - slog.F("template_admin_id", templateAdmin.ID.String()), - ) - - continue - } - } - - return nil -} - func (c *StoreReconciler) CalculateActions(ctx context.Context, snapshot prebuilds.PresetSnapshot) ([]*prebuilds.ReconciliationActions, error) { if ctx.Err() != nil { return nil, ctx.Err() diff --git a/enterprise/coderd/prebuilds/reconcile_test.go b/enterprise/coderd/prebuilds/reconcile_test.go index 8524786dec404..44ecf168a03ca 100644 --- a/enterprise/coderd/prebuilds/reconcile_test.go +++ b/enterprise/coderd/prebuilds/reconcile_test.go @@ -853,11 +853,6 @@ func TestSkippingHardLimitedPresets(t *testing.T) { cache := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{}) controller := prebuilds.NewStoreReconciler(db, pubSub, cache, cfg, logger, clock, registry, fakeEnqueuer) - // Template admin to receive a notification. - templateAdmin := dbgen.User(t, db, database.User{ - RBACRoles: []string{codersdk.RoleTemplateAdmin}, - }) - // Set up test environment with a template, version, and preset. ownerID := uuid.New() dbgen.User(t, db, database.User{ @@ -938,20 +933,6 @@ func TestSkippingHardLimitedPresets(t *testing.T) { require.Equal(t, 1, len(workspaces)) require.Equal(t, database.PrebuildStatusHardLimited, updatedPreset.PrebuildStatus) - // When hard limit is reached, a notification should be sent. - matching := fakeEnqueuer.Sent(func(notification *notificationstest.FakeNotification) bool { - if !assert.Equal(t, notifications.PrebuildFailureLimitReached, notification.TemplateID, "unexpected template") { - return false - } - - if !assert.Equal(t, templateAdmin.ID, notification.UserID, "unexpected receiver") { - return false - } - - return true - }) - require.Len(t, matching, 1) - // When hard limit is reached, metric is set to 1. mf, err = registry.Gather() require.NoError(t, err) @@ -1016,11 +997,6 @@ func TestHardLimitedPresetShouldNotBlockDeletion(t *testing.T) { cache := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{}) controller := prebuilds.NewStoreReconciler(db, pubSub, cache, cfg, logger, clock, registry, fakeEnqueuer) - // Template admin to receive a notification. - templateAdmin := dbgen.User(t, db, database.User{ - RBACRoles: []string{codersdk.RoleTemplateAdmin}, - }) - // Set up test environment with a template, version, and preset. ownerID := uuid.New() dbgen.User(t, db, database.User{ @@ -1125,20 +1101,6 @@ func TestHardLimitedPresetShouldNotBlockDeletion(t *testing.T) { require.NoError(t, err) require.Equal(t, database.PrebuildStatusHardLimited, updatedPreset.PrebuildStatus) - // When hard limit is reached, a notification should be sent. - matching := fakeEnqueuer.Sent(func(notification *notificationstest.FakeNotification) bool { - if !assert.Equal(t, notifications.PrebuildFailureLimitReached, notification.TemplateID, "unexpected template") { - return false - } - - if !assert.Equal(t, templateAdmin.ID, notification.UserID, "unexpected receiver") { - return false - } - - return true - }) - require.Len(t, matching, 1) - // When hard limit is reached, metric is set to 1. mf, err = registry.Gather() require.NoError(t, err)
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: