Use name@provider instead of provider@name.
This commit is contained in:
parent
1e779f7135
commit
adc9a65ae3
35 changed files with 472 additions and 472 deletions
|
@ -41,13 +41,13 @@ func TestAggregator(t *testing.T) {
|
|||
},
|
||||
expected: &config.HTTPConfiguration{
|
||||
Routers: map[string]*config.Router{
|
||||
"provider-1@router-1": {},
|
||||
"router-1@provider-1": {},
|
||||
},
|
||||
Middlewares: map[string]*config.Middleware{
|
||||
"provider-1@middleware-1": {},
|
||||
"middleware-1@provider-1": {},
|
||||
},
|
||||
Services: map[string]*config.Service{
|
||||
"provider-1@service-1": {},
|
||||
"service-1@provider-1": {},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -83,16 +83,16 @@ func TestAggregator(t *testing.T) {
|
|||
},
|
||||
expected: &config.HTTPConfiguration{
|
||||
Routers: map[string]*config.Router{
|
||||
"provider-1@router-1": {},
|
||||
"provider-2@router-1": {},
|
||||
"router-1@provider-1": {},
|
||||
"router-1@provider-2": {},
|
||||
},
|
||||
Middlewares: map[string]*config.Middleware{
|
||||
"provider-1@middleware-1": {},
|
||||
"provider-2@middleware-1": {},
|
||||
"middleware-1@provider-1": {},
|
||||
"middleware-1@provider-2": {},
|
||||
},
|
||||
Services: map[string]*config.Service{
|
||||
"provider-1@service-1": {},
|
||||
"provider-2@service-1": {},
|
||||
"service-1@provider-1": {},
|
||||
"service-1@provider-2": {},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -21,11 +21,11 @@ func AddProviderInContext(ctx context.Context, elementName string) context.Conte
|
|||
return ctx
|
||||
}
|
||||
|
||||
if name, ok := ctx.Value(providerKey).(string); ok && name == parts[0] {
|
||||
if name, ok := ctx.Value(providerKey).(string); ok && name == parts[1] {
|
||||
return ctx
|
||||
}
|
||||
|
||||
return context.WithValue(ctx, providerKey, parts[0])
|
||||
return context.WithValue(ctx, providerKey, parts[1])
|
||||
}
|
||||
|
||||
// GetQualifiedName Gets the fully qualified name.
|
||||
|
@ -41,5 +41,5 @@ func GetQualifiedName(ctx context.Context, elementName string) string {
|
|||
|
||||
// MakeQualifiedName Creates a qualified name for an element
|
||||
func MakeQualifiedName(providerName string, elementName string) string {
|
||||
return providerName + "@" + elementName
|
||||
return elementName + "@" + providerName
|
||||
}
|
||||
|
|
|
@ -74,41 +74,41 @@ func TestBuilder_BuildChainWithContext(t *testing.T) {
|
|||
expected: map[string]string{"middleware-1": "value-middleware-1"},
|
||||
},
|
||||
{
|
||||
desc: "Should prefix the middlewareName with the provider in the context",
|
||||
desc: "Should suffix the middlewareName with the provider in the context",
|
||||
buildChain: []string{"middleware-1"},
|
||||
configuration: map[string]*config.Middleware{
|
||||
"provider-1@middleware-1": {
|
||||
"middleware-1@provider-1": {
|
||||
Headers: &config.Headers{
|
||||
CustomRequestHeaders: map[string]string{"provider-1.middleware-1": "value-middleware-1"},
|
||||
CustomRequestHeaders: map[string]string{"middleware-1@provider-1": "value-middleware-1"},
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: map[string]string{"provider-1.middleware-1": "value-middleware-1"},
|
||||
expected: map[string]string{"middleware-1@provider-1": "value-middleware-1"},
|
||||
contextProvider: "provider-1",
|
||||
},
|
||||
{
|
||||
desc: "Should not prefix a qualified middlewareName with the provider in the context",
|
||||
buildChain: []string{"provider-1@middleware-1"},
|
||||
desc: "Should not suffix a qualified middlewareName with the provider in the context",
|
||||
buildChain: []string{"middleware-1@provider-1"},
|
||||
configuration: map[string]*config.Middleware{
|
||||
"provider-1@middleware-1": {
|
||||
"middleware-1@provider-1": {
|
||||
Headers: &config.Headers{
|
||||
CustomRequestHeaders: map[string]string{"provider-1.middleware-1": "value-middleware-1"},
|
||||
CustomRequestHeaders: map[string]string{"middleware-1@provider-1": "value-middleware-1"},
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: map[string]string{"provider-1.middleware-1": "value-middleware-1"},
|
||||
expected: map[string]string{"middleware-1@provider-1": "value-middleware-1"},
|
||||
contextProvider: "provider-1",
|
||||
},
|
||||
{
|
||||
desc: "Should be context aware if a chain references another middleware",
|
||||
buildChain: []string{"provider-1@middleware-chain-1"},
|
||||
buildChain: []string{"middleware-chain-1@provider-1"},
|
||||
configuration: map[string]*config.Middleware{
|
||||
"provider-1@middleware-1": {
|
||||
"middleware-1@provider-1": {
|
||||
Headers: &config.Headers{
|
||||
CustomRequestHeaders: map[string]string{"middleware-1": "value-middleware-1"},
|
||||
},
|
||||
},
|
||||
"provider-1@middleware-chain-1": {
|
||||
"middleware-chain-1@provider-1": {
|
||||
Chain: &config.Chain{
|
||||
Middlewares: []string{"middleware-1"},
|
||||
},
|
||||
|
@ -118,31 +118,31 @@ func TestBuilder_BuildChainWithContext(t *testing.T) {
|
|||
},
|
||||
{
|
||||
desc: "Should handle nested chains with different context",
|
||||
buildChain: []string{"provider-1@middleware-chain-1", "middleware-chain-1"},
|
||||
buildChain: []string{"middleware-chain-1@provider-1", "middleware-chain-1"},
|
||||
configuration: map[string]*config.Middleware{
|
||||
"provider-1@middleware-1": {
|
||||
"middleware-1@provider-1": {
|
||||
Headers: &config.Headers{
|
||||
CustomRequestHeaders: map[string]string{"middleware-1": "value-middleware-1"},
|
||||
},
|
||||
},
|
||||
"provider-1@middleware-2": {
|
||||
"middleware-2@provider-1": {
|
||||
Headers: &config.Headers{
|
||||
CustomRequestHeaders: map[string]string{"middleware-2": "value-middleware-2"},
|
||||
},
|
||||
},
|
||||
"provider-1@middleware-chain-1": {
|
||||
"middleware-chain-1@provider-1": {
|
||||
Chain: &config.Chain{
|
||||
Middlewares: []string{"middleware-1"},
|
||||
},
|
||||
},
|
||||
"provider-1@middleware-chain-2": {
|
||||
"middleware-chain-2@provider-1": {
|
||||
Chain: &config.Chain{
|
||||
Middlewares: []string{"middleware-2"},
|
||||
},
|
||||
},
|
||||
"provider-2@middleware-chain-1": {
|
||||
"middleware-chain-1@provider-2": {
|
||||
Chain: &config.Chain{
|
||||
Middlewares: []string{"provider-1@middleware-2", "provider-1@middleware-chain-2"},
|
||||
Middlewares: []string{"middleware-2@provider-1", "middleware-chain-2@provider-1"},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -176,28 +176,28 @@ func TestBuilder_BuildChainWithContext(t *testing.T) {
|
|||
},
|
||||
{
|
||||
desc: "Detects recursion in Middleware chain",
|
||||
buildChain: []string{"provider@m1"},
|
||||
buildChain: []string{"m1@provider"},
|
||||
configuration: map[string]*config.Middleware{
|
||||
"provider2@ok": {
|
||||
"ok@provider2": {
|
||||
Retry: &config.Retry{},
|
||||
},
|
||||
"provider@m1": {
|
||||
"m1@provider": {
|
||||
Chain: &config.Chain{
|
||||
Middlewares: []string{"provider2@m2"},
|
||||
Middlewares: []string{"m2@provider2"},
|
||||
},
|
||||
},
|
||||
"provider2@m2": {
|
||||
"m2@provider2": {
|
||||
Chain: &config.Chain{
|
||||
Middlewares: []string{"ok", "provider@m3"},
|
||||
Middlewares: []string{"ok", "m3@provider"},
|
||||
},
|
||||
},
|
||||
"provider@m3": {
|
||||
"m3@provider": {
|
||||
Chain: &config.Chain{
|
||||
Middlewares: []string{"m1"},
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedError: errors.New("could not instantiate middleware provider@m1: recursion detected in provider@m1->provider2@m2->provider@m3->provider@m1"),
|
||||
expectedError: errors.New("could not instantiate middleware m1@provider: recursion detected in m1@provider->m2@provider2->m3@provider->m1@provider"),
|
||||
},
|
||||
{
|
||||
buildChain: []string{"ok", "m0"},
|
||||
|
@ -261,7 +261,7 @@ func TestBuilder_BuildChainWithContext(t *testing.T) {
|
|||
|
||||
ctx := context.Background()
|
||||
if len(test.contextProvider) > 0 {
|
||||
ctx = internal.AddProviderInContext(ctx, test.contextProvider+"@foobar")
|
||||
ctx = internal.AddProviderInContext(ctx, "foobar@"+test.contextProvider)
|
||||
}
|
||||
|
||||
rtConf := config.NewRuntimeConfig(config.Configuration{
|
||||
|
|
|
@ -204,14 +204,14 @@ func TestRouterManager_Get(t *testing.T) {
|
|||
{
|
||||
desc: "no middleware with provider name",
|
||||
routersConfig: map[string]*config.Router{
|
||||
"provider-1@foo": {
|
||||
"foo@provider-1": {
|
||||
EntryPoints: []string{"web"},
|
||||
Service: "foo-service",
|
||||
Rule: "Host(`foo.bar`)",
|
||||
},
|
||||
},
|
||||
serviceConfig: map[string]*config.Service{
|
||||
"provider-1@foo-service": {
|
||||
"foo-service@provider-1": {
|
||||
LoadBalancer: &config.LoadBalancerService{
|
||||
Servers: []config.Server{
|
||||
{
|
||||
|
@ -227,14 +227,14 @@ func TestRouterManager_Get(t *testing.T) {
|
|||
{
|
||||
desc: "no middleware with specified provider name",
|
||||
routersConfig: map[string]*config.Router{
|
||||
"provider-1@foo": {
|
||||
"foo@provider-1": {
|
||||
EntryPoints: []string{"web"},
|
||||
Service: "provider-2@foo-service",
|
||||
Service: "foo-service@provider-2",
|
||||
Rule: "Host(`foo.bar`)",
|
||||
},
|
||||
},
|
||||
serviceConfig: map[string]*config.Service{
|
||||
"provider-2@foo-service": {
|
||||
"foo-service@provider-2": {
|
||||
LoadBalancer: &config.LoadBalancerService{
|
||||
Servers: []config.Server{
|
||||
{
|
||||
|
@ -250,15 +250,15 @@ func TestRouterManager_Get(t *testing.T) {
|
|||
{
|
||||
desc: "middleware: chain with provider name",
|
||||
routersConfig: map[string]*config.Router{
|
||||
"provider-1@foo": {
|
||||
"foo@provider-1": {
|
||||
EntryPoints: []string{"web"},
|
||||
Middlewares: []string{"provider-2@chain-middle", "headers-middle"},
|
||||
Middlewares: []string{"chain-middle@provider-2", "headers-middle"},
|
||||
Service: "foo-service",
|
||||
Rule: "Host(`foo.bar`)",
|
||||
},
|
||||
},
|
||||
serviceConfig: map[string]*config.Service{
|
||||
"provider-1@foo-service": {
|
||||
"foo-service@provider-1": {
|
||||
LoadBalancer: &config.LoadBalancerService{
|
||||
Servers: []config.Server{
|
||||
{
|
||||
|
@ -269,15 +269,15 @@ func TestRouterManager_Get(t *testing.T) {
|
|||
},
|
||||
},
|
||||
middlewaresConfig: map[string]*config.Middleware{
|
||||
"provider-2@chain-middle": {
|
||||
"chain-middle@provider-2": {
|
||||
Chain: &config.Chain{Middlewares: []string{"auth-middle"}},
|
||||
},
|
||||
"provider-2@auth-middle": {
|
||||
"auth-middle@provider-2": {
|
||||
BasicAuth: &config.BasicAuth{
|
||||
Users: []string{"toto:titi"},
|
||||
},
|
||||
},
|
||||
"provider-1@headers-middle": {
|
||||
"headers-middle@provider-1": {
|
||||
Headers: &config.Headers{
|
||||
CustomRequestHeaders: map[string]string{"X-Apero": "beer"},
|
||||
},
|
||||
|
|
|
@ -303,9 +303,9 @@ func TestManager_Build(t *testing.T) {
|
|||
},
|
||||
{
|
||||
desc: "Service name with provider",
|
||||
serviceName: "provider-1@serviceName",
|
||||
serviceName: "serviceName@provider-1",
|
||||
configs: map[string]*config.ServiceInfo{
|
||||
"provider-1@serviceName": {
|
||||
"serviceName@provider-1": {
|
||||
Service: &config.Service{
|
||||
LoadBalancer: &config.LoadBalancerService{},
|
||||
},
|
||||
|
@ -316,7 +316,7 @@ func TestManager_Build(t *testing.T) {
|
|||
desc: "Service name with provider in context",
|
||||
serviceName: "serviceName",
|
||||
configs: map[string]*config.ServiceInfo{
|
||||
"provider-1@serviceName": {
|
||||
"serviceName@provider-1": {
|
||||
Service: &config.Service{
|
||||
LoadBalancer: &config.LoadBalancerService{},
|
||||
},
|
||||
|
@ -335,7 +335,7 @@ func TestManager_Build(t *testing.T) {
|
|||
|
||||
ctx := context.Background()
|
||||
if len(test.providerName) > 0 {
|
||||
ctx = internal.AddProviderInContext(ctx, test.providerName+"@foobar")
|
||||
ctx = internal.AddProviderInContext(ctx, "foobar@"+test.providerName)
|
||||
}
|
||||
|
||||
_, err := manager.BuildHTTP(ctx, test.serviceName, nil)
|
||||
|
|
|
@ -77,9 +77,9 @@ func TestManager_BuildTCP(t *testing.T) {
|
|||
},
|
||||
{
|
||||
desc: "Service name with provider",
|
||||
serviceName: "provider-1@serviceName",
|
||||
serviceName: "serviceName@provider-1",
|
||||
configs: map[string]*config.TCPServiceInfo{
|
||||
"provider-1@serviceName": {
|
||||
"serviceName@provider-1": {
|
||||
TCPService: &config.TCPService{
|
||||
LoadBalancer: &config.TCPLoadBalancerService{},
|
||||
},
|
||||
|
@ -90,7 +90,7 @@ func TestManager_BuildTCP(t *testing.T) {
|
|||
desc: "Service name with provider in context",
|
||||
serviceName: "serviceName",
|
||||
configs: map[string]*config.TCPServiceInfo{
|
||||
"provider-1@serviceName": {
|
||||
"serviceName@provider-1": {
|
||||
TCPService: &config.TCPService{
|
||||
LoadBalancer: &config.TCPLoadBalancerService{},
|
||||
},
|
||||
|
@ -102,7 +102,7 @@ func TestManager_BuildTCP(t *testing.T) {
|
|||
desc: "Server with correct host:port as address",
|
||||
serviceName: "serviceName",
|
||||
configs: map[string]*config.TCPServiceInfo{
|
||||
"provider-1@serviceName": {
|
||||
"serviceName@provider-1": {
|
||||
TCPService: &config.TCPService{
|
||||
LoadBalancer: &config.TCPLoadBalancerService{
|
||||
Servers: []config.TCPServer{
|
||||
|
@ -120,7 +120,7 @@ func TestManager_BuildTCP(t *testing.T) {
|
|||
desc: "Server with correct ip:port as address",
|
||||
serviceName: "serviceName",
|
||||
configs: map[string]*config.TCPServiceInfo{
|
||||
"provider-1@serviceName": {
|
||||
"serviceName@provider-1": {
|
||||
TCPService: &config.TCPService{
|
||||
LoadBalancer: &config.TCPLoadBalancerService{
|
||||
Servers: []config.TCPServer{
|
||||
|
@ -138,7 +138,7 @@ func TestManager_BuildTCP(t *testing.T) {
|
|||
desc: "missing port in address with hostname, server is skipped, error is logged",
|
||||
serviceName: "serviceName",
|
||||
configs: map[string]*config.TCPServiceInfo{
|
||||
"provider-1@serviceName": {
|
||||
"serviceName@provider-1": {
|
||||
TCPService: &config.TCPService{
|
||||
LoadBalancer: &config.TCPLoadBalancerService{
|
||||
Servers: []config.TCPServer{
|
||||
|
@ -156,7 +156,7 @@ func TestManager_BuildTCP(t *testing.T) {
|
|||
desc: "missing port in address with ip, server is skipped, error is logged",
|
||||
serviceName: "serviceName",
|
||||
configs: map[string]*config.TCPServiceInfo{
|
||||
"provider-1@serviceName": {
|
||||
"serviceName@provider-1": {
|
||||
TCPService: &config.TCPService{
|
||||
LoadBalancer: &config.TCPLoadBalancerService{
|
||||
Servers: []config.TCPServer{
|
||||
|
@ -183,7 +183,7 @@ func TestManager_BuildTCP(t *testing.T) {
|
|||
|
||||
ctx := context.Background()
|
||||
if len(test.providerName) > 0 {
|
||||
ctx = internal.AddProviderInContext(ctx, test.providerName+"@foobar")
|
||||
ctx = internal.AddProviderInContext(ctx, "foobar@"+test.providerName)
|
||||
}
|
||||
|
||||
handler, err := manager.BuildTCP(ctx, test.serviceName)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue