diff --git a/oci/finished.go b/oci/finished.go new file mode 100644 index 00000000..e19051bd --- /dev/null +++ b/oci/finished.go @@ -0,0 +1,14 @@ +// +build !arm !386 + +package oci + +import ( + "os" + "syscall" + "time" +) + +func getFinishedTime(fi os.FileInfo) time.Time { + st := fi.Sys().(*syscall.Stat_t) + return time.Unix(st.Ctim.Sec, st.Ctim.Nsec) +} diff --git a/oci/finished_32.go b/oci/finished_32.go new file mode 100644 index 00000000..3f24b1ba --- /dev/null +++ b/oci/finished_32.go @@ -0,0 +1,14 @@ +// +build arm 386 + +package oci + +import ( + "os" + "syscall" + "time" +) + +func getFinishedTime(fi os.FileInfo) time.Time { + st := fi.Sys().(*syscall.Stat_t) + return time.Unix(int64(st.Ctim.Sec), int64(st.Ctim.Nsec)) +} diff --git a/oci/oci.go b/oci/oci.go index 8b2e7288..75660fdc 100644 --- a/oci/oci.go +++ b/oci/oci.go @@ -585,9 +585,7 @@ func (r *Runtime) UpdateStatus(c *Container) error { logrus.Warnf("failed to find container exit file: %v", err) c.state.ExitCode = -1 } else { - st := fi.Sys().(*syscall.Stat_t) - c.state.Finished = time.Unix(st.Ctim.Sec, st.Ctim.Nsec) - + c.state.Finished = getFinishedTime(fi) statusCodeStr, err := ioutil.ReadFile(exitFilePath) if err != nil { return fmt.Errorf("failed to read exit file: %v", err)