server: abstract out linux capability per platform

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
Vincent Batts 2018-01-24 05:19:18 -05:00
parent d6966951d6
commit 4d88008a65
3 changed files with 24 additions and 4 deletions

View File

@ -11,7 +11,6 @@ import (
"github.com/kubernetes-incubator/cri-o/lib/sandbox"
"github.com/kubernetes-incubator/cri-o/server/metrics"
"github.com/opencontainers/image-spec/specs-go/v1"
"github.com/opencontainers/runtime-tools/validate"
"github.com/syndtr/gocapability/capability"
pb "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2"
)
@ -179,11 +178,11 @@ func inStringSlice(ss []string, str string) bool {
// getOCICapabilitiesList returns a list of all available capabilities.
func getOCICapabilitiesList() []string {
var caps []string
for _, cap := range capability.List() {
if cap > validate.LastCap() {
for _, c := range capability.List() {
if c > lastCapability() {
continue
}
caps = append(caps, "CAP_"+strings.ToUpper(cap.String()))
caps = append(caps, "CAP_"+strings.ToUpper(c.String()))
}
return caps
}

12
server/utils_linux.go Normal file
View File

@ -0,0 +1,12 @@
// +build linux
package server
import (
"github.com/opencontainers/runtime-tools/validate"
"github.com/syndtr/gocapability/capability"
)
func lastCapability() capability.Cap {
return validate.LastCap()
}

View File

@ -0,0 +1,9 @@
// +build !linux
package server
import "github.com/syndtr/gocapability/capability"
func lastCapability() capability.Cap {
return capability.Cap(-1)
}