From 137dc8a673e6ed38c49e3b8d1cf03858271db9a8 Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Wed, 27 Jan 2016 12:12:16 +0100 Subject: [PATCH] *: 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 --- pkg/types/types.go | 11 ++++++++++- plugins/main/bridge/bridge.go | 9 ++++----- plugins/main/ipvlan/ipvlan.go | 7 +++---- plugins/main/macvlan/macvlan.go | 7 +++---- plugins/main/ptp/ptp.go | 5 ++--- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/pkg/types/types.go b/pkg/types/types.go index e5558be4..6ae4a644 100644 --- a/pkg/types/types.go +++ b/pkg/types/types.go @@ -61,13 +61,14 @@ type NetConf struct { IPAM struct { Type string `json:"type,omitempty"` } `json:"ipam,omitempty"` + DNS DNS `json:"dns"` } // Result is what gets returned from the plugin (via stdout) to the caller type Result struct { IP4 *IPConfig `json:"ip4,omitempty"` IP6 *IPConfig `json:"ip6,omitempty"` - DNS []string `json:"dns,omitempty"` + DNS DNS `json:"dns,omitempty"` } func (r *Result) Print() error { @@ -81,6 +82,14 @@ type IPConfig struct { 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 { Dst net.IPNet GW net.IP diff --git a/plugins/main/bridge/bridge.go b/plugins/main/bridge/bridge.go index c4d8594d..49c0aa5d 100644 --- a/plugins/main/bridge/bridge.go +++ b/plugins/main/bridge/bridge.go @@ -35,11 +35,10 @@ const defaultBrName = "cni0" type NetConf struct { types.NetConf - BrName string `json:"bridge"` - IsGW bool `json:"isGateway"` - IPMasq bool `json:"ipMasq"` - MTU int `json:"mtu"` - DNS []string `json:"dns"` + BrName string `json:"bridge"` + IsGW bool `json:"isGateway"` + IPMasq bool `json:"ipMasq"` + MTU int `json:"mtu"` } func init() { diff --git a/plugins/main/ipvlan/ipvlan.go b/plugins/main/ipvlan/ipvlan.go index 36977356..85919772 100644 --- a/plugins/main/ipvlan/ipvlan.go +++ b/plugins/main/ipvlan/ipvlan.go @@ -31,10 +31,9 @@ import ( type NetConf struct { types.NetConf - Master string `json:"master"` - Mode string `json:"mode"` - MTU int `json:"mtu"` - DNS []string `json:"dns"` + Master string `json:"master"` + Mode string `json:"mode"` + MTU int `json:"mtu"` } func init() { diff --git a/plugins/main/macvlan/macvlan.go b/plugins/main/macvlan/macvlan.go index 812d91f4..f6891a34 100644 --- a/plugins/main/macvlan/macvlan.go +++ b/plugins/main/macvlan/macvlan.go @@ -31,10 +31,9 @@ import ( type NetConf struct { types.NetConf - Master string `json:"master"` - Mode string `json:"mode"` - MTU int `json:"mtu"` - DNS []string `json:"dns"` + Master string `json:"master"` + Mode string `json:"mode"` + MTU int `json:"mtu"` } func init() { diff --git a/plugins/main/ptp/ptp.go b/plugins/main/ptp/ptp.go index a51b42fc..3cb8f643 100644 --- a/plugins/main/ptp/ptp.go +++ b/plugins/main/ptp/ptp.go @@ -41,9 +41,8 @@ func init() { type NetConf struct { types.NetConf - IPMasq bool `json:"ipMasq"` - MTU int `json:"mtu"` - DNS []string `json:"dns"` + IPMasq bool `json:"ipMasq"` + MTU int `json:"mtu"` } func setupContainerVeth(netns, ifName string, mtu int, pr *types.Result) (string, error) {