mirror of https://github.com/status-im/consul.git
parent
2cc2c6b88d
commit
82993fcc4f
|
@ -32,11 +32,13 @@ var extensionConstructors = map[string]extensionConstructor{
|
||||||
// given config. Returns an error if the extension does not exist, or if the extension fails
|
// given config. Returns an error if the extension does not exist, or if the extension fails
|
||||||
// to be constructed properly.
|
// to be constructed properly.
|
||||||
func ConstructExtension(ext api.EnvoyExtension) (extensioncommon.EnvoyExtender, error) {
|
func ConstructExtension(ext api.EnvoyExtension) (extensioncommon.EnvoyExtender, error) {
|
||||||
constructor, ok := extensionConstructors[ext.Name]
|
if constructor, ok := extensionConstructors[ext.Name]; ok {
|
||||||
if !ok {
|
return constructor(ext)
|
||||||
return nil, fmt.Errorf("name %q is not a built-in extension", ext.Name)
|
|
||||||
}
|
}
|
||||||
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
|
// ValidateExtensions will attempt to construct each instance of the given envoy extension configurations
|
||||||
|
|
|
@ -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.
|
// 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
|
// It also returns the index within the list of filters where the connection manager was found in case the
|
||||||
// needs this information.
|
// caller needs to overwrite the original filter.
|
||||||
// It returns a non-nil error if the HttpConnectionManager is not found.
|
// 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) {
|
func GetHTTPConnectionManager(filters ...*envoy_listener_v3.Filter) (*envoy_http_v3.HttpConnectionManager, int, error) {
|
||||||
for idx, filter := range filters {
|
for idx, filter := range filters {
|
||||||
|
@ -491,9 +491,11 @@ func InsertHTTPFilter(filters []*envoy_listener_v3.Filter, filter *envoy_http_v3
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return filters, errors.New("failed to insert new HTTP connection manager filter")
|
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
|
// InsertNetworkFilter inserts the given network filter into the filter chain in the location
|
||||||
|
|
|
@ -13,12 +13,12 @@ type TestingT interface {
|
||||||
Fatalf(string, ...any)
|
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()
|
t.Helper()
|
||||||
|
|
||||||
opts = append(opts, protocmp.Transform())
|
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)
|
t.Fatalf("assertion failed: values are not equal\n--- expected\n+++ actual\n%v", diff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue