remove uses of libnetwork/Network.Info()

Now that we removed the interface, there's no need to cast the Network
to a NetworkInfo interface, so we can remove uses of the `Info()` method.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2023-07-25 17:37:19 +02:00
parent 2b449e0e65
commit 74354043ff
No known key found for this signature in database
GPG key ID: 76698F39D527CE8C
9 changed files with 46 additions and 55 deletions

View file

@ -321,7 +321,7 @@ func (c *Cluster) populateNetworkID(ctx context.Context, client swarmapi.Control
}
goto setid
}
if ln != nil && !ln.Info().Dynamic() {
if ln != nil && !ln.Dynamic() {
errMsg := fmt.Sprintf("The network %s cannot be used with services. Only networks scoped to the swarm can be used, such as those created with the overlay driver.", ln.Name())
return errors.WithStack(notAllowedError(errMsg))
}

View file

@ -232,7 +232,7 @@ func (daemon *Daemon) updateNetworkSettings(container *container.Container, n *l
// is an attachable network, which may not
// be locally available previously.
// So always update.
if n.Info().Scope() == scope.Swarm {
if n.Scope() == scope.Swarm {
continue
}
// Avoid duplicate config
@ -327,7 +327,7 @@ func (daemon *Daemon) findAndAttachNetwork(container *container.Container, idOrN
// If we found a network and if it is not dynamically created
// we should never attempt to attach to that network here.
if n != nil {
if container.Managed || !n.Info().Dynamic() {
if container.Managed || !n.Dynamic() {
return n, nil, nil
}
// Throw an error if the container is already attached to the network
@ -591,7 +591,7 @@ func validateNetworkingConfig(n *libnetwork.Network, epConfig *networktypes.Endp
return nil
}
_, _, nwIPv4Configs, nwIPv6Configs := n.Info().IpamConfig()
_, _, nwIPv4Configs, nwIPv6Configs := n.IpamConfig()
for _, s := range []struct {
ipConfigured bool
subnetConfigs []*libnetwork.IpamConf
@ -879,7 +879,7 @@ func (daemon *Daemon) disconnectFromNetwork(container *container.Container, n *l
}
func (daemon *Daemon) tryDetachContainerFromClusterNetwork(network *libnetwork.Network, container *container.Container) {
if !container.Managed && daemon.clusterProvider != nil && network.Info().Dynamic() {
if !container.Managed && daemon.clusterProvider != nil && network.Dynamic() {
if err := daemon.clusterProvider.DetachNetwork(network.Name(), container.ID); err != nil {
log.G(context.TODO()).WithError(err).Warn("error detaching from network")
if err := daemon.clusterProvider.DetachNetwork(network.ID(), container.ID); err != nil {

View file

@ -192,11 +192,9 @@ func (daemon *Daemon) UsesSnapshotter() bool {
// RegistryHosts returns the registry hosts configuration for the host component
// of a distribution image reference.
func (daemon *Daemon) RegistryHosts(host string) ([]docker.RegistryHost, error) {
m := map[string]resolverconfig.RegistryConfig{}
mirrors := daemon.registryService.ServiceConfig().Mirrors
m["docker.io"] = resolverconfig.RegistryConfig{Mirrors: mirrors}
m := map[string]resolverconfig.RegistryConfig{
"docker.io": {Mirrors: daemon.registryService.ServiceConfig().Mirrors},
}
conf := daemon.registryService.ServiceConfig().IndexConfigs
for k, v := range conf {
c := resolverconfig.RegistryConfig{}
@ -1323,10 +1321,8 @@ func (daemon *Daemon) Subnets() ([]net.IPNet, []net.IPNet) {
var v4Subnets []net.IPNet
var v6Subnets []net.IPNet
managedNetworks := daemon.netController.Networks()
for _, managedNetwork := range managedNetworks {
v4infos, v6infos := managedNetwork.Info().IpamInfo()
for _, managedNetwork := range daemon.netController.Networks() {
v4infos, v6infos := managedNetwork.IpamInfo()
for _, info := range v4infos {
if info.IPAMData.Pool != nil {
v4Subnets = append(v4Subnets, *info.IPAMData.Pool)

View file

@ -899,14 +899,12 @@ func setHostGatewayIP(controller *libnetwork.Controller, config *config.Config)
return
}
if n, err := controller.NetworkByName("bridge"); err == nil {
v4Info, v6Info := n.Info().IpamInfo()
var gateway net.IP
v4Info, v6Info := n.IpamInfo()
if len(v4Info) > 0 {
gateway = v4Info[0].Gateway.IP
config.HostGatewayIP = v4Info[0].Gateway.IP
} else if len(v6Info) > 0 {
gateway = v6Info[0].Gateway.IP
config.HostGatewayIP = v6Info[0].Gateway.IP
}
config.HostGatewayIP = gateway
}
}

View file

@ -249,7 +249,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand
// Remove networks not present in HNS
for _, v := range daemon.netController.Networks() {
hnsid := v.Info().DriverOptions()[winlibnetwork.HNSID]
hnsid := v.DriverOptions()[winlibnetwork.HNSID]
found := false
for _, v := range hnsresponse {
@ -262,9 +262,9 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand
if !found {
// non-default nat networks should be re-created if missing from HNS
if v.Type() == "nat" && v.Name() != "nat" {
_, _, v4Conf, v6Conf := v.Info().IpamConfig()
_, _, v4Conf, v6Conf := v.IpamConfig()
netOption := map[string]string{}
for k, v := range v.Info().DriverOptions() {
for k, v := range v.DriverOptions() {
if k != winlibnetwork.NetworkName && k != winlibnetwork.HNSID {
netOption[k] = v
}
@ -290,7 +290,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand
}
// global networks should not be deleted by local HNS
if v.Info().Scope() != scope.Global {
if v.Scope() != scope.Global {
err = v.Delete()
if err != nil {
log.G(context.TODO()).Errorf("Error occurred when removing network %v", err)
@ -307,7 +307,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand
defaultNetworkExists := false
if network, err := daemon.netController.NetworkByName(runconfig.DefaultDaemonNetworkMode().NetworkName()); err == nil {
hnsid := network.Info().DriverOptions()[winlibnetwork.HNSID]
hnsid := network.DriverOptions()[winlibnetwork.HNSID]
for _, v := range hnsresponse {
if hnsid == v.Id {
defaultNetworkExists = true
@ -325,7 +325,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand
}
var n *libnetwork.Network
s := func(current *libnetwork.Network) bool {
hnsid := current.Info().DriverOptions()[winlibnetwork.HNSID]
hnsid := current.DriverOptions()[winlibnetwork.HNSID]
if hnsid == v.Id {
n = current
return true
@ -341,7 +341,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand
nid = n.ID()
// global networks should not be deleted by local HNS
if n.Info().Scope() == scope.Global {
if n.Scope() == scope.Global {
continue
}
v.Name = n.Name()
@ -349,7 +349,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand
// is not yet populated in the libnetwork windows driver
// restore option if it existed before
drvOptions = n.Info().DriverOptions()
drvOptions = n.DriverOptions()
n.Delete()
}
netOption := map[string]string{

View file

@ -313,7 +313,7 @@ func (daemon *Daemon) createNetwork(cfg *config.Config, create types.NetworkCrea
// check if user defined CheckDuplicate, if set true, return err
// otherwise prepare a warning message
if create.CheckDuplicate {
if !agent || nw.Info().Dynamic() {
if !agent || nw.Dynamic() {
return nil, libnetwork.NetworkNameError(create.Name)
}
}
@ -532,7 +532,7 @@ func (daemon *Daemon) deleteNetwork(nw *libnetwork.Network, dynamic bool) error
return errdefs.Forbidden(err)
}
if dynamic && !nw.Info().Dynamic() {
if dynamic && !nw.Dynamic() {
if runconfig.IsPreDefinedNetwork(nw.Name()) {
// Predefined networks now support swarm services. Make this
// a no-op when cluster requests to remove the predefined network.
@ -548,9 +548,9 @@ func (daemon *Daemon) deleteNetwork(nw *libnetwork.Network, dynamic bool) error
// If this is not a configuration only network, we need to
// update the corresponding remote drivers' reference counts
if !nw.Info().ConfigOnly() {
if !nw.ConfigOnly() {
daemon.pluginRefCount(nw.Type(), driverapi.NetworkPluginEndpointType, plugingetter.Release)
ipamType, _, _, _ := nw.Info().IpamConfig()
ipamType, _, _, _ := nw.IpamConfig()
daemon.pluginRefCount(ipamType, ipamapi.PluginEndpointType, plugingetter.Release)
daemon.LogNetworkEvent(nw, "destroy")
}
@ -599,24 +599,23 @@ func buildNetworkResource(nw *libnetwork.Network) types.NetworkResource {
return types.NetworkResource{}
}
info := nw.Info()
return types.NetworkResource{
Name: nw.Name(),
ID: nw.ID(),
Created: info.Created(),
Scope: info.Scope(),
Created: nw.Created(),
Scope: nw.Scope(),
Driver: nw.Type(),
EnableIPv6: info.IPv6Enabled(),
IPAM: buildIPAMResources(info),
Internal: info.Internal(),
Attachable: info.Attachable(),
Ingress: info.Ingress(),
ConfigFrom: network.ConfigReference{Network: info.ConfigFrom()},
ConfigOnly: info.ConfigOnly(),
EnableIPv6: nw.IPv6Enabled(),
IPAM: buildIPAMResources(nw),
Internal: nw.Internal(),
Attachable: nw.Attachable(),
Ingress: nw.Ingress(),
ConfigFrom: network.ConfigReference{Network: nw.ConfigFrom()},
ConfigOnly: nw.ConfigOnly(),
Containers: map[string]types.EndpointResource{},
Options: info.DriverOptions(),
Labels: info.Labels(),
Peers: buildPeerInfoResources(info.Peers()),
Options: nw.DriverOptions(),
Labels: nw.Labels(),
Peers: buildPeerInfoResources(nw.Peers()),
}
}
@ -643,7 +642,7 @@ func buildContainerAttachments(nw *libnetwork.Network) map[string]types.Endpoint
// attached to the network. It is used when listing networks in "verbose" mode.
func buildServiceAttachments(nw *libnetwork.Network) map[string]network.ServiceInfo {
services := make(map[string]network.ServiceInfo)
for name, service := range nw.Info().Services() {
for name, service := range nw.Services() {
tasks := make([]network.Task, 0, len(service.Tasks))
for _, t := range service.Tasks {
tasks = append(tasks, network.Task{
@ -679,7 +678,7 @@ func buildPeerInfoResources(peers []networkdb.PeerInfo) []network.PeerInfo {
// buildIPAMResources constructs a [network.IPAM] from the network's
// IPAM information for inclusion in API responses.
func buildIPAMResources(nw libnetwork.NetworkInfo) network.IPAM {
func buildIPAMResources(nw *libnetwork.Network) network.IPAM {
var ipamConfig []network.IPAMConfig
ipamDriver, ipamOptions, ipv4Conf, ipv6Conf := nw.IpamConfig()
@ -772,7 +771,7 @@ func buildEndpointResource(ep *libnetwork.Endpoint, info libnetwork.EndpointInfo
// after disconnecting any connected container
func (daemon *Daemon) clearAttachableNetworks() {
for _, n := range daemon.getAllNetworks() {
if !n.Info().Attachable() {
if !n.Attachable() {
continue
}
for _, ep := range n.Endpoints() {
@ -882,7 +881,7 @@ func buildCreateEndpointOptions(c *container.Container, n *libnetwork.Network, e
// Port-mapping rules belong to the container & applicable only to non-internal networks.
//
// TODO(thaJeztah): Look if we can provide a more minimal function for getPortMapInfo, as it does a lot, and we only need the "length".
if n.Info().Internal() || len(getPortMapInfo(sb)) > 0 {
if n.Internal() || len(getPortMapInfo(sb)) > 0 {
return createOptions, nil
}

View file

@ -109,13 +109,13 @@ func (daemon *Daemon) localNetworksPrune(ctx context.Context, pruneFilters filte
return true
default:
}
if nw.Info().ConfigOnly() {
if nw.ConfigOnly() {
return false
}
if !until.IsZero() && nw.Info().Created().After(until) {
if !until.IsZero() && nw.Created().After(until) {
return false
}
if !matchLabels(pruneFilters, nw.Info().Labels()) {
if !matchLabels(pruneFilters, nw.Labels()) {
return false
}
nwName := nw.Name()

View file

@ -2118,7 +2118,7 @@ func (n *Network) NdotsSet() bool {
func (c *Controller) getConfigNetwork(name string) (*Network, error) {
var n *Network
c.WalkNetworks(func(current *Network) bool {
if current.Info().ConfigOnly() && current.Name() == name {
if current.ConfigOnly() && current.Name() == name {
n = current
return true
}

View file

@ -34,9 +34,7 @@ func (n *Network) startResolver() {
}
n.resolverOnce.Do(func() {
log.G(context.TODO()).Debugf("Launching DNS server for network %q", n.Name())
options := n.Info().DriverOptions()
hnsid := options[windows.HNSID]
hnsid := n.DriverOptions()[windows.HNSID]
if hnsid == "" {
return
}