diff --git a/docker.go b/docker.go index ac928f716..ac1031d74 100644 --- a/docker.go +++ b/docker.go @@ -52,7 +52,7 @@ func (provider *DockerProvider) Provide(configurationChan chan <- *Configuration go func() { for { event := <-dockerEvents - log.Println("Event receveived", event) + log.Println("Docker event receveived", event) configuration := provider.loadDockerConfig() if (configuration != nil) { configurationChan <- configuration diff --git a/marathon.go b/marathon.go index 70897b2b6..4fec90691 100644 --- a/marathon.go +++ b/marathon.go @@ -40,11 +40,28 @@ var MarathonFuncMap = template.FuncMap{ func (provider *MarathonProvider) Provide(configurationChan chan <- *Configuration) { config := marathon.NewDefaultConfig() config.URL = provider.Endpoint + config.EventsInterface = "docker0" if client, err := marathon.NewClient(config); err != nil { log.Println("Failed to create a client for marathon, error: %s", err) return } else { provider.marathonClient = client + update := make(marathon.EventsChannel,5) + if err := client.AddEventsListener(update, marathon.EVENTS_APPLICATIONS); err != nil { + log.Println("Failed to register for subscriptions, %s", err) + } else { + go func() { + for { + event := <-update + log.Println("Marathon event receveived", event) + configuration := provider.loadMarathonConfig() + if (configuration != nil) { + configurationChan <- configuration + } + } + }() + } + configuration := provider.loadMarathonConfig() configurationChan <- configuration } @@ -94,7 +111,5 @@ func (provider *MarathonProvider) loadMarathonConfig() *Configuration { return nil } - log.Println(buffer.String()) - return configuration } \ No newline at end of file diff --git a/marathon.tmpl b/marathon.tmpl index 68bc13426..f59000417 100644 --- a/marathon.tmpl +++ b/marathon.tmpl @@ -5,7 +5,7 @@ [routes]{{range .Applications}} [routes.route{{.ID | replace "/" "-"}}] - backend = ".backend{{.ID | replace "/" "-"}}" + backend = "backend{{.ID | replace "/" "-"}}" [routes.route-{{getHost .}}.rules.rule-host-{{getHost .}}] category = "Host" value = "{{getHost .}}.{{$.Domain}}"