Skip to content

Commit 36ec6c7

Browse files
committed
Get only active configs for ruler
1 parent 9fbbd67 commit 36ec6c7

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

pkg/configs/api/api.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,11 @@ func (a *API) deactivateConfig(w http.ResponseWriter, r *http.Request) {
229229
logger := util.WithContext(r.Context(), util.Logger)
230230

231231
if err := a.db.DeactivateConfig(userID); err != nil {
232+
if err == sql.ErrNoRows {
233+
level.Info(logger).Log("msg", "config deactivated, no configuration", "userID", userID)
234+
http.Error(w, "No configuration", http.StatusNotFound)
235+
return
236+
}
232237
level.Error(logger).Log("msg", "error deactivating config", "err", err)
233238
http.Error(w, err.Error(), http.StatusInternalServerError)
234239
return
@@ -246,10 +251,15 @@ func (a *API) restoreConfig(w http.ResponseWriter, r *http.Request) {
246251
logger := util.WithContext(r.Context(), util.Logger)
247252

248253
if err := a.db.RestoreConfig(userID); err != nil {
254+
if err == sql.ErrNoRows {
255+
level.Info(logger).Log("msg", "restore config - no configuration", "userID", userID)
256+
http.Error(w, "No configuration", http.StatusNotFound)
257+
return
258+
}
249259
level.Error(logger).Log("msg", "error restoring config", "err", err)
250260
http.Error(w, err.Error(), http.StatusInternalServerError)
251261
return
252262
}
253263
level.Info(logger).Log("msg", "config restored", "userID", userID)
254-
w.WriteHeader(http.StatusCreated)
264+
w.WriteHeader(http.StatusOK)
255265
}

pkg/configs/configs.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ func (v View) GetVersionedRulesConfig() *VersionedRulesConfig {
3838
return nil
3939
}
4040
return &VersionedRulesConfig{
41-
ID: v.ID,
42-
Config: v.Config.RulesFiles,
41+
ID: v.ID,
42+
Config: v.Config.RulesFiles,
43+
DeletedAt: v.DeletedAt,
4344
}
4445
}
4546

@@ -95,6 +96,7 @@ func (c RulesConfig) Parse() ([]rules.Rule, error) {
9596
// VersionedRulesConfig is a RulesConfig together with a version.
9697
// `data Versioned a = Versioned { id :: ID , config :: a }`
9798
type VersionedRulesConfig struct {
98-
ID ID `json:"id"`
99-
Config RulesConfig `json:"config"`
99+
ID ID `json:"id"`
100+
Config RulesConfig `json:"config"`
101+
DeletedAt time.Time `json:"deleted_at"`
100102
}

pkg/ruler/scheduler.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,14 @@ func (s *scheduler) addNewConfigs(now time.Time, cfgs map[string]configs.Version
192192
level.Warn(util.Logger).Log("msg", "scheduler: invalid Cortex configuration", "user_id", userID, "err", err)
193193
continue
194194
}
195-
196195
level.Info(util.Logger).Log("msg", "scheduler: updating rules for user", "user_id", userID, "num_rules", len(rules))
197196
s.Lock()
198-
s.cfgs[userID] = rules
197+
// if deleted remove from map
198+
if !config.DeletedAt.IsZero() {
199+
delete(s.cfgs, userID)
200+
} else {
201+
s.cfgs[userID] = rules
202+
}
199203
s.Unlock()
200204
s.addWorkItem(workItem{userID, rules, now})
201205
}

0 commit comments

Comments
 (0)