mirror of
https://github.com/containers/podman.git
synced 2025-07-15 03:02:52 +08:00
Fix podman-remote info to show registry data
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
15
API.md
15
API.md
@ -235,6 +235,8 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in
|
||||
|
||||
[type InfoPodmanBinary](#InfoPodmanBinary)
|
||||
|
||||
[type InfoRegistry](#InfoRegistry)
|
||||
|
||||
[type InfoStore](#InfoStore)
|
||||
|
||||
[type KubePodService](#KubePodService)
|
||||
@ -1840,6 +1842,15 @@ 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="InfoRegistry"></a>type InfoRegistry
|
||||
|
||||
InfoRegistry describes the host's registry information
|
||||
|
||||
search [[]string](#[]string)
|
||||
|
||||
insecure [[]string](#[]string)
|
||||
|
||||
blocked [[]string](#[]string)
|
||||
### <a name="InfoStore"></a>type InfoStore
|
||||
|
||||
InfoStore describes the host's storage informatoin
|
||||
@ -1952,9 +1963,7 @@ PodmanInfo describes the Podman host and build
|
||||
|
||||
host [InfoHost](#InfoHost)
|
||||
|
||||
registries [[]string](#[]string)
|
||||
|
||||
insecure_registries [[]string](#[]string)
|
||||
registries [InfoRegistry](#InfoRegistry)
|
||||
|
||||
store [InfoStore](#InfoStore)
|
||||
|
||||
|
@ -245,6 +245,13 @@ type InfoGraphStatus (
|
||||
supports_d_type: string
|
||||
)
|
||||
|
||||
# InfoRegistry describes the host's registry information
|
||||
type InfoRegistry (
|
||||
search: []string,
|
||||
insecure: []string,
|
||||
blocked: []string
|
||||
)
|
||||
|
||||
# InfoStore describes the host's storage informatoin
|
||||
type InfoStore (
|
||||
containers: int,
|
||||
@ -267,8 +274,7 @@ type InfoPodmanBinary (
|
||||
# PodmanInfo describes the Podman host and build
|
||||
type PodmanInfo (
|
||||
host: InfoHost,
|
||||
registries: []string,
|
||||
insecure_registries: []string,
|
||||
registries: InfoRegistry,
|
||||
store: InfoStore,
|
||||
podman: InfoPodmanBinary
|
||||
)
|
||||
|
@ -14,12 +14,11 @@ func (r RemoteRuntime) Info() ([]define.InfoData, error) {
|
||||
// TODO the varlink implementation for info should be updated to match the output for regular info
|
||||
var (
|
||||
reply []define.InfoData
|
||||
regInfo map[string]interface{}
|
||||
hostInfo map[string]interface{}
|
||||
store map[string]interface{}
|
||||
)
|
||||
|
||||
registries := make(map[string]interface{})
|
||||
insecureRegistries := make(map[string]interface{})
|
||||
info, err := iopodman.GetInfo().Call(r.Conn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -39,13 +38,16 @@ func (r RemoteRuntime) Info() ([]define.InfoData, error) {
|
||||
}
|
||||
json.Unmarshal(s, &store)
|
||||
|
||||
registries["registries"] = info.Registries
|
||||
insecureRegistries["registries"] = info.Insecure_registries
|
||||
// info.Registries -> map[string]interface{}
|
||||
reg, err := json.Marshal(info.Registries)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
json.Unmarshal(reg, ®Info)
|
||||
|
||||
// Add everything to the reply
|
||||
reply = append(reply, define.InfoData{Type: "host", Data: hostInfo})
|
||||
reply = append(reply, define.InfoData{Type: "registries", Data: registries})
|
||||
reply = append(reply, define.InfoData{Type: "insecure registries", Data: insecureRegistries})
|
||||
reply = append(reply, define.InfoData{Type: "registries", Data: regInfo})
|
||||
reply = append(reply, define.InfoData{Type: "store", Data: store})
|
||||
return reply, nil
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import (
|
||||
goruntime "runtime"
|
||||
"time"
|
||||
|
||||
"github.com/containers/image/v5/pkg/sysregistriesv2"
|
||||
"github.com/containers/libpod/cmd/podman/varlink"
|
||||
"github.com/containers/libpod/libpod/define"
|
||||
"github.com/sirupsen/logrus"
|
||||
@ -37,9 +38,6 @@ func (i *LibpodAPI) GetInfo(call iopodman.VarlinkCall) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var (
|
||||
registries, insecureRegistries []string
|
||||
)
|
||||
podmanInfo := iopodman.PodmanInfo{}
|
||||
info, err := i.Runtime.Info()
|
||||
if err != nil {
|
||||
@ -90,22 +88,25 @@ func (i *LibpodAPI) GetInfo(call iopodman.VarlinkCall) error {
|
||||
Graph_status: graphStatus,
|
||||
}
|
||||
|
||||
// Registry information if any is stored as the second list item
|
||||
if len(info) > 2 {
|
||||
registriesInterface := info[2].Data["registries"]
|
||||
if registriesInterface != nil {
|
||||
registries = registriesInterface.([]string)
|
||||
}
|
||||
}
|
||||
if len(info) > 3 {
|
||||
insecureRegistriesInterface := info[3].Data["registries"]
|
||||
if insecureRegistriesInterface != nil {
|
||||
insecureRegistries = insecureRegistriesInterface.([]string)
|
||||
for key, val := range info[2].Data {
|
||||
if key == "search" {
|
||||
podmanInfo.Registries.Search = val.([]string)
|
||||
continue
|
||||
}
|
||||
regData := val.(sysregistriesv2.Registry)
|
||||
if regData.Insecure {
|
||||
podmanInfo.Registries.Insecure = append(podmanInfo.Registries.Insecure, key)
|
||||
}
|
||||
if regData.Blocked {
|
||||
podmanInfo.Registries.Blocked = append(podmanInfo.Registries.Blocked, key)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
podmanInfo.Store = infoStore
|
||||
podmanInfo.Podman = pmaninfo
|
||||
podmanInfo.Registries = registries
|
||||
podmanInfo.Insecure_registries = insecureRegistries
|
||||
return call.ReplyGetInfo(podmanInfo)
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
// +build !remoteclient
|
||||
|
||||
package integration
|
||||
|
||||
import (
|
||||
|
Reference in New Issue
Block a user