Fix marathon provider

The IP-Per-Task PR introduced a bug using the marathon application
port mapping. This port should be used only in the proxy server, the
downstream connection should be always made with the task port.

    This commit fix the regression and adds a unit test to prevent new
problems in this setup.
This commit is contained in:
Diego de Oliveira 2017-01-31 12:48:21 -02:00 committed by Vincent Demeester
parent 89ec25f718
commit cbbb5f4ccb
2 changed files with 13 additions and 5 deletions

View file

@ -496,11 +496,6 @@ func (provider *Marathon) getCircuitBreakerExpression(application marathon.Appli
func processPorts(application marathon.Application, task marathon.Task) []int {
// First using application ports
if len(application.Ports) > 0 {
return application.Ports
}
// Using default port configuration
if task.Ports != nil && len(task.Ports) > 0 {
return task.Ports

View file

@ -1077,6 +1077,19 @@ func TestMarathonGetPort(t *testing.T) {
Ports: []int{80, 443},
},
expected: "443",
}, {
applications: []marathon.Application{
{
ID: "application-with-port",
Ports: []int{9999},
Labels: &map[string]string{},
},
},
task: marathon.Task{
AppID: "application-with-port",
Ports: []int{7777},
},
expected: "7777",
},
}