diff options
Diffstat (limited to 'cmd/podman/info.go')
-rw-r--r-- | cmd/podman/info.go | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/cmd/podman/info.go b/cmd/podman/info.go deleted file mode 100644 index 7361525ce..000000000 --- a/cmd/podman/info.go +++ /dev/null @@ -1,116 +0,0 @@ -package main - -import ( - "fmt" - rt "runtime" - "strings" - - "github.com/containers/buildah/pkg/formats" - "github.com/containers/libpod/cmd/podman/cliconfig" - "github.com/containers/libpod/libpod/define" - "github.com/containers/libpod/pkg/adapter" - "github.com/containers/libpod/version" - "github.com/pkg/errors" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" -) - -var ( - infoCommand cliconfig.InfoValues - - infoDescription = `Display information pertaining to the host, current storage stats, and build of podman. - - Useful for the user and when reporting issues. -` - _infoCommand = &cobra.Command{ - Use: "info", - Args: noSubArgs, - Long: infoDescription, - Short: "Display podman system information", - RunE: func(cmd *cobra.Command, args []string) error { - infoCommand.InputArgs = args - infoCommand.GlobalFlags = MainGlobalOpts - infoCommand.Remote = remoteclient - return infoCmd(&infoCommand) - }, - Example: `podman info`, - } -) - -func init() { - infoCommand.Command = _infoCommand - infoCommand.SetHelpTemplate(HelpTemplate()) - infoCommand.SetUsageTemplate(UsageTemplate()) - flags := infoCommand.Flags() - - flags.BoolVarP(&infoCommand.Debug, "debug", "D", false, "Display additional debug information") - flags.StringVarP(&infoCommand.Format, "format", "f", "", "Change the output format to JSON or a Go template") - -} - -func infoCmd(c *cliconfig.InfoValues) error { - info := map[string]interface{}{} - remoteClientInfo := map[string]interface{}{} - - runtime, err := adapter.GetRuntime(getContext(), &c.PodmanCommand) - if err != nil { - return errors.Wrapf(err, "could not get runtime") - } - defer runtime.DeferredShutdown(false) - - infoArr, err := runtime.Info() - if err != nil { - return errors.Wrapf(err, "error getting info") - } - - if runtime.Remote { - endpoint, err := runtime.RemoteEndpoint() - if err != nil { - logrus.Errorf("Failed to obtain server connection: %s", err.Error()) - } else { - remoteClientInfo["Connection"] = endpoint.Connection - remoteClientInfo["Connection Type"] = endpoint.Type.String() - } - - remoteClientInfo["RemoteAPI Version"] = version.RemoteAPIVersion - remoteClientInfo["Podman Version"] = version.Version - remoteClientInfo["OS Arch"] = fmt.Sprintf("%s/%s", rt.GOOS, rt.GOARCH) - infoArr = append(infoArr, define.InfoData{Type: "client", Data: remoteClientInfo}) - } - - if !runtime.Remote && c.Debug { - debugInfo := debugInfo(c) - infoArr = append(infoArr, define.InfoData{Type: "debug", Data: debugInfo}) - } - - for _, currInfo := range infoArr { - info[currInfo.Type] = currInfo.Data - } - - var out formats.Writer - infoOutputFormat := c.Format - if strings.Join(strings.Fields(infoOutputFormat), "") == "{{json.}}" { - infoOutputFormat = formats.JSONString - } - switch infoOutputFormat { - case formats.JSONString: - out = formats.JSONStruct{Output: info} - case "": - out = formats.YAMLStruct{Output: info} - default: - out = formats.StdoutTemplate{Output: info, Template: infoOutputFormat} - } - - return out.Out() -} - -// top-level "debug" info -func debugInfo(c *cliconfig.InfoValues) map[string]interface{} { - info := map[string]interface{}{} - info["compiler"] = rt.Compiler - info["go version"] = rt.Version() - info["podman version"] = version.Version - version, _ := define.GetVersion() - info["git commit"] = version.GitCommit - return info -} |