mirror of https://github.com/status-im/consul.git
parent
2cc2c6b88d
commit
82993fcc4f
|
@ -32,12 +32,14 @@ var extensionConstructors = map[string]extensionConstructor{
|
|||
// given config. Returns an error if the extension does not exist, or if the extension fails
|
||||
// to be constructed properly.
|
||||
func ConstructExtension(ext api.EnvoyExtension) (extensioncommon.EnvoyExtender, error) {
|
||||
constructor, ok := extensionConstructors[ext.Name]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("name %q is not a built-in extension", ext.Name)
|
||||
}
|
||||
if constructor, ok := extensionConstructors[ext.Name]; ok {
|
||||
return constructor(ext)
|
||||
}
|
||||
if constructor, ok := enterpriseExtensionConstructors[ext.Name]; ok {
|
||||
return constructor(ext)
|
||||
}
|
||||
return nil, fmt.Errorf("name %q is not a built-in extension", ext.Name)
|
||||
}
|
||||
|
||||
// ValidateExtensions will attempt to construct each instance of the given envoy extension configurations
|
||||
// and returns an error if any fail to build. Note that this step is separated from the xds package and
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
// Copyright (c) HashiCorp, Inc.
|
||||
// SPDX-License-Identifier: BUSL-1.1
|
||||
|
||||
//go:build !consulent
|
||||
|
||||
package envoyextensions
|
||||
|
||||
var enterpriseExtensionConstructors = map[string]extensionConstructor{}
|
|
@ -411,8 +411,8 @@ func getSNI(chain *envoy_listener_v3.FilterChain) string {
|
|||
}
|
||||
|
||||
// GetHTTPConnectionManager returns the Envoy HttpConnectionManager filter from the list of network filters.
|
||||
// It also returns the index within the list of filters where the connection manager was found in case the caller
|
||||
// needs this information.
|
||||
// It also returns the index within the list of filters where the connection manager was found in case the
|
||||
// caller needs to overwrite the original filter.
|
||||
// It returns a non-nil error if the HttpConnectionManager is not found.
|
||||
func GetHTTPConnectionManager(filters ...*envoy_listener_v3.Filter) (*envoy_http_v3.HttpConnectionManager, int, error) {
|
||||
for idx, filter := range filters {
|
||||
|
@ -491,9 +491,11 @@ func InsertHTTPFilter(filters []*envoy_listener_v3.Filter, filter *envoy_http_v3
|
|||
if err != nil {
|
||||
return filters, errors.New("failed to insert new HTTP connection manager filter")
|
||||
}
|
||||
filters[idx] = newHttpConMan
|
||||
filtersCopy := make([]*envoy_listener_v3.Filter, len(filters))
|
||||
copy(filtersCopy, filters)
|
||||
filtersCopy[idx] = newHttpConMan
|
||||
|
||||
return filters, nil
|
||||
return filtersCopy, nil
|
||||
}
|
||||
|
||||
// InsertNetworkFilter inserts the given network filter into the filter chain in the location
|
||||
|
|
|
@ -13,12 +13,12 @@ type TestingT interface {
|
|||
Fatalf(string, ...any)
|
||||
}
|
||||
|
||||
func AssertDeepEqual(t TestingT, x, y interface{}, opts ...cmp.Option) {
|
||||
func AssertDeepEqual(t TestingT, exp, got interface{}, opts ...cmp.Option) {
|
||||
t.Helper()
|
||||
|
||||
opts = append(opts, protocmp.Transform())
|
||||
|
||||
if diff := cmp.Diff(x, y, opts...); diff != "" {
|
||||
if diff := cmp.Diff(exp, got, opts...); diff != "" {
|
||||
t.Fatalf("assertion failed: values are not equal\n--- expected\n+++ actual\n%v", diff)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue