From 2032a7ad932b4f1a71268d77bbb36852494dd66f Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 10 Jul 2014 22:11:35 +0000 Subject: [PATCH] small refactoring Docker-DCO-1.1-Signed-off-by: Victor Vieux (github: vieux) Upstream-commit: f3ff323fb364495617de3e43f2d09a145a4f2ee3 Component: engine --- .../daemon/execdriver/lxc/lxc_init_linux.go | 14 +------------- .../engine/daemon/execdriver/native/create.go | 16 +--------------- components/engine/daemon/execdriver/utils.go | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 28 deletions(-) create mode 100644 components/engine/daemon/execdriver/utils.go diff --git a/components/engine/daemon/execdriver/lxc/lxc_init_linux.go b/components/engine/daemon/execdriver/lxc/lxc_init_linux.go index 6d636efb06..0117b9dbef 100644 --- a/components/engine/daemon/execdriver/lxc/lxc_init_linux.go +++ b/components/engine/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 { diff --git a/components/engine/daemon/execdriver/native/create.go b/components/engine/daemon/execdriver/native/create.go index bfcc078834..b735151eb5 100644 --- a/components/engine/daemon/execdriver/native/create.go +++ b/components/engine/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 { diff --git a/components/engine/daemon/execdriver/utils.go b/components/engine/daemon/execdriver/utils.go new file mode 100644 index 0000000000..7ca12a596b --- /dev/null +++ b/components/engine/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 +}