diff --git a/network/resolver/static/static.go b/network/resolver/static/static.go new file mode 100644 index 00000000..8157e4ea --- /dev/null +++ b/network/resolver/static/static.go @@ -0,0 +1,33 @@ +// Package static is a static resolver +package registry + +import ( + "github.com/micro/go-micro/network/resolver" +) + +// Resolver returns a static list of nodes. In the event the node list +// is not present it will return the name of the network passed in. +type Resolver struct { + // A static list of nodes + Nodes []string +} + +// Resolve returns the list of nodes +func (r *Resolver) Resolve(name string) ([]*resolver.Record, error) { + // if there are no nodes just return the name + if len(r.Nodes) == 0 { + return []*resolver.Record{ + {Address: name}, + }, nil + } + + var records []*resolver.Record + + for _, node := range r.Nodes { + records = append(records, &resolver.Record{ + Address: node, + }) + } + + return records, nil +}