github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/present/container.go (about) 1 package present 2 3 import ( 4 "encoding/json" 5 "time" 6 7 "github.com/pf-qiu/concourse/v6/atc" 8 "github.com/pf-qiu/concourse/v6/atc/db" 9 ) 10 11 func Container(container db.Container, expiresAt time.Time) atc.Container { 12 meta := container.Metadata() 13 14 var pipelineInstanceVars atc.InstanceVars 15 _ = json.Unmarshal([]byte(meta.PipelineInstanceVars), &pipelineInstanceVars) 16 17 atcContainer := atc.Container{ 18 ID: container.Handle(), 19 WorkerName: container.WorkerName(), 20 21 Type: string(meta.Type), 22 State: container.State(), 23 24 PipelineID: meta.PipelineID, 25 JobID: meta.JobID, 26 BuildID: meta.BuildID, 27 28 PipelineName: meta.PipelineName, 29 PipelineInstanceVars: pipelineInstanceVars, 30 JobName: meta.JobName, 31 BuildName: meta.BuildName, 32 33 StepName: meta.StepName, 34 Attempt: meta.Attempt, 35 36 WorkingDirectory: meta.WorkingDirectory, 37 User: meta.User, 38 } 39 40 if !expiresAt.IsZero() { 41 atcContainer.ExpiresIn = expiresAt.Sub(time.Now()).Round(time.Second).String() 42 } 43 44 return atcContainer 45 }