set the Limits. Can return backend.ErrVersionDoesNotMatch, validationError
(ctx context.Context, userID string, limits *client.Limits, version backend.Version, skipConflictingOverridesCheck bool)
| 84 | |
| 85 | // set the Limits. Can return backend.ErrVersionDoesNotMatch, validationError |
| 86 | func (a *UserConfigOverridesAPI) set(ctx context.Context, userID string, limits *client.Limits, version backend.Version, skipConflictingOverridesCheck bool) (backend.Version, error) { |
| 87 | ctx, span := tracer.Start(ctx, "UserConfigOverridesAPI.set", trace.WithAttributes( |
| 88 | attribute.String("userID", userID), |
| 89 | attribute.String("version", string(version)), |
| 90 | attribute.String("limits", logLimits(limits)), |
| 91 | )) |
| 92 | defer span.End() |
| 93 | traceID, _ := tracing.ExtractTraceID(ctx) |
| 94 | |
| 95 | err := a.validator.Validate(limits) |
| 96 | if err != nil { |
| 97 | return "", newValidationError(err) |
| 98 | } |
| 99 | |
| 100 | if a.cfg.CheckForConflictingRuntimeOverrides && !skipConflictingOverridesCheck { |
| 101 | err = a.assertNoConflictingRuntimeOverrides(ctx, userID) |
| 102 | if err != nil { |
| 103 | return "", err |
| 104 | } |
| 105 | } |
| 106 | |
| 107 | level.Info(a.logger).Log("traceID", traceID, "msg", "storing user-configurable overrides", "userID", userID, "limits", logLimits(limits), "version", version) |
| 108 | |
| 109 | newVersion, err := a.client.Set(ctx, userID, limits, version) |
| 110 | |
| 111 | level.Info(a.logger).Log("traceID", traceID, "msg", "stored user-configurable overrides", "userID", userID, "limits", logLimits(limits), "version", version, "newVersion", newVersion, "err", err) |
| 112 | return newVersion, err |
| 113 | } |
| 114 | |
| 115 | func (a *UserConfigOverridesAPI) update(ctx context.Context, userID string, patch []byte, skipConflictingOverridesCheck bool) (*client.Limits, backend.Version, error) { |
| 116 | ctx, span := tracer.Start(ctx, "UserConfigOverridesAPI.update", trace.WithAttributes( |