middleware/kubernetes: put reverse function in own file (#863)

Move reverse function and (some) test code to reverse*.go
This commit is contained in:
Miek Gieben 2017-08-09 05:18:46 -07:00 committed by GitHub
parent be037a32a5
commit df1879f9ae
4 changed files with 66 additions and 52 deletions

View file

@ -0,0 +1,32 @@
package kubernetes
import (
"net"
"github.com/coredns/coredns/middleware"
"github.com/coredns/coredns/middleware/etcd/msg"
"github.com/coredns/coredns/middleware/pkg/dnsutil"
"github.com/coredns/coredns/request"
)
// Reverse implements the ServiceBackend interface.
func (k *Kubernetes) Reverse(state request.Request, exact bool, opt middleware.Options) ([]msg.Service, []msg.Service, error) {
ip := dnsutil.ExtractAddressFromReverse(state.Name())
if ip == "" {
return nil, nil, nil
}
records := k.getServiceRecordForIP(ip, state.Name())
return records, nil, nil
}
func (k *Kubernetes) isRequestInReverseRange(name string) bool {
ip := dnsutil.ExtractAddressFromReverse(name)
for _, c := range k.ReverseCidrs {
if c.Contains(net.ParseIP(ip)) {
return true
}
}
return false
}