From bd61a0a2b7fa26ad81cab54018a735f3711ee7dd Mon Sep 17 00:00:00 2001 From: Tomofumi Hayashi Date: Thu, 26 Oct 2023 14:31:08 +0900 Subject: [PATCH] Change 100's Result DNS as pointer to remove empty DNS field This commit changes DNS as pointer to remove empty DNS field in Result. This will simplify Result format. This also changes SPEC to mention all keys are optional, other than 'cniVerison'. Signed-off-by: Tomofumi Hayashi --- SPEC.md | 1 + pkg/types/100/types.go | 4 ++-- pkg/types/types.go | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/SPEC.md b/SPEC.md index 9436c892..d26c3ea9 100644 --- a/SPEC.md +++ b/SPEC.md @@ -523,6 +523,7 @@ For certain operations, plugins must output result information. The output shoul ### ADD Success Plugins must output a JSON object with the following keys upon a successful `ADD` operation: +All keys are optional other than `cniVersion`. - `cniVersion`: The same version supplied on input - the string "1.1.0" - `interfaces`: An array of all interfaces created by the attachment, including any host-level interfaces: diff --git a/pkg/types/100/types.go b/pkg/types/100/types.go index 6c138568..beb46b07 100644 --- a/pkg/types/100/types.go +++ b/pkg/types/100/types.go @@ -92,7 +92,7 @@ type Result struct { Interfaces []*Interface `json:"interfaces,omitempty"` IPs []*IPConfig `json:"ips,omitempty"` Routes []*types.Route `json:"routes,omitempty"` - DNS types.DNS `json:"dns,omitempty"` + DNS *types.DNS `json:"dns,omitempty"` } // convertFrom100 does nothing except set the version; the types are the same @@ -145,7 +145,7 @@ func convertFrom04x(from types.Result, toVersion string) (types.Result, error) { fromResult := from.(*types040.Result) toResult := &Result{ CNIVersion: toVersion, - DNS: *fromResult.DNS.Copy(), + DNS: fromResult.DNS.Copy(), Routes: []*types.Route{}, } for _, fromIntf := range fromResult.Interfaces { diff --git a/pkg/types/types.go b/pkg/types/types.go index 780dfa13..b4f8c1bb 100644 --- a/pkg/types/types.go +++ b/pkg/types/types.go @@ -64,7 +64,7 @@ type NetConf struct { Type string `json:"type,omitempty"` Capabilities map[string]bool `json:"capabilities,omitempty"` IPAM IPAM `json:"ipam,omitempty"` - DNS DNS `json:"dns,omitempty"` + DNS *DNS `json:"dns,omitempty"` RawPrevResult map[string]interface{} `json:"prevResult,omitempty"` PrevResult Result `json:"-"`