Move Request Limiter to enterprise (#25615)

This commit is contained in:
Mike Palmiotto
2024-02-27 16:24:06 -05:00
committed by GitHub
parent df57ff46ff
commit b54ac98a0b
23 changed files with 116 additions and 997 deletions

View File

@@ -55,8 +55,6 @@ type SharedConfig struct {
ClusterName string `hcl:"cluster_name"`
AdministrativeNamespacePath string `hcl:"administrative_namespace_path"`
RequestLimiter *RequestLimiter `hcl:"request_limiter"`
}
func ParseConfig(d string) (*SharedConfig, error) {
@@ -158,13 +156,6 @@ func ParseConfig(d string) (*SharedConfig, error) {
}
}
if o := list.Filter("request_limiter"); len(o.Items) > 0 {
result.found("request_limiter", "RequestLimiter")
if err := parseRequestLimiter(&result, o); err != nil {
return nil, fmt.Errorf("error parsing 'request_limiter': %w", err)
}
}
entConfig := &(result.EntSharedConfig)
if err := entConfig.ParseConfig(list); err != nil {
return nil, fmt.Errorf("error parsing enterprise config: %w", err)
@@ -293,13 +284,6 @@ func (c *SharedConfig) Sanitized() map[string]interface{} {
result["telemetry"] = sanitizedTelemetry
}
if c.RequestLimiter != nil {
sanitizedRequestLimiter := map[string]interface{}{
"disable": c.RequestLimiter.Disable,
}
result["request_limiter"] = sanitizedRequestLimiter
}
return result
}

View File

@@ -98,10 +98,5 @@ func (c *SharedConfig) Merge(c2 *SharedConfig) *SharedConfig {
result.ClusterName = c2.ClusterName
}
result.RequestLimiter = c.RequestLimiter
if c2.RequestLimiter != nil {
result.RequestLimiter = c2.RequestLimiter
}
return result
}

View File

@@ -1,58 +0,0 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package configutil
import (
"fmt"
"github.com/hashicorp/go-multierror"
"github.com/hashicorp/go-secure-stdlib/parseutil"
"github.com/hashicorp/hcl"
"github.com/hashicorp/hcl/hcl/ast"
)
type RequestLimiter struct {
UnusedKeys UnusedKeyMap `hcl:",unusedKeyPositions"`
Disable bool `hcl:"-"`
DisableRaw interface{} `hcl:"disable"`
}
func (r *RequestLimiter) Validate(source string) []ConfigError {
return ValidateUnusedFields(r.UnusedKeys, source)
}
func (r *RequestLimiter) GoString() string {
return fmt.Sprintf("*%#v", *r)
}
var DefaultRequestLimiter = &RequestLimiter{
Disable: true,
}
func parseRequestLimiter(result *SharedConfig, list *ast.ObjectList) error {
if len(list.Items) > 1 {
return fmt.Errorf("only one 'request_limiter' block is permitted")
}
result.RequestLimiter = DefaultRequestLimiter
// Get our one item
item := list.Items[0]
if err := hcl.DecodeObject(&result.RequestLimiter, item.Val); err != nil {
return multierror.Prefix(err, "request_limiter:")
}
result.RequestLimiter.Disable = true
if result.RequestLimiter.DisableRaw != nil {
var err error
if result.RequestLimiter.Disable, err = parseutil.ParseBool(result.RequestLimiter.DisableRaw); err != nil {
return err
}
result.RequestLimiter.DisableRaw = nil
}
return nil
}