Browse Source

Merge pull request #46264 from thaJeztah/libnetwork_sandbox_split_options

libnetwork: move all SandboxOptions to a separate file
Sebastiaan van Stijn 1 year ago
parent
commit
8c3b14ee85
2 changed files with 173 additions and 167 deletions
  1. 0 167
      libnetwork/sandbox.go
  2. 173 0
      libnetwork/sandbox_options.go

+ 0 - 167
libnetwork/sandbox.go

@@ -12,7 +12,6 @@ import (
 
 	"github.com/containerd/containerd/log"
 	"github.com/docker/docker/libnetwork/etchosts"
-	"github.com/docker/docker/libnetwork/netlabel"
 	"github.com/docker/docker/libnetwork/osl"
 	"github.com/docker/docker/libnetwork/types"
 )
@@ -998,172 +997,6 @@ func (sb *Sandbox) joinLeaveEnd() {
 	}
 }
 
-// OptionHostname function returns an option setter for hostname option to
-// be passed to NewSandbox method.
-func OptionHostname(name string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.hostName = name
-	}
-}
-
-// OptionDomainname function returns an option setter for domainname option to
-// be passed to NewSandbox method.
-func OptionDomainname(name string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.domainName = name
-	}
-}
-
-// OptionHostsPath function returns an option setter for hostspath option to
-// be passed to NewSandbox method.
-func OptionHostsPath(path string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.hostsPath = path
-	}
-}
-
-// OptionOriginHostsPath function returns an option setter for origin hosts file path
-// to be passed to NewSandbox method.
-func OptionOriginHostsPath(path string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.originHostsPath = path
-	}
-}
-
-// OptionExtraHost function returns an option setter for extra /etc/hosts options
-// which is a name and IP as strings.
-func OptionExtraHost(name string, IP string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.extraHosts = append(sb.config.extraHosts, extraHost{name: name, IP: IP})
-	}
-}
-
-// OptionParentUpdate function returns an option setter for parent container
-// which needs to update the IP address for the linked container.
-func OptionParentUpdate(cid string, name, ip string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.parentUpdates = append(sb.config.parentUpdates, parentUpdate{cid: cid, name: name, ip: ip})
-	}
-}
-
-// OptionResolvConfPath function returns an option setter for resolvconfpath option to
-// be passed to net container methods.
-func OptionResolvConfPath(path string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.resolvConfPath = path
-	}
-}
-
-// OptionOriginResolvConfPath function returns an option setter to set the path to the
-// origin resolv.conf file to be passed to net container methods.
-func OptionOriginResolvConfPath(path string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.originResolvConfPath = path
-	}
-}
-
-// OptionDNS function returns an option setter for dns entry option to
-// be passed to container Create method.
-func OptionDNS(dns []string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.dnsList = dns
-	}
-}
-
-// OptionDNSSearch function returns an option setter for dns search entry option to
-// be passed to container Create method.
-func OptionDNSSearch(search []string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.dnsSearchList = search
-	}
-}
-
-// OptionDNSOptions function returns an option setter for dns options entry option to
-// be passed to container Create method.
-func OptionDNSOptions(options []string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.dnsOptionsList = options
-	}
-}
-
-// OptionUseDefaultSandbox function returns an option setter for using default sandbox
-// (host namespace) to be passed to container Create method.
-func OptionUseDefaultSandbox() SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.useDefaultSandBox = true
-	}
-}
-
-// OptionUseExternalKey function returns an option setter for using provided namespace
-// instead of creating one.
-func OptionUseExternalKey() SandboxOption {
-	return func(sb *Sandbox) {
-		sb.config.useExternalKey = true
-	}
-}
-
-// OptionGeneric function returns an option setter for Generic configuration
-// that is not managed by libNetwork but can be used by the Drivers during the call to
-// net container creation method. Container Labels are a good example.
-func OptionGeneric(generic map[string]interface{}) SandboxOption {
-	return func(sb *Sandbox) {
-		if sb.config.generic == nil {
-			sb.config.generic = make(map[string]interface{}, len(generic))
-		}
-		for k, v := range generic {
-			sb.config.generic[k] = v
-		}
-	}
-}
-
-// OptionExposedPorts function returns an option setter for the container exposed
-// ports option to be passed to container Create method.
-func OptionExposedPorts(exposedPorts []types.TransportPort) SandboxOption {
-	return func(sb *Sandbox) {
-		if sb.config.generic == nil {
-			sb.config.generic = make(map[string]interface{})
-		}
-		// Defensive copy
-		eps := make([]types.TransportPort, len(exposedPorts))
-		copy(eps, exposedPorts)
-		// Store endpoint label and in generic because driver needs it
-		sb.config.exposedPorts = eps
-		sb.config.generic[netlabel.ExposedPorts] = eps
-	}
-}
-
-// OptionPortMapping function returns an option setter for the mapping
-// ports option to be passed to container Create method.
-func OptionPortMapping(portBindings []types.PortBinding) SandboxOption {
-	return func(sb *Sandbox) {
-		if sb.config.generic == nil {
-			sb.config.generic = make(map[string]interface{})
-		}
-		// Store a copy of the bindings as generic data to pass to the driver
-		pbs := make([]types.PortBinding, len(portBindings))
-		copy(pbs, portBindings)
-		sb.config.generic[netlabel.PortMap] = pbs
-	}
-}
-
-// OptionIngress function returns an option setter for marking a
-// sandbox as the controller's ingress sandbox.
-func OptionIngress() SandboxOption {
-	return func(sb *Sandbox) {
-		sb.ingress = true
-		sb.oslTypes = append(sb.oslTypes, osl.SandboxTypeIngress)
-	}
-}
-
-// OptionLoadBalancer function returns an option setter for marking a
-// sandbox as a load balancer sandbox.
-func OptionLoadBalancer(nid string) SandboxOption {
-	return func(sb *Sandbox) {
-		sb.loadBalancerNID = nid
-		sb.oslTypes = append(sb.oslTypes, osl.SandboxTypeLoadBalancer)
-	}
-}
-
 // <=> Returns true if a < b, false if a > b and advances to next level if a == b
 // epi.prio <=> epj.prio           # 2 < 1
 // epi.gw <=> epj.gw               # non-gw < gw

