Change the provider separator from . to @

This commit is contained in:
Ludovic Fernandez 2019-06-20 00:40:05 +02:00 committed by Traefiker Bot
parent 4012599264
commit e9792b446f
34 changed files with 465 additions and 465 deletions

View file

@ -41,13 +41,13 @@ func TestAggregator(t *testing.T) {
},
expected: &config.HTTPConfiguration{
Routers: map[string]*config.Router{
"provider-1.router-1": {},
"provider-1@router-1": {},
},
Middlewares: map[string]*config.Middleware{
"provider-1.middleware-1": {},
"provider-1@middleware-1": {},
},
Services: map[string]*config.Service{
"provider-1.service-1": {},
"provider-1@service-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": {},
"provider-1@router-1": {},
"provider-2@router-1": {},
},
Middlewares: map[string]*config.Middleware{
"provider-1.middleware-1": {},
"provider-2.middleware-1": {},
"provider-1@middleware-1": {},
"provider-2@middleware-1": {},
},
Services: map[string]*config.Service{
"provider-1.service-1": {},
"provider-2.service-1": {},
"provider-1@service-1": {},
"provider-2@service-1": {},
},
},
},

View file

@ -15,7 +15,7 @@ const (
// AddProviderInContext Adds the provider name in the context
func AddProviderInContext(ctx context.Context, elementName string) context.Context {
parts := strings.Split(elementName, ".")
parts := strings.Split(elementName, "@")
if len(parts) == 1 {
log.FromContext(ctx).Debugf("Could not find a provider for %s.", elementName)
return ctx
@ -30,7 +30,7 @@ func AddProviderInContext(ctx context.Context, elementName string) context.Conte
// GetQualifiedName Gets the fully qualified name.
func GetQualifiedName(ctx context.Context, elementName string) string {
parts := strings.Split(elementName, ".")
parts := strings.Split(elementName, "@")
if len(parts) == 1 {
if providerName, ok := ctx.Value(providerKey).(string); ok {
return MakeQualifiedName(providerName, parts[0])
@ -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 providerName + "@" + elementName
}

View file

@ -77,7 +77,7 @@ func TestBuilder_BuildChainWithContext(t *testing.T) {
desc: "Should prefix the middlewareName with the provider in the context",
buildChain: []string{"middleware-1"},
configuration: map[string]*config.Middleware{
"provider-1.middleware-1": {
"provider-1@middleware-1": {
Headers: &config.Headers{
CustomRequestHeaders: map[string]string{"provider-1.middleware-1": "value-middleware-1"},
},
@ -88,9 +88,9 @@ func TestBuilder_BuildChainWithContext(t *testing.T) {
},
{
desc: "Should not prefix a qualified middlewareName with the provider in the context",
buildChain: []string{"provider-1.middleware-1"},
buildChain: []string{"provider-1@middleware-1"},
configuration: map[string]*config.Middleware{
"provider-1.middleware-1": {
"provider-1@middleware-1": {
Headers: &config.Headers{
CustomRequestHeaders: map[string]string{"provider-1.middleware-1": "value-middleware-1"},
},
@ -101,14 +101,14 @@ func TestBuilder_BuildChainWithContext(t *testing.T) {
},
{
desc: "Should be context aware if a chain references another middleware",
buildChain: []string{"provider-1.middleware-chain-1"},
buildChain: []string{"provider-1@middleware-chain-1"},
configuration: map[string]*config.Middleware{
"provider-1.middleware-1": {
"provider-1@middleware-1": {
Headers: &config.Headers{
CustomRequestHeaders: map[string]string{"middleware-1": "value-middleware-1"},
},
},
"provider-1.middleware-chain-1": {
"provider-1@middleware-chain-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{"provider-1@middleware-chain-1", "middleware-chain-1"},
configuration: map[string]*config.Middleware{
"provider-1.middleware-1": {
"provider-1@middleware-1": {
Headers: &config.Headers{
CustomRequestHeaders: map[string]string{"middleware-1": "value-middleware-1"},
},
},
"provider-1.middleware-2": {
"provider-1@middleware-2": {
Headers: &config.Headers{
CustomRequestHeaders: map[string]string{"middleware-2": "value-middleware-2"},
},
},
"provider-1.middleware-chain-1": {
"provider-1@middleware-chain-1": {
Chain: &config.Chain{
Middlewares: []string{"middleware-1"},
},
},
"provider-1.middleware-chain-2": {
"provider-1@middleware-chain-2": {
Chain: &config.Chain{
Middlewares: []string{"middleware-2"},
},
},
"provider-2.middleware-chain-1": {
"provider-2@middleware-chain-1": {
Chain: &config.Chain{
Middlewares: []string{"provider-1.middleware-2", "provider-1.middleware-chain-2"},
Middlewares: []string{"provider-1@middleware-2", "provider-1@middleware-chain-2"},
},
},
},
@ -176,28 +176,28 @@ func TestBuilder_BuildChainWithContext(t *testing.T) {
},
{
desc: "Detects recursion in Middleware chain",
buildChain: []string{"provider.m1"},
buildChain: []string{"provider@m1"},
configuration: map[string]*config.Middleware{
"provider2.ok": {
"provider2@ok": {
Retry: &config.Retry{},
},
"provider.m1": {
"provider@m1": {
Chain: &config.Chain{
Middlewares: []string{"provider2.m2"},
Middlewares: []string{"provider2@m2"},
},
},
"provider2.m2": {
"provider2@m2": {
Chain: &config.Chain{
Middlewares: []string{"ok", "provider.m3"},
Middlewares: []string{"ok", "provider@m3"},
},
},
"provider.m3": {
"provider@m3": {
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 provider@m1: recursion detected in provider@m1->provider2@m2->provider@m3->provider@m1"),
},
{
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, test.contextProvider+"@foobar")
}
rtConf := config.NewRuntimeConfig(config.Configuration{

View file

@ -204,14 +204,14 @@ func TestRouterManager_Get(t *testing.T) {
{
desc: "no middleware with provider name",
routersConfig: map[string]*config.Router{
"provider-1.foo": {
"provider-1@foo": {
EntryPoints: []string{"web"},
Service: "foo-service",
Rule: "Host(`foo.bar`)",
},
},
serviceConfig: map[string]*config.Service{
"provider-1.foo-service": {
"provider-1@foo-service": {
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": {
"provider-1@foo": {
EntryPoints: []string{"web"},
Service: "provider-2.foo-service",
Service: "provider-2@foo-service",
Rule: "Host(`foo.bar`)",
},
},
serviceConfig: map[string]*config.Service{
"provider-2.foo-service": {
"provider-2@foo-service": {
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": {
"provider-1@foo": {
EntryPoints: []string{"web"},
Middlewares: []string{"provider-2.chain-middle", "headers-middle"},
Middlewares: []string{"provider-2@chain-middle", "headers-middle"},
Service: "foo-service",
Rule: "Host(`foo.bar`)",
},
},
serviceConfig: map[string]*config.Service{
"provider-1.foo-service": {
"provider-1@foo-service": {
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": {
"provider-2@chain-middle": {
Chain: &config.Chain{Middlewares: []string{"auth-middle"}},
},
"provider-2.auth-middle": {
"provider-2@auth-middle": {
BasicAuth: &config.BasicAuth{
Users: []string{"toto:titi"},
},
},
"provider-1.headers-middle": {
"provider-1@headers-middle": {
Headers: &config.Headers{
CustomRequestHeaders: map[string]string{"X-Apero": "beer"},
},

View file

@ -303,9 +303,9 @@ func TestManager_Build(t *testing.T) {
},
{
desc: "Service name with provider",
serviceName: "provider-1.serviceName",
serviceName: "provider-1@serviceName",
configs: map[string]*config.ServiceInfo{
"provider-1.serviceName": {
"provider-1@serviceName": {
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": {
"provider-1@serviceName": {
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, test.providerName+"@foobar")
}
_, err := manager.BuildHTTP(ctx, test.serviceName, nil)

View file

@ -77,9 +77,9 @@ func TestManager_BuildTCP(t *testing.T) {
},
{
desc: "Service name with provider",
serviceName: "provider-1.serviceName",
serviceName: "provider-1@serviceName",
configs: map[string]*config.TCPServiceInfo{
"provider-1.serviceName": {
"provider-1@serviceName": {
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": {
"provider-1@serviceName": {
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": {
"provider-1@serviceName": {
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": {
"provider-1@serviceName": {
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": {
"provider-1@serviceName": {
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": {
"provider-1@serviceName": {
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, test.providerName+"@foobar")
}
handler, err := manager.BuildTCP(ctx, test.serviceName)