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:
parent
89ec25f718
commit
cbbb5f4ccb
2 changed files with 13 additions and 5 deletions
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
},
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue