@@ -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
176177func 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
205212func setLinkAddr (name string , ip * net.IPNet ) error {
0 commit comments