*: reflect SPEC's DNS changes in implementation

* DNS is now a type which will result in a JSON dictionary in
  configurations and results
* Minor refactoring, making use of type embedding
This commit is contained in:
Stefan Junker 2016-01-27 12:12:16 +01:00
parent 3bbc43f24d
commit a08b015fa5

View File

@ -61,13 +61,14 @@ type NetConf struct {
IPAM struct { IPAM struct {
Type string `json:"type,omitempty"` Type string `json:"type,omitempty"`
} `json:"ipam,omitempty"` } `json:"ipam,omitempty"`
DNS DNS `json:"dns"`
} }
// Result is what gets returned from the plugin (via stdout) to the caller // Result is what gets returned from the plugin (via stdout) to the caller
type Result struct { type Result struct {
IP4 *IPConfig `json:"ip4,omitempty"` IP4 *IPConfig `json:"ip4,omitempty"`
IP6 *IPConfig `json:"ip6,omitempty"` IP6 *IPConfig `json:"ip6,omitempty"`
DNS []string `json:"dns,omitempty"` DNS DNS `json:"dns,omitempty"`
} }
func (r *Result) Print() error { func (r *Result) Print() error {
@ -81,6 +82,14 @@ type IPConfig struct {
Routes []Route Routes []Route
} }
// DNS contains values interesting for DNS resolvers
type DNS struct {
Nameservers []string `json:"nameservers,omitempty"`
Domain string `json:"domain,omitempty"`
Search []string `json:"search,omitempty"`
Options []string `json:"options,omitempty"`
}
type Route struct { type Route struct {
Dst net.IPNet Dst net.IPNet
GW net.IP GW net.IP