Router table.Read replaces List/Query (#1966)

* Table.REad insted of list and query

* fmt
This commit is contained in:
Asim Aslam 2020-08-23 13:10:48 +01:00 committed by Vasiliy Tolstov
parent 1d61a1788f
commit 900e782c4b
3 changed files with 25 additions and 25 deletions

View File

@ -266,7 +266,7 @@ func (r *rtr) Lookup(service string, opts ...router.LookupOption) ([]router.Rout
q := router.NewLookup(opts...) q := router.NewLookup(opts...)
// if we find the routes filter and return them // if we find the routes filter and return them
routes, err := r.table.Query(service) routes, err := r.table.Read(router.ReadService(service))
if err == nil { if err == nil {
routes = router.Filter(routes, q) routes = router.Filter(routes, q)
if len(routes) == 0 { if len(routes) == 0 {

View File

@ -198,35 +198,35 @@ func (t *table) Update(r router.Route) error {
return nil return nil
} }
// List returns a list of all routes in the table // Read entries from the table
func (t *table) List() ([]router.Route, error) { func (t *table) Read(opts ...router.ReadOption) ([]router.Route, error) {
var options router.ReadOptions
for _, o := range opts {
o(&options)
}
t.RLock() t.RLock()
defer t.RUnlock() defer t.RUnlock()
var routes []router.Route var routes []router.Route
for _, rmap := range t.routes {
for _, route := range rmap { // get the routes based on options passed
routes = append(routes, route.route) if len(options.Service) > 0 {
routeMap, ok := t.routes[options.Service]
if !ok {
return nil, router.ErrRouteNotFound
} }
for _, rt := range routeMap {
routes = append(routes, rt.route)
}
return routes, nil
} }
return routes, nil // otherwise get all routes
} for _, serviceRoutes := range t.routes {
for _, rt := range serviceRoutes {
// Lookup queries routing table and returns all routes that match the lookup query routes = append(routes, rt.route)
func (t *table) Query(service string) ([]router.Route, error) { }
t.RLock()
defer t.RUnlock()
routeMap, ok := t.routes[service]
if !ok {
return nil, router.ErrRouteNotFound
}
var routes []router.Route
for _, rt := range routeMap {
routes = append(routes, rt.route)
} }
return routes, nil return routes, nil

View File

@ -99,7 +99,7 @@ func TestList(t *testing.T) {
} }
} }
routes, err := table.List() routes, err := table.Read()
if err != nil { if err != nil {
t.Fatalf("error listing routes: %s", err) t.Fatalf("error listing routes: %s", err)
} }
@ -116,7 +116,7 @@ func TestQuery(t *testing.T) {
t.Fatalf("error adding route: %s", err) t.Fatalf("error adding route: %s", err)
} }
rt, err := table.Query(route.Service) rt, err := table.Read(router.ReadService(route.Service))
if err != nil { if err != nil {
t.Fatal("Expected a route got err", err) t.Fatal("Expected a route got err", err)
} }