[marathon] Assign filtered tasks to apps contained in slice.
We previously assigned them to a copy of each application, which
effectively disabled all filtering.
Fixes a bug introduced along commit 779eeba
.
This commit is contained in:
parent
074b31b5e9
commit
3174fb8861
2 changed files with 30 additions and 2 deletions
|
@ -175,8 +175,8 @@ func (p *Provider) loadMarathonConfig() *types.Configuration {
|
||||||
}
|
}
|
||||||
|
|
||||||
filteredApps := fun.Filter(p.applicationFilter, applications.Apps).([]marathon.Application)
|
filteredApps := fun.Filter(p.applicationFilter, applications.Apps).([]marathon.Application)
|
||||||
for _, app := range filteredApps {
|
for i, app := range filteredApps {
|
||||||
app.Tasks = fun.Filter(func(task *marathon.Task) bool {
|
filteredApps[i].Tasks = fun.Filter(func(task *marathon.Task) bool {
|
||||||
return p.taskFilter(*task, app)
|
return p.taskFilter(*task, app)
|
||||||
}, app.Tasks).([]*marathon.Task)
|
}, app.Tasks).([]*marathon.Task)
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,6 +90,31 @@ func TestMarathonLoadConfigNonAPIErrors(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "filtered task",
|
||||||
|
application: marathon.Application{
|
||||||
|
Ports: []int{80},
|
||||||
|
Labels: &map[string]string{},
|
||||||
|
},
|
||||||
|
task: marathon.Task{
|
||||||
|
Ports: []int{80},
|
||||||
|
State: "TASK_STAGING",
|
||||||
|
},
|
||||||
|
expectedFrontends: map[string]*types.Frontend{
|
||||||
|
"frontend-app": {
|
||||||
|
Backend: "backend-app",
|
||||||
|
PassHostHeader: true,
|
||||||
|
BasicAuth: []string{},
|
||||||
|
EntryPoints: []string{},
|
||||||
|
Routes: map[string]types.Route{
|
||||||
|
"route-host-app": {
|
||||||
|
Rule: "Host:app.docker.localhost",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expectedBackends: nil,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
desc: "load balancer / circuit breaker labels",
|
desc: "load balancer / circuit breaker labels",
|
||||||
application: marathon.Application{
|
application: marathon.Application{
|
||||||
|
@ -328,6 +353,9 @@ func TestMarathonLoadConfigNonAPIErrors(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
c.application.ID = "/app"
|
c.application.ID = "/app"
|
||||||
c.task.ID = "task"
|
c.task.ID = "task"
|
||||||
|
if c.task.State == "" {
|
||||||
|
c.task.State = "TASK_RUNNING"
|
||||||
|
}
|
||||||
c.application.Tasks = []*marathon.Task{&c.task}
|
c.application.Tasks = []*marathon.Task{&c.task}
|
||||||
fakeClient := newFakeClient(false,
|
fakeClient := newFakeClient(false,
|
||||||
marathon.Applications{Apps: []marathon.Application{c.application}})
|
marathon.Applications{Apps: []marathon.Application{c.application}})
|
||||||
|
|
Loading…
Reference in a new issue