Browse Source

small refactoring

Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
Victor Vieux 11 years ago
parent
commit
f3ff323fb3

+ 1 - 13
daemon/execdriver/lxc/lxc_init_linux.go

@@ -13,7 +13,6 @@ import (
 	"github.com/dotcloud/docker/daemon/execdriver"
 	"github.com/dotcloud/docker/daemon/execdriver/native/template"
 	"github.com/dotcloud/docker/pkg/system"
-	utils2 "github.com/dotcloud/docker/utils"
 )
 
 func setHostname(hostname string) error {
@@ -50,18 +49,7 @@ func finalizeNamespace(args *execdriver.InitArgs) error {
 			return fmt.Errorf("clear keep caps %s", err)
 		}
 
-		var caps []string
-		for _, cap := range container.Capabilities {
-			if !utils2.StringsContains(strings.Split(args.CapDrop, " "), cap) {
-				caps = append(caps, cap)
-			}
-		}
-
-		for _, cap := range strings.Split(args.CapAdd, " ") {
-			if !utils2.StringsContains(caps, cap) {
-				caps = append(caps, cap)
-			}
-		}
+		caps := execdriver.TweakCapabilities(container.Capabilities, strings.Split(args.CapAdd, " "), strings.Split(args.CapDrop, " "))
 
 		// drop all other capabilities
 		if err := capabilities.DropCapabilities(caps); err != nil {

+ 1 - 15
daemon/execdriver/native/create.go

@@ -14,7 +14,6 @@ import (
 	"github.com/dotcloud/docker/daemon/execdriver"
 	"github.com/dotcloud/docker/daemon/execdriver/native/configuration"
 	"github.com/dotcloud/docker/daemon/execdriver/native/template"
-	"github.com/dotcloud/docker/utils"
 )
 
 // createContainer populates and configures the container type with the
@@ -140,20 +139,7 @@ func (d *driver) setPrivileged(container *libcontainer.Config) (err error) {
 }
 
 func (d *driver) setCapabilities(container *libcontainer.Config, c *execdriver.Command) {
-	var caps []string
-	for _, cap := range container.Capabilities {
-		if !utils.StringsContains(c.CapDrop, cap) {
-			caps = append(caps, cap)
-		}
-	}
-
-	for _, cap := range c.CapAdd {
-		if !utils.StringsContains(caps, cap) {
-			caps = append(caps, cap)
-		}
-	}
-
-	container.Capabilities = caps
+	container.Capabilities = execdriver.TweakCapabilities(container.Capabilities, c.CapAdd, c.CapDrop)
 }
 
 func (d *driver) setupCgroups(container *libcontainer.Config, c *execdriver.Command) error {

+ 19 - 0
daemon/execdriver/utils.go

@@ -0,0 +1,19 @@
+package execdriver
+
+import "github.com/dotcloud/docker/utils"
+
+func TweakCapabilities(basics, adds, drops []string) []string {
+	var caps []string
+	for _, cap := range basics {
+		if !utils.StringsContains(drops, cap) {
+			caps = append(caps, cap)
+		}
+	}
+
+	for _, cap := range adds {
+		if !utils.StringsContains(caps, cap) {
+			caps = append(caps, cap)
+		}
+	}
+	return caps
+}