Path stuff copied over and tests added

This commit is contained in:
Miek Gieben
2016-03-21 07:20:22 +00:00
parent b6341e8b63
commit ecc5f28671
4 changed files with 73 additions and 54 deletions

View File

@@ -15,31 +15,33 @@ import (
type (
Etcd struct {
Next middleware.Handler
Zones []string
client etcdc.KeysAPI
ctx context.Context
inflight *singleflight.Group
Next middleware.Handler
Zones []string
client etcdc.KeysAPI
ctx context.Context
inflight *singleflight.Group
PathPrefix string
}
)
func NewEtcd(client etcdc.KeysAPI, next middleware.Handler, zones []string) Etcd {
return Etcd{
Next: next,
Zones: zones,
client: client,
ctx: context.Background(),
inflight: &singleflight.Group{},
Next: next,
Zones: zones,
client: client,
ctx: context.Background(),
inflight: &singleflight.Group{},
PathPrefix: "skydns", // TODO(miek): configurable
}
}
func (g Etcd) Records(name string, exact bool) ([]msg.Service, error) {
path, star := msg.PathWithWildcard(name)
path, star := g.PathWithWildcard(name)
r, err := g.Get(path, true)
if err != nil {
return nil, err
}
segments := strings.Split(msg.Path(name), "/")
segments := strings.Split(g.Path(name), "/")
switch {
case exact && r.Node.Dir:
return nil, nil