func (m *Mesos) registerTask(t *state.Task, agent string) { var tags []string registered := false tname := cleanName(t.Name, m.Separator) log.Debugf("original TaskName : (%v)", tname) if t.Label("overrideTaskName") != "" { tname = cleanName(t.Label("overrideTaskName"), m.Separator) log.Debugf("overrideTaskName to : (%v)", tname) } if !m.TaskPrivilege.Allowed(tname) { // Task not allowed to be registered return } address := t.IP(m.IpOrder...) l := t.Label("tags") if l != "" { tags = strings.Split(t.Label("tags"), ",") } else { 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]) serviceName := discoveryPort.Name servicePort := strconv.Itoa(discoveryPort.Number) log.Debugf("%+v framework has %+v as a name for %+v port", t.Name, discoveryPort.Name, discoveryPort.Number) pl := discoveryPort.Label("tags") if pl != "" { porttags = strings.Split(discoveryPort.Label("tags"), ",") } else { porttags = []string{} } 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, Port: toPort(servicePort), Address: address, Tags: append(append(tags, serviceName), porttags...), Check: GetCheck(t, &CheckVar{ Host: toIP(address), Port: servicePort, }), Agent: toIP(agent), }) registered = true } } if t.Resources.PortRanges != "" { 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), Name: tname, Port: toPort(port), Address: address, Tags: tags, Check: GetCheck(t, &CheckVar{ Host: toIP(address), Port: port, }), Agent: toIP(agent), }) registered = true } } if !registered { m.Registry.Register(®istry.Service{ ID: fmt.Sprintf("%s:%s-%s:%s", m.ServiceIdPrefix, agent, tname, address), Name: tname, Address: address, Tags: tags, Check: GetCheck(t, &CheckVar{ Host: toIP(address), }), Agent: toIP(agent), }) } }
func (m *Mesos) registerTask(t *state.Task, agent string) { var tags []string tname := cleanName(t.Name) address := t.IP(m.IpOrder...) l := t.Label("tags") if l != "" { tags = strings.Split(t.Label("tags"), ",") } else { tags = []string{} } for key := range t.DiscoveryInfo.Ports.DiscoveryPorts { discoveryPort := state.DiscoveryPort(t.DiscoveryInfo.Ports.DiscoveryPorts[key]) serviceName := discoveryPort.Name servicePort := strconv.Itoa(discoveryPort.Number) log.Debugf("%+v framework has %+v as a name for %+v port", t.Name, discoveryPort.Name, discoveryPort.Number) if discoveryPort.Name != "" { m.Registry.Register(®istry.Service{ ID: fmt.Sprintf("mesos-consul:%s:%s:%d", agent, tname, discoveryPort.Number), Name: tname, Port: toPort(servicePort), Address: address, Tags: []string{serviceName}, Check: GetCheck(t, &CheckVar{ Host: toIP(address), Port: servicePort, }), Agent: toIP(agent), }) } } if t.Resources.PortRanges != "" { for _, port := range t.Resources.Ports() { m.Registry.Register(®istry.Service{ ID: fmt.Sprintf("mesos-consul:%s:%s:%s", agent, tname, port), Name: tname, Port: toPort(port), Address: address, Tags: tags, Check: GetCheck(t, &CheckVar{ Host: toIP(address), Port: port, }), Agent: toIP(agent), }) } } else { m.Registry.Register(®istry.Service{ ID: fmt.Sprintf("mesos-consul:%s-%s", agent, tname), Name: tname, Address: address, Tags: tags, Check: GetCheck(t, &CheckVar{ Host: toIP(address), }), Agent: toIP(agent), }) } }