mirror of https://github.com/containers/podman.git
				
				
				
			varlink info
The varlinfo info returns the same information as podman info but always includes the so-called debug information. Signed-off-by: baude <bbaude@redhat.com> Closes: #745 Approved by: baude
This commit is contained in:
		
							parent
							
								
									f97de48be4
								
							
						
					
					
						commit
						834f1f641e
					
				
							
								
								
									
										91
									
								
								API.md
								
								
								
								
							
							
						
						
									
										91
									
								
								API.md
								
								
								
								
							|  | @ -33,6 +33,8 @@ in the [API.md](https://github.com/projectatomic/libpod/blob/master/API.md) file | ||||||
| 
 | 
 | ||||||
| [func ImportImage(source: string, reference: string, message: string, changes: []string) string](#ImportImage) | [func ImportImage(source: string, reference: string, message: string, changes: []string) string](#ImportImage) | ||||||
| 
 | 
 | ||||||
|  | [func Info() PodmanInfo](#Info) | ||||||
|  | 
 | ||||||
| [func InspectContainer(name: string) string](#InspectContainer) | [func InspectContainer(name: string) string](#InspectContainer) | ||||||
| 
 | 
 | ||||||
| [func InspectImage(name: string) string](#InspectImage) | [func InspectImage(name: string) string](#InspectImage) | ||||||
|  | @ -94,10 +96,20 @@ in the [API.md](https://github.com/projectatomic/libpod/blob/master/API.md) file | ||||||
| 
 | 
 | ||||||
| [type ImageSearch](#ImageSearch) | [type ImageSearch](#ImageSearch) | ||||||
| 
 | 
 | ||||||
|  | [type InfoGraphStatus](#InfoGraphStatus) | ||||||
|  | 
 | ||||||
|  | [type InfoHost](#InfoHost) | ||||||
|  | 
 | ||||||
|  | [type InfoPodmanBinary](#InfoPodmanBinary) | ||||||
|  | 
 | ||||||
|  | [type InfoStore](#InfoStore) | ||||||
|  | 
 | ||||||
| [type ListContainerData](#ListContainerData) | [type ListContainerData](#ListContainerData) | ||||||
| 
 | 
 | ||||||
| [type NotImplemented](#NotImplemented) | [type NotImplemented](#NotImplemented) | ||||||
| 
 | 
 | ||||||
|  | [type PodmanInfo](#PodmanInfo) | ||||||
|  | 
 | ||||||
| [type StringResponse](#StringResponse) | [type StringResponse](#StringResponse) | ||||||
| 
 | 
 | ||||||
| [type Version](#Version) | [type Version](#Version) | ||||||
|  | @ -225,6 +237,12 @@ history is in the form of an array of ImageHistory structures.  If the image can | ||||||
| method ImportImage(source: [string](https://godoc.org/builtin#string), reference: [string](https://godoc.org/builtin#string), message: [string](https://godoc.org/builtin#string), changes: [[]string](#[]string)) [string](https://godoc.org/builtin#string)</div> | method ImportImage(source: [string](https://godoc.org/builtin#string), reference: [string](https://godoc.org/builtin#string), message: [string](https://godoc.org/builtin#string), changes: [[]string](#[]string)) [string](https://godoc.org/builtin#string)</div> | ||||||
| ImportImage imports an image from a source (like tarball) into local storage.  The image can have additional | ImportImage imports an image from a source (like tarball) into local storage.  The image can have additional | ||||||
| descriptions added to it using the message and changes options. See also [ExportImage](ExportImage). | descriptions added to it using the message and changes options. See also [ExportImage](ExportImage). | ||||||
|  | ### <a name="Info"></a>func Info | ||||||
|  | <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> | ||||||
|  | 
 | ||||||
|  | method Info() [PodmanInfo](#PodmanInfo)</div> | ||||||
|  | Info returns a [PodmanInfo](#PodmanInfo) struct that describes podman and its host such as storage stats, | ||||||
|  | build information of Podman, and system-wide registries. | ||||||
| ### <a name="InspectContainer"></a>func InspectContainer | ### <a name="InspectContainer"></a>func InspectContainer | ||||||
| <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> | <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> | ||||||
| 
 | 
 | ||||||
|  | @ -555,6 +573,66 @@ is_automated [bool](https://godoc.org/builtin#bool) | ||||||
| name [string](https://godoc.org/builtin#string) | name [string](https://godoc.org/builtin#string) | ||||||
| 
 | 
 | ||||||
| star_count [int](https://godoc.org/builtin#int) | star_count [int](https://godoc.org/builtin#int) | ||||||
|  | ### <a name="InfoGraphStatus"></a>type InfoGraphStatus | ||||||
|  | 
 | ||||||
|  | InfoGraphStatus describes the detailed status of the graphc | ||||||
|  | 
 | ||||||
|  | backing_filesystem [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | native_overlay_diff [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | supports_d_type [string](https://godoc.org/builtin#string) | ||||||
|  | ### <a name="InfoHost"></a>type InfoHost | ||||||
|  | 
 | ||||||
|  | InfoHost describes the host stats portion of PodmanInfo | ||||||
|  | 
 | ||||||
|  | mem_free [int](https://godoc.org/builtin#int) | ||||||
|  | 
 | ||||||
|  | mem_total [int](https://godoc.org/builtin#int) | ||||||
|  | 
 | ||||||
|  | swap_free [int](https://godoc.org/builtin#int) | ||||||
|  | 
 | ||||||
|  | swap_total [int](https://godoc.org/builtin#int) | ||||||
|  | 
 | ||||||
|  | arch [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | cpus [int](https://godoc.org/builtin#int) | ||||||
|  | 
 | ||||||
|  | hostname [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | kernel [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | os [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | uptime [string](https://godoc.org/builtin#string) | ||||||
|  | ### <a name="InfoPodmanBinary"></a>type InfoPodmanBinary | ||||||
|  | 
 | ||||||
|  | InfoPodman provides details on the podman binary | ||||||
|  | 
 | ||||||
|  | compiler [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | go_version [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | podman_version [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | git_commit [string](https://godoc.org/builtin#string) | ||||||
|  | ### <a name="InfoStore"></a>type InfoStore | ||||||
|  | 
 | ||||||
|  | InfoStore describes the host's storage informatoin | ||||||
|  | 
 | ||||||
|  | containers [int](https://godoc.org/builtin#int) | ||||||
|  | 
 | ||||||
|  | images [int](https://godoc.org/builtin#int) | ||||||
|  | 
 | ||||||
|  | graph_driver_name [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | graph_driver_options [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | graph_root [string](https://godoc.org/builtin#string) | ||||||
|  | 
 | ||||||
|  | graph_status [InfoGraphStatus](#InfoGraphStatus) | ||||||
|  | 
 | ||||||
|  | run_root [string](https://godoc.org/builtin#string) | ||||||
| ### <a name="ListContainerData"></a>type ListContainerData | ### <a name="ListContainerData"></a>type ListContainerData | ||||||
| 
 | 
 | ||||||
| ListContainer is the returned struct for an individual container | ListContainer is the returned struct for an individual container | ||||||
|  | @ -593,6 +671,19 @@ namespaces [ContainerNameSpace](#ContainerNameSpace) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| comment [string](https://godoc.org/builtin#string) | comment [string](https://godoc.org/builtin#string) | ||||||
|  | ### <a name="PodmanInfo"></a>type PodmanInfo | ||||||
|  | 
 | ||||||
|  | PodmanInfo describes the Podman host and build | ||||||
|  | 
 | ||||||
|  | host [InfoHost](#InfoHost) | ||||||
|  | 
 | ||||||
|  | registries [[]string](#[]string) | ||||||
|  | 
 | ||||||
|  | insecure_registries [[]string](#[]string) | ||||||
|  | 
 | ||||||
|  | store [InfoStore](#InfoStore) | ||||||
|  | 
 | ||||||
|  | podman [InfoPodmanBinary](#InfoPodmanBinary) | ||||||
| ### <a name="StringResponse"></a>type StringResponse | ### <a name="StringResponse"></a>type StringResponse | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -124,6 +124,55 @@ type ContainerNameSpace ( | ||||||
|     ipc: string |     ipc: string | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | # InfoHost describes the host stats portion of PodmanInfo | ||||||
|  | type InfoHost ( | ||||||
|  |     mem_free: int, | ||||||
|  |     mem_total: int, | ||||||
|  |     swap_free: int, | ||||||
|  |     swap_total: int, | ||||||
|  |     arch: string, | ||||||
|  |     cpus: int, | ||||||
|  |     hostname: string, | ||||||
|  |     kernel: string, | ||||||
|  |     os: string, | ||||||
|  |     uptime: string | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | # InfoGraphStatus describes the detailed status of the graph | ||||||
|  | type InfoGraphStatus ( | ||||||
|  |     backing_filesystem: string, | ||||||
|  |     native_overlay_diff: string, | ||||||
|  |     supports_d_type: string | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | # InfoStore describes the host's storage informatoin | ||||||
|  | type InfoStore ( | ||||||
|  |     containers: int, | ||||||
|  |     images: int, | ||||||
|  |     graph_driver_name: string, | ||||||
|  |     graph_driver_options: string, | ||||||
|  |     graph_root: string, | ||||||
|  |     graph_status: InfoGraphStatus, | ||||||
|  |     run_root: string | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | # InfoPodman provides details on the podman binary | ||||||
|  | type InfoPodmanBinary ( | ||||||
|  |     compiler: string, | ||||||
|  |     go_version: string, | ||||||
|  |     podman_version: string, | ||||||
|  |     git_commit: string | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | # PodmanInfo describes the Podman host and build | ||||||
|  | type PodmanInfo ( | ||||||
|  |     host: InfoHost, | ||||||
|  |     registries: []string, | ||||||
|  |     insecure_registries: []string, | ||||||
|  |     store: InfoStore, | ||||||
|  |     podman: InfoPodmanBinary | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| # Ping provides a response for developers to ensure their varlink setup is working. | # Ping provides a response for developers to ensure their varlink setup is working. | ||||||
| # #### Example | # #### Example | ||||||
| # ~~~ | # ~~~ | ||||||
|  | @ -140,6 +189,9 @@ method Ping() -> (ping: StringResponse) | ||||||
| # system. | # system. | ||||||
| method GetVersion() -> (version: Version) | method GetVersion() -> (version: Version) | ||||||
| 
 | 
 | ||||||
|  | # GetInfo returns a [PodmanInfo](#PodmanInfo) struct that describes podman and its host such as storage stats, | ||||||
|  | # build information of Podman, and system-wide registries. | ||||||
|  | method GetInfo() -> (info: PodmanInfo) | ||||||
| 
 | 
 | ||||||
| # ListContainers returns a list of containers in no particular order.  There are | # ListContainers returns a list of containers in no particular order.  There are | ||||||
| # returned as an array of ListContainerData structs.  See also [GetContainer](#GetContainer). | # returned as an array of ListContainerData structs.  See also [GetContainer](#GetContainer). | ||||||
|  |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -1,6 +1,10 @@ | ||||||
| package varlinkapi | package varlinkapi | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	goruntime "runtime" | ||||||
|  | 	"strings" | ||||||
|  | 
 | ||||||
|  | 	"github.com/projectatomic/libpod/cmd/podman/libpodruntime" | ||||||
| 	"github.com/projectatomic/libpod/cmd/podman/varlink" | 	"github.com/projectatomic/libpod/cmd/podman/varlink" | ||||||
| 	"github.com/projectatomic/libpod/libpod" | 	"github.com/projectatomic/libpod/libpod" | ||||||
| ) | ) | ||||||
|  | @ -28,3 +32,56 @@ func (i *LibpodAPI) Ping(call ioprojectatomicpodman.VarlinkCall) error { | ||||||
| 		Message: "OK", | 		Message: "OK", | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GetInfo returns details about the podman host and its stores
 | ||||||
|  | func (i *LibpodAPI) GetInfo(call ioprojectatomicpodman.VarlinkCall) error { | ||||||
|  | 	podmanInfo := ioprojectatomicpodman.PodmanInfo{} | ||||||
|  | 	runtime, err := libpodruntime.GetRuntime(i.Cli) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return call.ReplyRuntimeError(err.Error()) | ||||||
|  | 	} | ||||||
|  | 	info, err := runtime.Info() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return call.ReplyErrorOccurred(err.Error()) | ||||||
|  | 	} | ||||||
|  | 	host := info[0].Data | ||||||
|  | 	infoHost := ioprojectatomicpodman.InfoHost{ | ||||||
|  | 		Mem_free:  host["MemFree"].(int64), | ||||||
|  | 		Mem_total: host["MemTotal"].(int64), | ||||||
|  | 		Swap_free: host["SwapFree"].(int64), | ||||||
|  | 		Arch:      host["arch"].(string), | ||||||
|  | 		Cpus:      int64(host["cpus"].(int)), | ||||||
|  | 		Hostname:  host["hostname"].(string), | ||||||
|  | 		Kernel:    host["kernel"].(string), | ||||||
|  | 		Os:        host["os"].(string), | ||||||
|  | 		Uptime:    host["uptime"].(string), | ||||||
|  | 	} | ||||||
|  | 	podmanInfo.Host = infoHost | ||||||
|  | 	store := info[1].Data | ||||||
|  | 	pmaninfo := ioprojectatomicpodman.InfoPodmanBinary{ | ||||||
|  | 		Compiler:   goruntime.Compiler, | ||||||
|  | 		Go_version: goruntime.Version(), | ||||||
|  | 		// TODO : How are we going to get this here?
 | ||||||
|  | 		//Podman_version:
 | ||||||
|  | 		Git_commit: libpod.GitCommit, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	graphStatus := ioprojectatomicpodman.InfoGraphStatus{ | ||||||
|  | 		Backing_filesystem:  store["GraphStatus"].(map[string]string)["Backing Filesystem"], | ||||||
|  | 		Native_overlay_diff: store["GraphStatus"].(map[string]string)["Native Overlay Diff"], | ||||||
|  | 		Supports_d_type:     store["GraphStatus"].(map[string]string)["Supports d_type"], | ||||||
|  | 	} | ||||||
|  | 	infoStore := ioprojectatomicpodman.InfoStore{ | ||||||
|  | 		Graph_driver_name:    store["GraphDriverName"].(string), | ||||||
|  | 		Containers:           int64(store["ContainerStore"].(map[string]interface{})["number"].(int)), | ||||||
|  | 		Images:               int64(store["ImageStore"].(map[string]interface{})["number"].(int)), | ||||||
|  | 		Run_root:             store["RunRoot"].(string), | ||||||
|  | 		Graph_root:           store["GraphRoot"].(string), | ||||||
|  | 		Graph_driver_options: strings.Join(store["GraphOptions"].([]string), ", "), | ||||||
|  | 		Graph_status:         graphStatus, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	podmanInfo.Store = infoStore | ||||||
|  | 	podmanInfo.Podman = pmaninfo | ||||||
|  | 	return call.ReplyGetInfo(podmanInfo) | ||||||
|  | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue