From d202e010af95b79230e5aaf88eb04168e73fac95 Mon Sep 17 00:00:00 2001 From: Jhon Honce Date: Wed, 8 May 2019 10:32:28 -0700 Subject: Add information when running podman version on client * Include service version information and headers Signed-off-by: Jhon Honce --- pkg/adapter/runtime.go | 8 +++++++- pkg/adapter/runtime_remote.go | 37 ++++++++++++++++++++++++++++++++----- 2 files changed, 39 insertions(+), 6 deletions(-) (limited to 'pkg') diff --git a/pkg/adapter/runtime.go b/pkg/adapter/runtime.go index 0d840d65b..21613c425 100644 --- a/pkg/adapter/runtime.go +++ b/pkg/adapter/runtime.go @@ -5,12 +5,13 @@ package adapter import ( "bufio" "context" - "github.com/containers/libpod/cmd/podman/shared" "io" "io/ioutil" "os" "text/template" + "github.com/containers/libpod/cmd/podman/shared" + "github.com/containers/buildah" "github.com/containers/buildah/imagebuildah" "github.com/containers/buildah/pkg/parse" @@ -392,3 +393,8 @@ func (r *LocalRuntime) GetPodsByStatus(statuses []string) ([]*libpod.Pod, error) return pods, nil } + +// GetVersion is an alias to satisfy interface{} +func (r *LocalRuntime) GetVersion() (libpod.Version, error) { + return libpod.GetVersion() +} diff --git a/pkg/adapter/runtime_remote.go b/pkg/adapter/runtime_remote.go index 4986d16f7..34c3b2a6c 100644 --- a/pkg/adapter/runtime_remote.go +++ b/pkg/adapter/runtime_remote.go @@ -9,12 +9,13 @@ import ( "fmt" "io" "io/ioutil" - v1 "k8s.io/api/core/v1" "os" "strings" "text/template" "time" + v1 "k8s.io/api/core/v1" + "github.com/containers/buildah/imagebuildah" "github.com/containers/image/docker/reference" "github.com/containers/image/types" @@ -414,19 +415,19 @@ func (r *LocalRuntime) Build(ctx context.Context, c *cliconfig.BuildValues, opti Compression: string(options.Compression), DefaultsMountFilePath: options.DefaultMountsFilePath, Dockerfiles: dockerfiles, - //Err: string(options.Err), + // Err: string(options.Err), ForceRmIntermediateCtrs: options.ForceRmIntermediateCtrs, Iidfile: options.IIDFile, Label: options.Labels, Layers: options.Layers, Nocache: options.NoCache, - //Out: + // Out: Output: options.Output, OutputFormat: options.OutputFormat, PullPolicy: options.PullPolicy.String(), Quiet: options.Quiet, RemoteIntermediateCtrs: options.RemoveIntermediateCtrs, - //ReportWriter: + // ReportWriter: RuntimeArgs: options.RuntimeArgs, SignaturePolicyPath: options.SignaturePolicyPath, Squash: options.Squash, @@ -610,7 +611,7 @@ func (r *LocalRuntime) InspectVolumes(ctx context.Context, c *cliconfig.VolumeIn return varlinkVolumeToVolume(r, reply), nil } -//Volumes returns a slice of adapter.volumes based on information about libpod +// Volumes returns a slice of adapter.volumes based on information about libpod // volumes over a varlink connection func (r *LocalRuntime) Volumes(ctx context.Context) ([]*Volume, error) { reply, err := iopodman.GetVolumes().Call(r.Conn, []string{}, true) @@ -906,3 +907,29 @@ func (r *LocalRuntime) GetContainersByContext(all bool, latest bool, namesOrIDs } return containers, nil } + +// GetVersion returns version information from service +func (r *LocalRuntime) GetVersion() (libpod.Version, error) { + version, goVersion, gitCommit, built, osArch, apiVersion, err := iopodman.GetVersion().Call(r.Conn) + if err != nil { + return libpod.Version{}, errors.Wrapf(err, "Unable to obtain server version information") + } + + var buildTime int64 + if built != "" { + t, err := time.Parse(time.RFC3339, built) + if err != nil { + return libpod.Version{}, nil + } + buildTime = t.Unix() + } + + return libpod.Version{ + RemoteAPIVersion: apiVersion, + Version: version, + GoVersion: goVersion, + GitCommit: gitCommit, + Built: buildTime, + OsArch: osArch, + }, nil +} -- cgit v1.2.3-54-g00ecf