varlink: Return all times in RFC 3339 format

This is more consistent and eaiser to parse than the format that
golang's time.String() returns.

Fixes #2260

Signed-off-by: Lars Karlitski <lars@karlitski.net>
This commit is contained in:
Lars Karlitski
2019-02-04 18:56:41 +01:00
parent 38e42476cb
commit 29392b77e9
5 changed files with 13 additions and 19 deletions

View File

@ -8,7 +8,7 @@ type Version (
version: string,
go_version: string,
git_commit: string,
built: int,
built: string, # as RFC3339
os_arch: string,
remote_api_version: int
)
@ -40,7 +40,7 @@ type ImageInList (
parentId: string,
repoTags: []string,
repoDigests: []string,
created: string,
created: string, # as RFC3339
size: int,
virtualSize: int,
containers: int,
@ -51,7 +51,7 @@ type ImageInList (
# ImageHistory describes the returned structure from ImageHistory.
type ImageHistory (
id: string,
created: string,
created: string, # as RFC3339
createdBy: string,
tags: []string,
size: int,
@ -74,7 +74,7 @@ type ListContainerData (
image: string,
imageid: string,
command: []string,
createdat: string,
createdat: string, # as RFC3339
runningfor: string,
status: string,
ports: []ContainerPortMappings,

View File

@ -6,7 +6,6 @@ import (
"bufio"
"context"
"encoding/json"
"fmt"
"github.com/pkg/errors"
"io"
"os"
@ -113,7 +112,7 @@ func (r *LocalRuntime) GetImages() ([]*ContainerImage, error) {
}
func imageInListToContainerImage(i iopodman.ImageInList, name string, runtime *LocalRuntime) (*ContainerImage, error) {
created, err := splitStringDate(i.Created)
created, err := time.ParseInLocation(time.RFC3339, i.Created, time.UTC)
if err != nil {
return nil, err
}
@ -182,12 +181,6 @@ func (r *LocalRuntime) New(ctx context.Context, name, signaturePolicyPath, authf
return newImage, nil
}
func splitStringDate(d string) (time.Time, error) {
fields := strings.Fields(d)
t := fmt.Sprintf("%sT%sZ", fields[0], fields[1])
return time.ParseInLocation(time.RFC3339Nano, t, time.UTC)
}
// IsParent goes through the layers in the store and checks if i.TopLayer is
// the parent of any other layer in store. Double check that image with that
// layer exists as well.
@ -251,7 +244,7 @@ func (ci *ContainerImage) History(ctx context.Context) ([]*image.History, error)
return nil, err
}
for _, h := range reply {
created, err := splitStringDate(h.Created)
created, err := time.ParseInLocation(time.RFC3339, h.Created, time.UTC)
if err != nil {
return nil, err
}

View File

@ -57,7 +57,7 @@ func (i *LibpodAPI) ListImages(call iopodman.VarlinkCall) error {
ParentId: image.Parent,
RepoTags: image.Names(),
RepoDigests: repoDigests,
Created: image.Created().String(),
Created: image.Created().Format(time.RFC3339),
Size: int64(*size),
VirtualSize: image.VirtualSize,
Containers: int64(len(containers)),
@ -97,7 +97,7 @@ func (i *LibpodAPI) GetImage(call iopodman.VarlinkCall, name string) error {
ParentId: newImage.Parent,
RepoTags: newImage.Names(),
RepoDigests: repoDigests,
Created: newImage.Created().String(),
Created: newImage.Created().Format(time.RFC3339),
Size: int64(*size),
VirtualSize: newImage.VirtualSize,
Containers: int64(len(containers)),
@ -309,7 +309,7 @@ func (i *LibpodAPI) HistoryImage(call iopodman.VarlinkCall, name string) error {
for _, hist := range history {
imageHistory := iopodman.ImageHistory{
Id: hist.ID,
Created: hist.Created.String(),
Created: hist.Created.Format(time.RFC3339),
CreatedBy: hist.CreatedBy,
Tags: newImage.Names(),
Size: hist.Size,

View File

@ -3,6 +3,7 @@ package varlinkapi
import (
goruntime "runtime"
"strings"
"time"
"github.com/containers/libpod/cmd/podman/varlink"
"github.com/containers/libpod/libpod"
@ -20,7 +21,7 @@ func (i *LibpodAPI) GetVersion(call iopodman.VarlinkCall) error {
Version: versionInfo.Version,
Go_version: versionInfo.GoVersion,
Git_commit: versionInfo.GitCommit,
Built: versionInfo.Built,
Built: time.Unix(versionInfo.Built, 0).Format(time.RFC3339),
Os_arch: versionInfo.OsArch,
})
}

View File

@ -61,7 +61,7 @@ func makeListContainer(containerID string, batchInfo shared.BatchContainerStruct
Image: batchInfo.ConConfig.RootfsImageName,
Imageid: batchInfo.ConConfig.RootfsImageID,
Command: batchInfo.ConConfig.Spec.Process.Args,
Createdat: batchInfo.ConConfig.CreatedTime.String(),
Createdat: batchInfo.ConConfig.CreatedTime.Format(time.RFC3339),
Runningfor: time.Since(batchInfo.ConConfig.CreatedTime).String(),
Status: batchInfo.ConState.String(),
Ports: ports,
@ -107,7 +107,7 @@ func makeListPod(pod *libpod.Pod, batchInfo shared.PsOptions) (iopodman.ListPodD
listPodsContainers = append(listPodsContainers, makeListPodContainers(ctr.ID(), batchInfo))
}
listPod := iopodman.ListPodData{
Createdat: pod.CreatedTime().String(),
Createdat: pod.CreatedTime().Format(time.RFC3339),
Id: pod.ID(),
Name: pod.Name(),
Status: status,