diff --git a/plugins/meta/firewall/firewall.go b/plugins/meta/firewall/firewall.go index c2eef93a..c348d6fa 100644 --- a/plugins/meta/firewall/firewall.go +++ b/plugins/meta/firewall/firewall.go @@ -68,9 +68,15 @@ func parseConf(data []byte) (*FirewallNetConf, *current.Result, error) { return nil, nil, fmt.Errorf("failed to load netconf: %v", err) } + // Default the firewalld zone to trusted + if conf.FirewalldZone == "" { + conf.FirewalldZone = "trusted" + } + // Parse previous result. if conf.RawPrevResult == nil { - return nil, nil, fmt.Errorf("missing prevResult from earlier plugin") + // return early if there was no previous result, which is allowed for DEL calls + return &conf, ¤t.Result{}, nil } // Parse previous result. @@ -85,11 +91,6 @@ func parseConf(data []byte) (*FirewallNetConf, *current.Result, error) { return nil, nil, fmt.Errorf("could not convert result to current version: %v", err) } - // Default the firewalld zone to trusted - if conf.FirewalldZone == "" { - conf.FirewalldZone = "trusted" - } - return &conf, result, nil } @@ -116,6 +117,10 @@ func cmdAdd(args *skel.CmdArgs) error { return err } + if conf.PrevResult == nil { + return fmt.Errorf("missing prevResult from earlier plugin") + } + backend, err := getBackend(conf) if err != nil { return err @@ -167,8 +172,8 @@ func cmdCheck(args *skel.CmdArgs) error { } // Ensure we have previous result. - if result == nil { - return fmt.Errorf("Required prevResult missing") + if conf.PrevResult == nil { + return fmt.Errorf("missing prevResult from earlier plugin") } backend, err := getBackend(conf)