Merge pull request #44233 from thaJeztah/libnetwork_linting

libnetwork: fix some (linting) issues
This commit is contained in:
Sebastiaan van Stijn 2022-10-03 11:02:59 +02:00 committed by GitHub
commit b14d203884
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 66 additions and 71 deletions

View file

@ -539,25 +539,23 @@ func checkOverlap(nw *net.IPNet) error {
}
func (n *network) restoreSubnetSandbox(s *subnet, brName, vxlanName string) error {
sbox := n.sbox
// restore overlay osl sandbox
Ifaces := make(map[string][]osl.IfaceOption)
brIfaceOption := make([]osl.IfaceOption, 2)
brIfaceOption = append(brIfaceOption, sbox.InterfaceOptions().Address(s.gwIP))
brIfaceOption = append(brIfaceOption, sbox.InterfaceOptions().Bridge(true))
Ifaces[brName+"+br"] = brIfaceOption
err := sbox.Restore(Ifaces, nil, nil, nil)
if err != nil {
ifaces := map[string][]osl.IfaceOption{
brName + "+br": {
n.sbox.InterfaceOptions().Address(s.gwIP),
n.sbox.InterfaceOptions().Bridge(true),
},
}
if err := n.sbox.Restore(ifaces, nil, nil, nil); err != nil {
return err
}
Ifaces = make(map[string][]osl.IfaceOption)
vxlanIfaceOption := make([]osl.IfaceOption, 1)
vxlanIfaceOption = append(vxlanIfaceOption, sbox.InterfaceOptions().Master(brName))
Ifaces[vxlanName+"+vxlan"] = vxlanIfaceOption
return sbox.Restore(Ifaces, nil, nil, nil)
ifaces = map[string][]osl.IfaceOption{
vxlanName + "+vxlan": {
n.sbox.InterfaceOptions().Master(brName),
},
}
return n.sbox.Restore(ifaces, nil, nil, nil)
}
func (n *network) setupSubnetSandbox(s *subnet, brName, vxlanName string) error {

View file

@ -618,12 +618,12 @@ func TestEnableIPv6(t *testing.T) {
tmpResolvConf := []byte("search pommesfrites.fr\nnameserver 12.34.56.78\nnameserver 2001:4860:4860::8888\n")
expectedResolvConf := []byte("search pommesfrites.fr\nnameserver 127.0.0.11\nnameserver 2001:4860:4860::8888\noptions ndots:0\n")
//take a copy of resolv.conf for restoring after test completes
// take a copy of resolv.conf for restoring after test completes
resolvConfSystem, err := os.ReadFile("/etc/resolv.conf")
if err != nil {
t.Fatal(err)
}
//cleanup
// cleanup
defer func() {
if err := os.WriteFile("/etc/resolv.conf", resolvConfSystem, 0644); err != nil {
t.Fatal(err)
@ -696,12 +696,12 @@ func TestResolvConfHost(t *testing.T) {
tmpResolvConf := []byte("search localhost.net\nnameserver 127.0.0.1\nnameserver 2001:4860:4860::8888\n")
//take a copy of resolv.conf for restoring after test completes
// take a copy of resolv.conf for restoring after test completes
resolvConfSystem, err := os.ReadFile("/etc/resolv.conf")
if err != nil {
t.Fatal(err)
}
//cleanup
// cleanup
defer func() {
if err := os.WriteFile("/etc/resolv.conf", resolvConfSystem, 0644); err != nil {
t.Fatal(err)
@ -779,12 +779,12 @@ func TestResolvConf(t *testing.T) {
expectedResolvConf1 := []byte("search pommesfrites.fr\nnameserver 127.0.0.11\noptions ndots:0\n")
tmpResolvConf3 := []byte("search pommesfrites.fr\nnameserver 113.34.56.78\n")
//take a copy of resolv.conf for restoring after test completes
// take a copy of resolv.conf for restoring after test completes
resolvConfSystem, err := os.ReadFile("/etc/resolv.conf")
if err != nil {
t.Fatal(err)
}
//cleanup
// cleanup
defer func() {
if err := os.WriteFile("/etc/resolv.conf", resolvConfSystem, 0644); err != nil {
t.Fatal(err)

View file

@ -20,26 +20,26 @@ const (
// Sandbox represents a network sandbox, identified by a specific key. It
// holds a list of Interfaces, routes etc, and more can be added dynamically.
type Sandbox interface {
// The path where the network namespace is mounted.
// Key returns the path where the network namespace is mounted.
Key() string
// Add an existing Interface to this sandbox. The operation will rename
// AddInterface adds an existing Interface to this sandbox. The operation will rename
// from the Interface SrcName to DstName as it moves, and reconfigure the
// interface according to the specified settings. The caller is expected
// to only provide a prefix for DstName. The AddInterface api will auto-generate
// an appropriate suffix for the DstName to disambiguate.
AddInterface(SrcName string, DstPrefix string, options ...IfaceOption) error
// Set default IPv4 gateway for the sandbox
// SetGateway sets the default IPv4 gateway for the sandbox.
SetGateway(gw net.IP) error
// Set default IPv6 gateway for the sandbox
// SetGatewayIPv6 sets the default IPv6 gateway for the sandbox.
SetGatewayIPv6(gw net.IP) error
// Unset the previously set default IPv4 gateway in the sandbox
// UnsetGateway the previously set default IPv4 gateway in the sandbox.
UnsetGateway() error
// Unset the previously set default IPv6 gateway in the sandbox
// UnsetGatewayIPv6 unsets the previously set default IPv6 gateway in the sandbox.
UnsetGatewayIPv6() error
// GetLoopbackIfaceName returns the name of the loopback interface
@ -52,13 +52,13 @@ type Sandbox interface {
RemoveAliasIP(ifName string, ip *net.IPNet) error
// DisableARPForVIP disables ARP replies and requests for VIP addresses
// on a particular interface
// on a particular interface.
DisableARPForVIP(ifName string) error
// Add a static route to the sandbox.
// AddStaticRoute adds a static route to the sandbox.
AddStaticRoute(*types.StaticRoute) error
// Remove a static route from the sandbox.
// RemoveStaticRoute removes a static route from the sandbox.
RemoveStaticRoute(*types.StaticRoute) error
// AddNeighbor adds a neighbor entry into the sandbox.
@ -67,25 +67,25 @@ type Sandbox interface {
// DeleteNeighbor deletes neighbor entry from the sandbox.
DeleteNeighbor(dstIP net.IP, dstMac net.HardwareAddr, osDelete bool) error
// Returns an interface with methods to set neighbor options.
// NeighborOptions returns an interface with methods to set neighbor options.
NeighborOptions() NeighborOptionSetter
// Returns an interface with methods to set interface options.
// InterfaceOptions an interface with methods to set interface options.
InterfaceOptions() IfaceOptionSetter
//Invoke
// InvokeFunc invoke a function in the network namespace.
InvokeFunc(func()) error
// Returns an interface with methods to get sandbox state.
// Info returns an interface with methods to get sandbox state.
Info() Info
// Destroy the sandbox
// Destroy destroys the sandbox.
Destroy() error
// restore sandbox
// Restore restores the sandbox.
Restore(ifsopt map[string][]IfaceOption, routes []*types.StaticRoute, gw net.IP, gw6 net.IP) error
// ApplyOSTweaks applies operating system specific knobs on the sandbox
// ApplyOSTweaks applies operating system specific knobs on the sandbox.
ApplyOSTweaks([]SandboxType)
}
@ -111,7 +111,7 @@ type IfaceOptionSetter interface {
// Address returns an option setter to set IPv4 address.
Address(*net.IPNet) IfaceOption
// Address returns an option setter to set IPv6 address.
// AddressIPv6 returns an option setter to set IPv6 address.
AddressIPv6(*net.IPNet) IfaceOption
// LinkLocalAddresses returns an option setter to set the link-local IP addresses.
@ -122,7 +122,7 @@ type IfaceOptionSetter interface {
// previously added interface of type bridge.
Master(string) IfaceOption
// Address returns an option setter to set interface routes.
// Routes returns an option setter to set interface routes.
Routes([]*net.IPNet) IfaceOption
}
@ -130,20 +130,21 @@ type IfaceOptionSetter interface {
// the driver wants to place in the sandbox which includes
// interfaces, routes and gateway
type Info interface {
// The collection of Interface previously added with the AddInterface
// Interfaces returns the collection of Interface previously added with the AddInterface
// method. Note that this doesn't include network interfaces added in any
// other way (such as the default loopback interface which is automatically
// created on creation of a sandbox).
Interfaces() []Interface
// IPv4 gateway for the sandbox.
// Gateway returns the IPv4 gateway for the sandbox.
Gateway() net.IP
// IPv6 gateway for the sandbox.
// GatewayIPv6 returns the IPv6 gateway for the sandbox.
GatewayIPv6() net.IP
// Additional static routes for the sandbox. (Note that directly
// connected routes are stored on the particular interface they refer to.)
// StaticRoutes returns additional static routes for the sandbox. Note that
// directly connected routes are stored on the particular interface they
// refer to.
StaticRoutes() []*types.StaticRoute
// TODO: Add ip tables etc.
@ -155,28 +156,29 @@ type Info interface {
// namespace to DstName in a different net namespace with the appropriate
// network settings.
type Interface interface {
// The name of the interface in the origin network namespace.
// SrcName returns the name of the interface in the origin network namespace.
SrcName() string
// The name that will be assigned to the interface once moves inside a
// network namespace. When the caller passes in a DstName, it is only
// expected to pass a prefix. The name will modified with an appropriately
// DstName returns the name that will be assigned to the interface once
// moved inside a network namespace. When the caller passes in a DstName,
// it is only expected to pass a prefix. The name will be modified with an
// auto-generated suffix.
DstName() string
// IPv4 address for the interface.
// Address returns the IPv4 address for the interface.
Address() *net.IPNet
// IPv6 address for the interface.
// AddressIPv6 returns the IPv6 address for the interface.
AddressIPv6() *net.IPNet
// LinkLocalAddresses returns the link-local IP addresses assigned to the interface.
// LinkLocalAddresses returns the link-local IP addresses assigned to the
// interface.
LinkLocalAddresses() []*net.IPNet
// IP routes for the interface.
// Routes returns IP routes for the interface.
Routes() []*net.IPNet
// Bridge returns true if the interface is a bridge
// Bridge returns true if the interface is a bridge.
Bridge() bool
// Master returns the srcname of the master interface for this interface.

View file

@ -795,7 +795,6 @@ func (sb *sandbox) restoreOslSandbox() error {
// restore osl sandbox
Ifaces := make(map[string][]osl.IfaceOption)
for _, ep := range sb.endpoints {
var ifaceOptions []osl.IfaceOption
ep.Lock()
joinInfo := ep.joinInfo
i := ep.iface
@ -806,7 +805,10 @@ func (sb *sandbox) restoreOslSandbox() error {
continue
}
ifaceOptions = append(ifaceOptions, sb.osSbox.InterfaceOptions().Address(i.addr), sb.osSbox.InterfaceOptions().Routes(i.routes))
ifaceOptions := []osl.IfaceOption{
sb.osSbox.InterfaceOptions().Address(i.addr),
sb.osSbox.InterfaceOptions().Routes(i.routes),
}
if i.addrv6 != nil && i.addrv6.IP.To16() != nil {
ifaceOptions = append(ifaceOptions, sb.osSbox.InterfaceOptions().AddressIPv6(i.addrv6))
}
@ -816,7 +818,7 @@ func (sb *sandbox) restoreOslSandbox() error {
if len(i.llAddrs) != 0 {
ifaceOptions = append(ifaceOptions, sb.osSbox.InterfaceOptions().LinkLocalAddresses(i.llAddrs))
}
Ifaces[fmt.Sprintf("%s+%s", i.srcName, i.dstPrefix)] = ifaceOptions
Ifaces[i.srcName+i.dstPrefix] = ifaceOptions
if joinInfo != nil {
routes = append(routes, joinInfo.StaticRoutes...)
}
@ -831,8 +833,7 @@ func (sb *sandbox) restoreOslSandbox() error {
}
// restore osl sandbox
err := sb.osSbox.Restore(Ifaces, routes, gwep.joinInfo.gw, gwep.joinInfo.gw6)
return err
return sb.osSbox.Restore(Ifaces, routes, gwep.joinInfo.gw, gwep.joinInfo.gw6)
}
func (sb *sandbox) populateNetworkResources(ep *endpoint) error {

View file

@ -20,8 +20,8 @@ import (
const (
defaultPrefix = "/var/lib/docker/network/files"
dirPerm = 0755
filePerm = 0644
dirPerm = 0o755
filePerm = 0o644
)
func (sb *sandbox) startResolver(restore bool) {
@ -332,7 +332,7 @@ func (sb *sandbox) updateDNS(ipv6Enabled bool) error {
if err != nil {
return err
}
err = os.WriteFile(sb.config.resolvConfPath, newRC.Content, 0644) //nolint:gosec // gosec complains about perms here, which must be 0644 in this case
err = os.WriteFile(sb.config.resolvConfPath, newRC.Content, filePerm)
if err != nil {
return err
}

View file

@ -9,27 +9,21 @@ import (
// Stub implementations for DNS related functions
func (sb *sandbox) startResolver(bool) {
}
func (sb *sandbox) startResolver(bool) {}
func (sb *sandbox) setupResolutionFiles() error {
return nil
}
func (sb *sandbox) restorePath() {
}
func (sb *sandbox) restorePath() {}
func (sb *sandbox) updateHostsFile(ifaceIP []string) error {
return nil
}
func (sb *sandbox) addHostsEntries(recs []etchosts.Record) {
func (sb *sandbox) addHostsEntries(recs []etchosts.Record) {}
}
func (sb *sandbox) deleteHostsEntries(recs []etchosts.Record) {
}
func (sb *sandbox) deleteHostsEntries(recs []etchosts.Record) {}
func (sb *sandbox) updateDNS(ipv6Enabled bool) error {
return nil