From 659dc7843c560c9386fbc3e54ad860c3f2ef2940 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Mon, 19 Apr 2021 08:46:37 -0400 Subject: podman-remote should show podman.sock info Currently podman-remote info does not show socket information. Fixes: https://github.com/containers/podman/issues/10077 Signed-off-by: Daniel J Walsh --- pkg/api/handlers/libpod/info.go | 4 +++- pkg/domain/infra/abi/system.go | 10 ++-------- pkg/util/utils.go | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 9 deletions(-) (limited to 'pkg') diff --git a/pkg/api/handlers/libpod/info.go b/pkg/api/handlers/libpod/info.go index 546609451..8868d563d 100644 --- a/pkg/api/handlers/libpod/info.go +++ b/pkg/api/handlers/libpod/info.go @@ -5,11 +5,13 @@ import ( "github.com/containers/podman/v3/libpod" "github.com/containers/podman/v3/pkg/api/handlers/utils" + "github.com/containers/podman/v3/pkg/domain/infra/abi" ) func GetInfo(w http.ResponseWriter, r *http.Request) { runtime := r.Context().Value("runtime").(*libpod.Runtime) - info, err := runtime.Info() + containerEngine := abi.ContainerEngine{Libpod: runtime} + info, err := containerEngine.Info(r.Context()) if err != nil { utils.InternalServerError(w, err) return diff --git a/pkg/domain/infra/abi/system.go b/pkg/domain/infra/abi/system.go index f87f9e370..6319c1ab1 100644 --- a/pkg/domain/infra/abi/system.go +++ b/pkg/domain/infra/abi/system.go @@ -32,17 +32,11 @@ func (ic *ContainerEngine) Info(ctx context.Context) (*define.Info, error) { if err != nil { return nil, err } - xdg, err := util.GetRuntimeDir() + + socketPath, err := util.SocketPath() 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, diff --git a/pkg/util/utils.go b/pkg/util/utils.go index bbaf72981..622fbde99 100644 --- a/pkg/util/utils.go +++ b/pkg/util/utils.go @@ -706,3 +706,26 @@ func IDtoolsToRuntimeSpec(idMaps []idtools.IDMap) (convertedIDMap []specs.LinuxI } return convertedIDMap } + +var socketPath string + +func SetSocketPath(path string) { + socketPath = path +} + +func SocketPath() (string, error) { + if socketPath != "" { + return socketPath, nil + } + xdg, err := GetRuntimeDir() + if err != nil { + return "", err + } + if len(xdg) == 0 { + // If no xdg is returned, assume root socket + xdg = "/run" + } + + // Glue the socket path together + return filepath.Join(xdg, "podman", "podman.sock"), nil +} -- cgit v1.2.3-54-g00ecf