From 68e314f28a8d563e11460620c9e0d2e9e6c755db Mon Sep 17 00:00:00 2001 From: Rickard Dybeck Date: Tue, 20 Sep 2016 15:23:53 +0200 Subject: [PATCH] Add possibility to override task-name per port If you have the a UI and an API endpoint serviced from the same container but on different ports you can grouped them as different services. Also only register the 2nd time on portRanges if it didn't manage to register with discoveryPort. --- mesos/register.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mesos/register.go b/mesos/register.go index cbd8619..6ab3a7a 100644 --- a/mesos/register.go +++ b/mesos/register.go @@ -124,8 +124,6 @@ func (m *Mesos) registerTask(t *state.Task, agent string) { tags = []string{} } - tags = buildRegisterTaskTags(tname, tags, m.taskTag) - for key := range t.DiscoveryInfo.Ports.DiscoveryPorts { var porttags []string discoveryPort := state.DiscoveryPort(t.DiscoveryInfo.Ports.DiscoveryPorts[key]) @@ -141,10 +139,15 @@ func (m *Mesos) registerTask(t *state.Task, agent string) { } else { porttags = []string{} } + tnamePort := tname + if discoveryPort.Label("overrideTaskName") != "" { + tnamePort = discoveryPort.Label("overrideTaskName") + } + tags = buildRegisterTaskTags(tnamePort, tags, m.taskTag) if discoveryPort.Name != "" { m.Registry.Register(®istry.Service{ - ID: fmt.Sprintf("%s:%s:%s:%s:%d", m.ServiceIdPrefix, agent, tname, address, discoveryPort.Number), - Name: tname, + ID: fmt.Sprintf("%s:%s:%s:%s:%d", m.ServiceIdPrefix, agent, tnamePort, address, discoveryPort.Number), + Name: tnamePort, Port: toPort(servicePort), Address: address, Tags: append(append(tags, serviceName), porttags...), @@ -158,7 +161,8 @@ func (m *Mesos) registerTask(t *state.Task, agent string) { } } - if t.Resources.PortRanges != "" { + if !registered && t.Resources.PortRanges != "" { + tags = buildRegisterTaskTags(tname, tags, m.taskTag) for _, port := range t.Resources.Ports() { m.Registry.Register(®istry.Service{ ID: fmt.Sprintf("%s:%s:%s:%s:%s", m.ServiceIdPrefix, agent, tname, address, port),