Merge branch 'v1.4' into v1.5

This commit is contained in:
Fernandez Ludovic 2018-01-02 13:10:11 +01:00
commit 23c1a9ca8e
6 changed files with 49 additions and 15 deletions

View file

@ -1,5 +1,13 @@
# Change Log # Change Log
## [v1.4.6](https://github.com/containous/traefik/tree/v1.4.6) (2018-01-02)
[All Commits](https://github.com/containous/traefik/compare/v1.4.5...v1.4.6)
**Bug fixes:**
- **[docker]** Normalize serviceName added to the service backend names ([#2631](https://github.com/containous/traefik/pull/2631) by [mmatur](https://github.com/mmatur))
- **[websocket]** Use gorilla readMessage and writeMessage instead of just an io.Copy ([#2640](https://github.com/containous/traefik/pull/2640) by [Juliens](https://github.com/Juliens))
- Fix bug report command ([#2638](https://github.com/containous/traefik/pull/2638) by [ldez](https://github.com/ldez))
## [v1.5.0-rc3](https://github.com/containous/traefik/tree/v1.5.0-rc3) (2017-12-20) ## [v1.5.0-rc3](https://github.com/containous/traefik/tree/v1.5.0-rc3) (2017-12-20)
[All Commits](https://github.com/containous/traefik/compare/v1.5.0-rc2...v1.5.0-rc3) [All Commits](https://github.com/containous/traefik/compare/v1.5.0-rc2...v1.5.0-rc3)

View file

@ -84,7 +84,7 @@ Add more configuration information here.
) )
// newBugCmd builds a new Bug command // newBugCmd builds a new Bug command
func newBugCmd(traefikConfiguration interface{}, traefikPointersConfiguration interface{}) *flaeg.Command { func newBugCmd(traefikConfiguration *TraefikConfiguration, traefikPointersConfiguration *TraefikConfiguration) *flaeg.Command {
//version Command init //version Command init
return &flaeg.Command{ return &flaeg.Command{
@ -99,7 +99,7 @@ func newBugCmd(traefikConfiguration interface{}, traefikPointersConfiguration in
} }
} }
func runBugCmd(traefikConfiguration interface{}) func() error { func runBugCmd(traefikConfiguration *TraefikConfiguration) func() error {
return func() error { return func() error {
body, err := createBugReport(traefikConfiguration) body, err := createBugReport(traefikConfiguration)
@ -113,7 +113,7 @@ func runBugCmd(traefikConfiguration interface{}) func() error {
} }
} }
func createBugReport(traefikConfiguration interface{}) (string, error) { func createBugReport(traefikConfiguration *TraefikConfiguration) (string, error) {
var version bytes.Buffer var version bytes.Buffer
if err := getVersionPrint(&version); err != nil { if err := getVersionPrint(&version); err != nil {
return "", err return "", err
@ -124,7 +124,7 @@ func createBugReport(traefikConfiguration interface{}) (string, error) {
return "", err return "", err
} }
config, err := anonymize.Do(&traefikConfiguration, true) config, err := anonymize.Do(traefikConfiguration, true)
if err != nil { if err != nil {
return "", err return "", err
} }

View file

@ -7,16 +7,27 @@ import (
"github.com/containous/traefik/configuration" "github.com/containous/traefik/configuration"
"github.com/containous/traefik/provider/file" "github.com/containous/traefik/provider/file"
"github.com/containous/traefik/tls" "github.com/containous/traefik/tls"
"github.com/containous/traefik/types"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func Test_createBugReport(t *testing.T) { func Test_createBugReport(t *testing.T) {
traefikConfiguration := TraefikConfiguration{ traefikConfiguration := &TraefikConfiguration{
ConfigFile: "FOO", ConfigFile: "FOO",
GlobalConfiguration: configuration.GlobalConfiguration{ GlobalConfiguration: configuration.GlobalConfiguration{
EntryPoints: configuration.EntryPoints{ EntryPoints: configuration.EntryPoints{
"goo": &configuration.EntryPoint{ "goo": &configuration.EntryPoint{
Address: "hoo.bar", Address: "hoo.bar",
Auth: &types.Auth{
Basic: &types.Basic{
UsersFile: "foo Basic UsersFile",
Users: types.Users{"foo Basic Users 1", "foo Basic Users 2", "foo Basic Users 3"},
},
Digest: &types.Digest{
UsersFile: "foo Digest UsersFile",
Users: types.Users{"foo Digest Users 1", "foo Digest Users 2", "foo Digest Users 3"},
},
},
}, },
}, },
File: &file.Provider{ File: &file.Provider{
@ -28,6 +39,11 @@ func Test_createBugReport(t *testing.T) {
report, err := createBugReport(traefikConfiguration) report, err := createBugReport(traefikConfiguration)
assert.NoError(t, err, report) assert.NoError(t, err, report)
// exported anonymous configuration
assert.NotContains(t, "web Basic Users ", report)
assert.NotContains(t, "foo Digest Users ", report)
assert.NotContains(t, "hoo.bar", report)
} }
func Test_anonymize_traefikConfiguration(t *testing.T) { func Test_anonymize_traefikConfiguration(t *testing.T) {

View file

@ -12,14 +12,6 @@ import (
) )
func TestConsulCatalogGetFrontendRule(t *testing.T) { func TestConsulCatalogGetFrontendRule(t *testing.T) {
provider := &CatalogProvider{
Domain: "localhost",
Prefix: "traefik",
FrontEndRule: "Host:{{.ServiceName}}.{{.Domain}}",
frontEndRuleTemplate: template.New("consul catalog frontend rule"),
}
provider.setupFrontEndTemplate()
testCases := []struct { testCases := []struct {
desc string desc string
service serviceUpdate service serviceUpdate
@ -71,6 +63,14 @@ func TestConsulCatalogGetFrontendRule(t *testing.T) {
t.Run(test.desc, func(t *testing.T) { t.Run(test.desc, func(t *testing.T) {
t.Parallel() t.Parallel()
provider := &CatalogProvider{
Domain: "localhost",
Prefix: "traefik",
FrontEndRule: "Host:{{.ServiceName}}.{{.Domain}}",
frontEndRuleTemplate: template.New("consul catalog frontend rule"),
}
provider.setupFrontEndTemplate()
actual := provider.getFrontendRule(test.service) actual := provider.getFrontendRule(test.service)
assert.Equal(t, test.expected, actual) assert.Equal(t, test.expected, actual)
}) })

View file

@ -418,9 +418,9 @@ func getServiceNames(container dockerData) []string {
// Extract backend from labels for a given service and a given docker container // Extract backend from labels for a given service and a given docker container
func getServiceBackend(container dockerData, serviceName string) string { func getServiceBackend(container dockerData, serviceName string) string {
if value, ok := getContainerServiceLabel(container, serviceName, types.SuffixFrontendBackend); ok { if value, ok := getContainerServiceLabel(container, serviceName, types.SuffixFrontendBackend); ok {
return container.ServiceName + "-" + value return provider.Normalize(container.ServiceName + "-" + value)
} }
return strings.TrimPrefix(container.ServiceName, "/") + "-" + getBackend(container) + "-" + provider.Normalize(serviceName) return provider.Normalize(container.ServiceName + "-" + getBackend(container) + "-" + serviceName)
} }
// Extract rule from labels for a given service and a given docker container // Extract rule from labels for a given service and a given docker container

View file

@ -94,12 +94,22 @@ func TestDockerGetServiceBackend(t *testing.T) {
container: containerJSON(name("foo")), container: containerJSON(name("foo")),
expected: "foo-foo-myservice", expected: "foo-foo-myservice",
}, },
{
container: containerJSON(name("foo.bar")),
expected: "foo-bar-foo-bar-myservice",
},
{ {
container: containerJSON(labels(map[string]string{ container: containerJSON(labels(map[string]string{
types.LabelBackend: "another-backend", types.LabelBackend: "another-backend",
})), })),
expected: "fake-another-backend-myservice", expected: "fake-another-backend-myservice",
}, },
{
container: containerJSON(labels(map[string]string{
types.LabelBackend: "another.backend",
})),
expected: "fake-another-backend-myservice",
},
{ {
container: containerJSON(labels(map[string]string{ container: containerJSON(labels(map[string]string{
"traefik.myservice.frontend.backend": "custom-backend", "traefik.myservice.frontend.backend": "custom-backend",