mirror of https://github.com/containers/podman.git
Merge pull request #24781 from ashley-cui/builtfor
Add BuildOrigin field to podman info
This commit is contained in:
commit
39becc2f05
1
Makefile
1
Makefile
|
|
@ -119,6 +119,7 @@ GOFLAGS ?= -trimpath
|
|||
LDFLAGS_PODMAN ?= \
|
||||
$(if $(GIT_COMMIT),-X $(LIBPOD)/define.gitCommit=$(GIT_COMMIT),) \
|
||||
$(if $(BUILD_INFO),-X $(LIBPOD)/define.buildInfo=$(BUILD_INFO),) \
|
||||
$(if $(BUILD_ORIGIN),-X $(LIBPOD)/define.buildOrigin=$(BUILD_ORIGIN),) \
|
||||
-X $(LIBPOD)/config._installPrefix=$(PREFIX) \
|
||||
-X $(LIBPOD)/config._etcDir=$(ETCDIR) \
|
||||
-X $(PROJECT)/v5/pkg/systemd/quadlet._binDir=$(BINDIR) \
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@ package main
|
|||
import "github.com/containers/podman/v5/libpod/define"
|
||||
|
||||
type clientInfo struct {
|
||||
OSArch string `json:"OS"`
|
||||
Provider string `json:"provider"`
|
||||
Version string `json:"version"`
|
||||
OSArch string `json:"OS"`
|
||||
Provider string `json:"provider"`
|
||||
Version string `json:"version"`
|
||||
BuildOrigin string `json:"buildOrigin,omitempty" yaml:",omitempty"`
|
||||
}
|
||||
|
||||
func getClientInfo() (*clientInfo, error) {
|
||||
|
|
@ -18,8 +19,9 @@ func getClientInfo() (*clientInfo, error) {
|
|||
return nil, err
|
||||
}
|
||||
return &clientInfo{
|
||||
OSArch: vinfo.OsArch,
|
||||
Provider: p,
|
||||
Version: vinfo.Version,
|
||||
OSArch: vinfo.OsArch,
|
||||
Provider: p,
|
||||
Version: vinfo.Version,
|
||||
BuildOrigin: vinfo.BuildOrigin,
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,11 @@ var (
|
|||
debug bool
|
||||
)
|
||||
|
||||
type infoReport struct {
|
||||
define.Info
|
||||
Client *define.Version `json:",omitempty" yaml:",omitempty"`
|
||||
}
|
||||
|
||||
func init() {
|
||||
registry.Commands = append(registry.Commands, registry.CliCommand{
|
||||
Command: infoCommand,
|
||||
|
|
@ -74,12 +79,21 @@ func info(cmd *cobra.Command, args []string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
remote := registry.IsRemote()
|
||||
info.Host.ServiceIsRemote = remote
|
||||
|
||||
info.Host.ServiceIsRemote = registry.IsRemote()
|
||||
infoReport := infoReport{
|
||||
Info: *info,
|
||||
}
|
||||
|
||||
if remote {
|
||||
clientVers, _ := define.GetVersion()
|
||||
infoReport.Client = &clientVers
|
||||
}
|
||||
|
||||
switch {
|
||||
case report.IsJSON(inFormat):
|
||||
b, err := json.MarshalIndent(info, "", " ")
|
||||
b, err := json.MarshalIndent(infoReport, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -94,9 +108,9 @@ func info(cmd *cobra.Command, args []string) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return rpt.Execute(info)
|
||||
return rpt.Execute(infoReport)
|
||||
default:
|
||||
b, err := yaml.Marshal(info)
|
||||
b, err := yaml.Marshal(infoReport)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ API Version:\t{{.APIVersion}}
|
|||
Go Version:\t{{.GoVersion}}
|
||||
{{if .GitCommit -}}Git Commit:\t{{.GitCommit}}\n{{end -}}
|
||||
Built:\t{{.BuiltTime}}
|
||||
{{if .BuildOrigin -}}Build Origin:\t{{.BuildOrigin}}\n{{end -}}
|
||||
OS/Arch:\t{{.OsArch}}
|
||||
{{- end}}
|
||||
|
||||
|
|
@ -108,6 +109,7 @@ API Version:\t{{.APIVersion}}
|
|||
Go Version:\t{{.GoVersion}}
|
||||
{{if .GitCommit -}}Git Commit:\t{{.GitCommit}}\n{{end -}}
|
||||
Built:\t{{.BuiltTime}}
|
||||
{{if .BuildOrigin -}}Build Origin:\t{{.BuildOrigin}}\n{{end -}}
|
||||
OS/Arch:\t{{.OsArch}}
|
||||
{{- end}}{{- end}}
|
||||
`
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ PRODUCTSIGN_IDENTITY=${PRODUCTSIGN_IDENTITY:-mock}
|
|||
NO_CODESIGN=${NO_CODESIGN:-0}
|
||||
HELPER_BINARIES_DIR="/opt/podman/bin"
|
||||
MACHINE_POLICY_JSON_DIR="/opt/podman/config"
|
||||
BUILD_ORIGIN="pkginstaller"
|
||||
|
||||
tmpBin="contrib/pkginstaller/tmp-bin"
|
||||
|
||||
|
|
@ -47,7 +48,7 @@ function build_podman() {
|
|||
}
|
||||
|
||||
function build_podman_arch(){
|
||||
make -B GOARCH="$1" podman-remote HELPER_BINARIES_DIR="${HELPER_BINARIES_DIR}"
|
||||
make -B GOARCH="$1" podman-remote HELPER_BINARIES_DIR="${HELPER_BINARIES_DIR}" BUILD_ORIGIN="${BUILD_ORIGIN}"
|
||||
make -B GOARCH="$1" podman-mac-helper
|
||||
mkdir -p "${tmpBin}"
|
||||
cp bin/darwin/podman "${tmpBin}/podman-$1"
|
||||
|
|
|
|||
|
|
@ -16,18 +16,22 @@ var (
|
|||
// BuildInfo is the time at which the binary was built
|
||||
// It will be populated by the Makefile.
|
||||
buildInfo string
|
||||
// BuildOrigin is the packager of the binary.
|
||||
// It will be populated at build-time.
|
||||
buildOrigin string
|
||||
)
|
||||
|
||||
// Version is an output struct for API
|
||||
type Version struct {
|
||||
APIVersion string
|
||||
Version string
|
||||
GoVersion string
|
||||
GitCommit string
|
||||
BuiltTime string
|
||||
Built int64
|
||||
OsArch string
|
||||
Os string
|
||||
APIVersion string
|
||||
Version string
|
||||
GoVersion string
|
||||
GitCommit string
|
||||
BuiltTime string
|
||||
Built int64
|
||||
BuildOrigin string `json:",omitempty" yaml:",omitempty"`
|
||||
OsArch string
|
||||
Os string
|
||||
}
|
||||
|
||||
// GetVersion returns a VersionOutput struct for API and podman
|
||||
|
|
@ -43,13 +47,14 @@ func GetVersion() (Version, error) {
|
|||
}
|
||||
}
|
||||
return Version{
|
||||
APIVersion: version.APIVersion[version.Libpod][version.CurrentAPI].String(),
|
||||
Version: version.Version.String(),
|
||||
GoVersion: runtime.Version(),
|
||||
GitCommit: gitCommit,
|
||||
BuiltTime: time.Unix(buildTime, 0).Format(time.ANSIC),
|
||||
Built: buildTime,
|
||||
OsArch: runtime.GOOS + "/" + runtime.GOARCH,
|
||||
Os: runtime.GOOS,
|
||||
APIVersion: version.APIVersion[version.Libpod][version.CurrentAPI].String(),
|
||||
Version: version.Version.String(),
|
||||
GoVersion: runtime.Version(),
|
||||
GitCommit: gitCommit,
|
||||
BuiltTime: time.Unix(buildTime, 0).Format(time.ANSIC),
|
||||
Built: buildTime,
|
||||
BuildOrigin: buildOrigin,
|
||||
OsArch: runtime.GOOS + "/" + runtime.GOARCH,
|
||||
Os: runtime.GOOS,
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -291,4 +291,16 @@ var _ = Describe("Podman Info", func() {
|
|||
Expect(info).ToNot(ExitCleanly())
|
||||
podmanTest.StartRemoteService() // Start service again so teardown runs clean
|
||||
})
|
||||
|
||||
It("Podman info: check client information", func() {
|
||||
info := podmanTest.Podman([]string{"info", "--format", "{{ .Client }}"})
|
||||
info.WaitWithDefaultTimeout()
|
||||
Expect(info).To(ExitCleanly())
|
||||
// client info should only appear when using the remote client
|
||||
if IsRemote() {
|
||||
Expect(info.OutputToString()).ToNot(Equal("<nil>"))
|
||||
} else {
|
||||
Expect(info.OutputToString()).To(Equal("<nil>"))
|
||||
}
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in New Issue