mirror of
https://github.com/coredns/coredns.git
synced 2025-10-28 00:34:24 -04:00
ServiceBackend interface (#369)
* Add ServiceBackend interface This adds a ServiceBackend interface that is shared between etcd/etcd3 (later) and kubernetes, leading to a massive reduction in code. When returning the specific records from their backend. Fixes #273
This commit is contained in:
29
middleware/backend.go
Normal file
29
middleware/backend.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"github.com/miekg/coredns/middleware/etcd/msg"
|
||||
"github.com/miekg/coredns/request"
|
||||
|
||||
"github.com/miekg/dns"
|
||||
)
|
||||
|
||||
// ServiceBackend defines a (dynamic) backend that returns a slice of service definitions.
|
||||
type ServiceBackend interface {
|
||||
// Services communitates with the backend to retrieve the service defintion. Exact indicates
|
||||
// on exact much are that we are allowed to recurs.
|
||||
Services(state request.Request, exact bool, opt Options) ([]msg.Service, []msg.Service, error)
|
||||
|
||||
// Lookup is used to find records else where.
|
||||
Lookup(state request.Request, name string, typ uint16) (*dns.Msg, error)
|
||||
|
||||
// IsNameError return true if err indicated a record not found condition
|
||||
IsNameError(err error) bool
|
||||
|
||||
// Debug returns a string used when returning debug services.
|
||||
Debug() string
|
||||
}
|
||||
|
||||
// Options are extra options that can be specified for a lookup.
|
||||
type Options struct {
|
||||
Debug string // This is a debug query. A query prefixed with debug.o-o
|
||||
}
|
||||
Reference in New Issue
Block a user