From 67e3d560fe5c06cf540cc9768997c8521ed9d362 Mon Sep 17 00:00:00 2001 From: Asim Aslam Date: Thu, 27 Jun 2019 14:37:52 +0100 Subject: [PATCH] Lookup every service. FML --- network/router/default_router.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/network/router/default_router.go b/network/router/default_router.go index b342666e..7c682150 100644 --- a/network/router/default_router.go +++ b/network/router/default_router.go @@ -107,7 +107,20 @@ func (r *router) addServiceRoutes(reg registry.Registry, network string, metric // add each service node as a separate route; for _, service := range services { - for _, node := range service.Nodes { + // get the service to retrieve all its info + srvs, err := reg.GetService(service.Name) + if err != nil { + continue + } + + // create a flat slide of nodes + var nodes []*registry.Node + for _, s := range srvs { + nodes = append(nodes, s.Nodes...) + } + + // range over the flat slice of nodes + for _, node := range nodes { gw := node.Address if node.Port > 0 { gw = fmt.Sprintf("%s:%d", node.Address, node.Port)