Merge pull request #6486 from baude/v2infoaddsocket

add socket information to podman info
This commit is contained in:
OpenShift Merge Robot 2020-06-04 14:43:52 +02:00 committed by GitHub
commit 9d138724ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 46 additions and 1 deletions

View File

@ -71,6 +71,9 @@ host:
commit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
spec: 1.0.1-dev
os: linux
remoteSocket:
exists: false
path: /run/user/1000/podman/podman.sock
rootless: true
slirp4netns:
executable: /bin/slirp4netns
@ -179,6 +182,10 @@ Run podman info with JSON formatted response:
"version": "runc version 1.0.0-rc8+dev\ncommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657\nspec: 1.0.1-dev"
},
"os": "linux",
"remoteSocket": {
"path": "/run/user/1000/podman/podman.sock",
"exists": false
},
"rootless": true,
"slirp4netns": {
"executable": "/bin/slirp4netns",

View File

@ -27,6 +27,7 @@ type HostInfo struct {
MemTotal int64 `json:"memTotal"`
OCIRuntime *OCIRuntimeInfo `json:"ociRuntime"`
OS string `json:"os"`
RemoteSocket *RemoteSocket `json:"remoteSocket,omitempty"`
Rootless bool `json:"rootless"`
RuntimeInfo map[string]interface{} `json:"runtimeInfo,omitempty"`
Slirp4NetNS SlirpInfo `json:"slirp4netns,omitempty"`
@ -36,6 +37,12 @@ type HostInfo struct {
Linkmode string `json:"linkmode"`
}
// RemoteSocket describes information about the API socket
type RemoteSocket struct {
Path string `json:"path,omitempty"`
Exists bool `json:"exists,omitempty"`
}
// SlirpInfo describes the slirp exectuable that
// is being being used.
type SlirpInfo struct {

View File

@ -25,7 +25,38 @@ import (
)
func (ic *ContainerEngine) Info(ctx context.Context) (*define.Info, error) {
return ic.Libpod.Info()
info, err := ic.Libpod.Info()
if err != nil {
return nil, err
}
xdg, err := util.GetRuntimeDir()
if err != nil {
return nil, err
}
if len(xdg) == 0 {
// If no xdg is returned, assume root socket
xdg = "/run"
}
// Glue the socket path together
socketPath := filepath.Join(xdg, "podman", "podman.sock")
rs := define.RemoteSocket{
Path: socketPath,
Exists: false,
}
// Check if the socket exists
if fi, err := os.Stat(socketPath); err == nil {
if fi.Mode()&os.ModeSocket != 0 {
rs.Exists = true
}
}
// TODO
// it was suggested future versions of this could perform
// a ping on the socket for greater confidence the socket is
// actually active.
info.Host.RemoteSocket = &rs
return info, err
}
func (ic *ContainerEngine) SetupRootless(_ context.Context, cmd *cobra.Command) error {