diff options
Diffstat (limited to 'cmd/podman/info.go')
-rw-r--r-- | cmd/podman/info.go | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/cmd/podman/info.go b/cmd/podman/info.go deleted file mode 100644 index 79417b85d..000000000 --- a/cmd/podman/info.go +++ /dev/null @@ -1,146 +0,0 @@ -package main - -import ( - "fmt" - "html/template" - "os" - 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/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 { - runtime, err := adapter.GetRuntime(getContext(), &c.PodmanCommand) - if err != nil { - return errors.Wrapf(err, "could not get runtime") - } - defer runtime.DeferredShutdown(false) - - i, err := runtime.Info() - if err != nil { - return errors.Wrapf(err, "error getting info") - } - - info := infoWithExtra{Info: i} - if runtime.Remote { - endpoint, err := runtime.RemoteEndpoint() - if err != nil { - return err - } - info.Remote = getRemote(endpoint) - } - - if !runtime.Remote && c.Debug { - d, err := getDebug() - if err != nil { - return err - } - info.Debug = d - } - - 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: - tmpl, err := template.New("info").Parse(c.Format) - if err != nil { - return err - } - err = tmpl.Execute(os.Stdout, info) - return err - } - - return out.Out() -} - -// top-level "debug" info -func getDebug() (*debugInfo, error) { - v, err := define.GetVersion() - if err != nil { - return nil, err - } - return &debugInfo{ - Compiler: rt.Compiler, - GoVersion: rt.Version(), - PodmanVersion: v.Version, - GitCommit: v.GitCommit, - }, nil -} - -func getRemote(endpoint *adapter.Endpoint) *remoteInfo { - return &remoteInfo{ - Connection: endpoint.Connection, - ConnectionType: endpoint.Type.String(), - RemoteAPIVersion: string(version.RemoteAPIVersion), - PodmanVersion: version.Version, - OSArch: fmt.Sprintf("%s/%s", rt.GOOS, rt.GOARCH), - } -} - -type infoWithExtra struct { - *define.Info - Remote *remoteInfo `json:"remote,omitempty"` - Debug *debugInfo `json:"debug,omitempty"` -} - -type remoteInfo struct { - Connection string `json:"connection"` - ConnectionType string `json:"connectionType"` - RemoteAPIVersion string `json:"remoteAPIVersion"` - PodmanVersion string `json:"podmanVersion"` - OSArch string `json:"OSArch"` -} - -type debugInfo struct { - Compiler string `json:"compiler"` - GoVersion string `json:"goVersion"` - PodmanVersion string `json:"podmanVersion"` - GitCommit string `json:"gitCommit"` -} |