add basic support for 'all'

Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
Upstream-commit: 222a6f44016451dcbd2da0003e64521c06e88ba9
Component: engine
This commit is contained in:
Victor Vieux
2014-07-10 22:31:01 +00:00
parent 2032a7ad93
commit 669e2fe479
3 changed files with 48 additions and 7 deletions

View File

@ -1,17 +1,28 @@
package execdriver
import "github.com/dotcloud/docker/utils"
import (
"strings"
"github.com/docker/libcontainer/security/capabilities"
"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)
if !utils.StringsContainsNoCase(drops, "all") {
for _, cap := range basics {
if !utils.StringsContainsNoCase(drops, cap) {
caps = append(caps, cap)
}
}
}
for _, cap := range adds {
if !utils.StringsContains(caps, cap) {
if strings.ToLower(cap) == "all" {
caps = capabilities.GetAllCapabilities()
break
}
if !utils.StringsContainsNoCase(caps, cap) {
caps = append(caps, cap)
}
}