MCPcopy
hub / github.com/moby/moby / deleteNetwork

Method deleteNetwork

daemon/network.go:654–684  ·  view source on GitHub ↗
(nw *libnetwork.Network, dynamic bool)

Source from the content-addressed store, hash-verified

652}
653
654func (daemon *Daemon) deleteNetwork(nw *libnetwork.Network, dynamic bool) error {
655 if network.IsPredefined(nw.Name()) && !dynamic {
656 err := fmt.Errorf("%s is a pre-defined network and cannot be removed", nw.Name())
657 return errdefs.Forbidden(err)
658 }
659
660 if dynamic && !nw.Dynamic() {
661 if network.IsPredefined(nw.Name()) {
662 // Predefined networks now support swarm services. Make this
663 // a no-op when cluster requests to remove the predefined network.
664 return nil
665 }
666 err := fmt.Errorf("%s is not a dynamic network", nw.Name())
667 return errdefs.Forbidden(err)
668 }
669
670 if err := nw.Delete(); err != nil {
671 return fmt.Errorf("error while removing network: %w", err)
672 }
673
674 // If this is not a configuration only network, we need to
675 // update the corresponding remote drivers' reference counts
676 if !nw.ConfigOnly() {
677 daemon.pluginRefCount(nw.Type(), driverapi.NetworkPluginEndpointType, plugingetter.Release)
678 ipamType, _, _, _ := nw.IpamConfig()
679 daemon.pluginRefCount(ipamType, ipamapi.PluginEndpointType, plugingetter.Release)
680 daemon.LogNetworkEvent(nw, events.ActionDestroy)
681 }
682
683 return nil
684}
685
686// GetNetworks returns a list of all networks
687func (daemon *Daemon) GetNetworks(filter network.Filter, config backend.NetworkListConfig) ([]networktypes.Inspect, error) {

Callers 2

DeleteManagedNetworkMethod · 0.95
DeleteNetworkMethod · 0.95

Calls 11

pluginRefCountMethod · 0.95
LogNetworkEventMethod · 0.95
IsPredefinedFunction · 0.92
ForbiddenFunction · 0.92
ErrorfMethod · 0.80
DynamicMethod · 0.80
ConfigOnlyMethod · 0.80
IpamConfigMethod · 0.80
NameMethod · 0.65
DeleteMethod · 0.65
TypeMethod · 0.65

Tested by

no test coverage detected