Show "seccomp" in docker info (#20909).

This pull request added a `SecurityOptions` field in the `GET /info`
output to show if there is `apparmor`, `seccomp`, or `selinux` suport.

The API changes are updated in the documentation and the update in
`GET /info` is covered by the test case in `TestInfoApi`.

This pull request fixes #20909.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 190654aa2ee880c2052c0887a215b85d24049f6d
Component: engine
This commit is contained in:
Yong Tang
2016-03-30 09:23:15 +00:00
parent 9eb1caaca3
commit c287a54185
4 changed files with 20 additions and 1 deletions
+12
View File
@@ -67,6 +67,17 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) {
}
})
var securityOptions []string
if sysInfo.AppArmor {
securityOptions = append(securityOptions, "apparmor")
}
if sysInfo.Seccomp {
securityOptions = append(securityOptions, "seccomp")
}
if selinuxEnabled() {
securityOptions = append(securityOptions, "selinux")
}
v := &types.Info{
ID: daemon.ID,
Containers: int(cRunning + cPaused + cStopped),
@@ -104,6 +115,7 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) {
HTTPProxy: sockets.GetProxyEnv("http_proxy"),
HTTPSProxy: sockets.GetProxyEnv("https_proxy"),
NoProxy: sockets.GetProxyEnv("no_proxy"),
SecurityOptions: securityOptions,
}
// TODO Windows. Refactor this more once sysinfo is refactored into
@@ -117,6 +117,7 @@ This section lists each version from latest to oldest. Each listing includes a
[Docker Remote API v1.24](docker_remote_api_v1.24.md) documentation
* `POST /containers/create` now takes `StorageOpt` field.
* `GET /info` now returns `SecurityOptions` field, showing if `apparmor`, `seccomp`, or `selinux` is supported.
### v1.23 API changes
@@ -2239,6 +2239,11 @@ Display system-wide information
"127.0.0.0/8"
]
},
"SecurityOptions": [
"apparmor",
"seccomp",
"selinux"
],
"ServerVersion": "1.9.0",
"SwapLimit": false,
"SystemStatus": [["State", "Healthy"]],
@@ -31,7 +31,8 @@ func (s *DockerSuite) TestInfoApi(c *check.C) {
"MemTotal",
"KernelVersion",
"Driver",
"ServerVersion"}
"ServerVersion",
"SecurityOptions"}
out := string(body)
for _, linePrefix := range stringsToCheck {