+ 173 - 0
libnetwork/sandbox_options.go

@@ -0,0 +1,173 @@
+package libnetwork
+
+import (
+	"github.com/docker/docker/libnetwork/netlabel"
+	"github.com/docker/docker/libnetwork/osl"
+	"github.com/docker/docker/libnetwork/types"
+)
+
+// OptionHostname function returns an option setter for hostname option to
+// be passed to NewSandbox method.
+func OptionHostname(name string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.hostName = name
+	}
+}
+
+// OptionDomainname function returns an option setter for domainname option to
+// be passed to NewSandbox method.
+func OptionDomainname(name string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.domainName = name
+	}
+}
+
+// OptionHostsPath function returns an option setter for hostspath option to
+// be passed to NewSandbox method.
+func OptionHostsPath(path string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.hostsPath = path
+	}
+}
+
+// OptionOriginHostsPath function returns an option setter for origin hosts file path
+// to be passed to NewSandbox method.
+func OptionOriginHostsPath(path string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.originHostsPath = path
+	}
+}
+
+// OptionExtraHost function returns an option setter for extra /etc/hosts options
+// which is a name and IP as strings.
+func OptionExtraHost(name string, IP string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.extraHosts = append(sb.config.extraHosts, extraHost{name: name, IP: IP})
+	}
+}
+
+// OptionParentUpdate function returns an option setter for parent container
+// which needs to update the IP address for the linked container.
+func OptionParentUpdate(cid string, name, ip string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.parentUpdates = append(sb.config.parentUpdates, parentUpdate{cid: cid, name: name, ip: ip})
+	}
+}
+
+// OptionResolvConfPath function returns an option setter for resolvconfpath option to
+// be passed to net container methods.
+func OptionResolvConfPath(path string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.resolvConfPath = path
+	}
+}
+
+// OptionOriginResolvConfPath function returns an option setter to set the path to the
+// origin resolv.conf file to be passed to net container methods.
+func OptionOriginResolvConfPath(path string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.originResolvConfPath = path
+	}
+}
+
+// OptionDNS function returns an option setter for dns entry option to
+// be passed to container Create method.
+func OptionDNS(dns []string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.dnsList = dns
+	}
+}
+
+// OptionDNSSearch function returns an option setter for dns search entry option to
+// be passed to container Create method.
+func OptionDNSSearch(search []string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.dnsSearchList = search
+	}
+}
+
+// OptionDNSOptions function returns an option setter for dns options entry option to
+// be passed to container Create method.
+func OptionDNSOptions(options []string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.dnsOptionsList = options
+	}
+}
+
+// OptionUseDefaultSandbox function returns an option setter for using default sandbox
+// (host namespace) to be passed to container Create method.
+func OptionUseDefaultSandbox() SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.useDefaultSandBox = true
+	}
+}
+
+// OptionUseExternalKey function returns an option setter for using provided namespace
+// instead of creating one.
+func OptionUseExternalKey() SandboxOption {
+	return func(sb *Sandbox) {
+		sb.config.useExternalKey = true
+	}
+}
+
+// OptionGeneric function returns an option setter for Generic configuration
+// that is not managed by libNetwork but can be used by the Drivers during the call to
+// net container creation method. Container Labels are a good example.
+func OptionGeneric(generic map[string]interface{}) SandboxOption {
+	return func(sb *Sandbox) {
+		if sb.config.generic == nil {
+			sb.config.generic = make(map[string]interface{}, len(generic))
+		}
+		for k, v := range generic {
+			sb.config.generic[k] = v
+		}
+	}
+}
+
+// OptionExposedPorts function returns an option setter for the container exposed
+// ports option to be passed to container Create method.
+func OptionExposedPorts(exposedPorts []types.TransportPort) SandboxOption {
+	return func(sb *Sandbox) {
+		if sb.config.generic == nil {
+			sb.config.generic = make(map[string]interface{})
+		}
+		// Defensive copy
+		eps := make([]types.TransportPort, len(exposedPorts))
+		copy(eps, exposedPorts)
+		// Store endpoint label and in generic because driver needs it
+		sb.config.exposedPorts = eps
+		sb.config.generic[netlabel.ExposedPorts] = eps
+	}
+}
+
+// OptionPortMapping function returns an option setter for the mapping
+// ports option to be passed to container Create method.
+func OptionPortMapping(portBindings []types.PortBinding) SandboxOption {
+	return func(sb *Sandbox) {
+		if sb.config.generic == nil {
+			sb.config.generic = make(map[string]interface{})
+		}
+		// Store a copy of the bindings as generic data to pass to the driver
+		pbs := make([]types.PortBinding, len(portBindings))
+		copy(pbs, portBindings)
+		sb.config.generic[netlabel.PortMap] = pbs
+	}
+}
+
+// OptionIngress function returns an option setter for marking a
+// sandbox as the controller's ingress sandbox.
+func OptionIngress() SandboxOption {
+	return func(sb *Sandbox) {
+		sb.ingress = true
+		sb.oslTypes = append(sb.oslTypes, osl.SandboxTypeIngress)
+	}
+}
+
+// OptionLoadBalancer function returns an option setter for marking a
+// sandbox as a load balancer sandbox.
+func OptionLoadBalancer(nid string) SandboxOption {
+	return func(sb *Sandbox) {
+		sb.loadBalancerNID = nid
+		sb.oslTypes = append(sb.oslTypes, osl.SandboxTypeLoadBalancer)
+	}
+}