Skip to content

Commit 5bc8f2e

Browse files
Eslam-NawaraOmarabdul3ziz
authored andcommitted
defer returning error untill all cleanup is done
1 parent 66d69a6 commit 5bc8f2e

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

pkg/netlight/resource/resource.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
"github.com/containernetworking/plugins/pkg/ns"
1212
mapset "github.com/deckarep/golang-set"
13+
"github.com/hashicorp/go-multierror"
1314
"github.com/pkg/errors"
1415
"github.com/rs/zerolog/log"
1516
localPkg "github.com/threefoldtech/zosbase/pkg"
@@ -174,6 +175,7 @@ func Create(name string, master *netlink.Bridge, ndmzIP *net.IPNet, ndmzGwIP *ne
174175
}
175176

176177
func Delete(name string) error {
178+
var errs error
177179
nsName := fmt.Sprintf("n%s", name)
178180
netNS, err := namespace.GetByName(nsName)
179181
if errors.Is(err, os.ErrNotExist) {
@@ -185,21 +187,26 @@ func Delete(name string) error {
185187
}
186188

187189
if err := destroyMycelium(netNS, zinit.Default()); err != nil {
188-
return err
190+
errs = multierror.Append(errs, fmt.Errorf("failed to destroy mycelium: %w", err))
189191
}
190192

191193
if err := namespace.Delete(netNS); err != nil {
192-
return err
194+
errs = multierror.Append(errs, fmt.Errorf("failed to delete namespace: %w", err))
193195
}
194196

195197
privateNetBr := fmt.Sprintf("r%s", name)
196198
myBr := fmt.Sprintf("m%s", name)
197199

198200
if err := bridge.Delete(privateNetBr); err != nil {
199-
return err
201+
errs = multierror.Append(errs, fmt.Errorf("failed to delete private bridge: %w", err))
200202
}
201203

202-
return bridge.Delete(myBr)
204+
if err := bridge.Delete(myBr); err != nil {
205+
errs = multierror.Append(errs, fmt.Errorf("failed to delete mycelium bridge: %w", err))
206+
}
207+
208+
return errs
209+
203210
}
204211

205212
func setLinkAddr(name string, ip *net.IPNet) error {

0 commit comments

Comments
 (0)