@@ -3,6 +3,9 @@ package main
33import (
44 "context"
55 "fmt"
6+ "os"
7+
8+ "github.com/alibaba/pouch/apis/types"
69
710 "github.com/spf13/cobra"
811)
@@ -47,44 +50,108 @@ func (v *InfoCommand) runInfo() error {
4750 return fmt .Errorf ("failed to get system info: %v" , err )
4851 }
4952
50- v .cli .Print (result )
53+ return prettyPrintInfo (v .cli , result )
54+ }
55+
56+ func prettyPrintInfo (cli * Cli , info * types.SystemInfo ) error {
57+ fmt .Fprintln (os .Stdout , "Containers:" , info .Containers )
58+ fmt .Fprintln (os .Stdout , "Running:" , info .ContainersRunning )
59+ fmt .Fprintln (os .Stdout , "Paused:" , info .ContainersPaused )
60+ fmt .Fprintln (os .Stdout , "Stopped:" , info .ContainersStopped )
61+ fmt .Fprintln (os .Stdout , "Images: " , info .Images )
62+ fmt .Fprintln (os .Stdout , "ID:" , info .ID )
63+ fmt .Fprintln (os .Stdout , "Name:" , info .Name )
64+ fmt .Fprintln (os .Stdout , "Server Version:" , info .ServerVersion )
65+ fmt .Fprintln (os .Stdout , "Storage Driver:" , info .Driver )
66+ fmt .Fprintln (os .Stdout , "Driver Status:" , info .DriverStatus )
67+ fmt .Fprintln (os .Stdout , "Logging Driver:" , info .LoggingDriver )
68+ fmt .Fprintln (os .Stdout , "Cgroup Driver:" , info .CgroupDriver )
69+ if len (info .Runtimes ) > 0 {
70+ fmt .Fprintln (os .Stdout , "Runtimes:" )
71+ for name := range info .Runtimes {
72+ fmt .Fprintf (os .Stdout , "%s" , name )
73+ }
74+ fmt .Fprint (os .Stdout , "\n " )
75+ fmt .Fprintln (os .Stdout , "Default Runtime:" , info .DefaultRuntime )
76+ }
77+ fmt .Fprintln (os .Stdout , "runc:" , info .RuncCommit )
78+ fmt .Fprintln (os .Stdout , "containerd:" , info .ContainerdCommit )
79+
80+ // Kernel info
81+ fmt .Fprintln (os .Stdout , "Security Options:" , info .SecurityOptions )
82+ fmt .Fprintln (os .Stdout , "Kernel Version:" , info .KernelVersion )
83+ fmt .Fprintln (os .Stdout , "Operating System:" , info .OperatingSystem )
84+ fmt .Fprintln (os .Stdout , "OSType:" , info .OSType )
85+ fmt .Fprintln (os .Stdout , "Architecture:" , info .Architecture )
86+
87+ fmt .Fprintln (os .Stdout , "HTTP Proxy:" , info .HTTPProxy )
88+ fmt .Fprintln (os .Stdout , "HTTPS Proxy:" , info .HTTPSProxy )
89+ fmt .Fprintln (os .Stdout , "Registry:" , info .IndexServerAddress )
90+ fmt .Fprintln (os .Stdout , "Experimental:" , info .ExperimentalBuild )
91+ fmt .Fprintln (os .Stdout , "Debug:" , info .Debug )
92+ fmt .Fprintln (os .Stdout , "Labels:" , info .Labels )
93+
94+ fmt .Fprintln (os .Stdout , "CPUs:" , info .NCPU )
95+ fmt .Fprintln (os .Stdout , "Total Memory:" , info .MemTotal )
96+ fmt .Fprintln (os .Stdout , "Pouch Root Dir:" , info .PouchRootDir )
97+ fmt .Fprintln (os .Stdout , "LiveRestoreEnabled:" , info .LiveRestoreEnabled )
98+ if info .RegistryConfig != nil && (len (info .RegistryConfig .InsecureRegistryCIDRs ) > 0 || len (info .RegistryConfig .IndexConfigs ) > 0 ) {
99+ fmt .Fprintln (os .Stdout , "Insecure Registries:" )
100+ for _ , registry := range info .RegistryConfig .IndexConfigs {
101+ if ! registry .Secure {
102+ fmt .Fprintln (os .Stdout , " " + registry .Name )
103+ }
104+ }
105+
106+ for _ , registry := range info .RegistryConfig .InsecureRegistryCIDRs {
107+ fmt .Fprintf (os .Stdout , " %s\n " , registry )
108+ }
109+ }
110+
111+ if info .RegistryConfig != nil && len (info .RegistryConfig .Mirrors ) > 0 {
112+ fmt .Fprintln (os .Stdout , "Registry Mirrors:" )
113+ for _ , mirror := range info .RegistryConfig .Mirrors {
114+ fmt .Fprintln (os .Stdout , " " + mirror )
115+ }
116+ }
117+
118+ fmt .Fprintln (os .Stdout , "Daemon Listen Addresses:" , info .ListenAddresses )
119+
51120 return nil
52121}
53122
54123// infoExample shows examples in info command, and is used in auto-generated cli docs.
55124func infoExample () string {
56125 return `$ pouch info
126+ Containers: 1
127+ Running: 1
128+ Paused: 0
129+ Stopped: 0
130+ Images: 0
57131ID:
58132Name:
59- OperatingSystem:
60- PouchRootDir: /var/lib/pouch
61- ServerVersion: 0.3-dev
62- ContainersRunning: 0
63- Debug: false
64- DriverStatus: []
65- Labels: []
66- Containers: 0
67- DefaultRuntime: runc
68- Driver:
69- ExperimentalBuild: false
70- KernelVersion: 3.10.0-693.11.6.el7.x86_64
71- OSType: linux
72- CgroupDriver:
73- ContainerdCommit: <nil>
74- ContainersPaused: 0
75- LoggingDriver:
76- SecurityOptions: []
77- NCPU: 0
78- RegistryConfig: <nil>
79- RuncCommit: <nil>
80- ContainersStopped: 0
81- HTTPSProxy:
82- IndexServerAddress: https://index.docker.io/v1/
83- LiveRestoreEnabled: false
84- Runtimes: map[]
133+ Server Version: 0.3-dev
134+ Storage Driver:
135+ Driver Status: []
136+ Logging Driver:
137+ Cgroup Driver:
138+ runc: <nil>
139+ containerd: <nil>
140+ Security Options: []
141+ Kernel Version: 3.10.0-693.17.1.el7.x86_64
142+ Operating System:
143+ OSType: linux
85144Architecture:
86- HTTPProxy:
87- Images: 0
88- MemTotal: 0
145+ HTTP Proxy:
146+ HTTPS Proxy:
147+ Registry: https://index.docker.io/v1/
148+ Experimental: false
149+ Debug: true
150+ Labels: []
151+ CPUs: 0
152+ Total Memory: 0
153+ Pouch Root Dir: /var/lib/pouch
154+ LiveRestoreEnabled: false
155+ Daemon Listen Addresses: [unix:///var/run/pouchd.sock]
89156`
90157}
0 commit comments