github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/present/volume.go (about) 1 package present 2 3 import ( 4 "github.com/pf-qiu/concourse/v6/atc" 5 "github.com/pf-qiu/concourse/v6/atc/db" 6 ) 7 8 func Volume(volume db.CreatedVolume) (atc.Volume, error) { 9 resourceType, err := volume.ResourceType() 10 if err != nil { 11 return atc.Volume{}, err 12 } 13 14 baseResourceType, err := volume.BaseResourceType() 15 if err != nil { 16 return atc.Volume{}, err 17 } 18 19 pipelineID, pipelineRef, jobName, stepName, err := volume.TaskIdentifier() 20 if err != nil { 21 return atc.Volume{}, err 22 } 23 24 return atc.Volume{ 25 ID: volume.Handle(), 26 Type: string(volume.Type()), 27 WorkerName: volume.WorkerName(), 28 ContainerHandle: volume.ContainerHandle(), 29 Path: volume.Path(), 30 ParentHandle: volume.ParentHandle(), 31 PipelineID: pipelineID, 32 PipelineName: pipelineRef.Name, 33 PipelineInstanceVars: pipelineRef.InstanceVars, 34 JobName: jobName, 35 StepName: stepName, 36 ResourceType: toVolumeResourceType(resourceType), 37 BaseResourceType: toVolumeBaseResourceType(baseResourceType), 38 }, nil 39 } 40 41 func toVolumeResourceType(dbResourceType *db.VolumeResourceType) *atc.VolumeResourceType { 42 if dbResourceType == nil { 43 return nil 44 } 45 46 if dbResourceType.WorkerBaseResourceType != nil { 47 return &atc.VolumeResourceType{ 48 BaseResourceType: toVolumeBaseResourceType(dbResourceType.WorkerBaseResourceType), 49 Version: dbResourceType.Version, 50 } 51 } 52 53 if dbResourceType.ResourceType != nil { 54 resourceType := toVolumeResourceType(dbResourceType.ResourceType) 55 return &atc.VolumeResourceType{ 56 ResourceType: resourceType, 57 Version: dbResourceType.Version, 58 } 59 } 60 61 return nil 62 } 63 64 func toVolumeBaseResourceType(dbResourceType *db.UsedWorkerBaseResourceType) *atc.VolumeBaseResourceType { 65 if dbResourceType == nil { 66 return nil 67 } 68 69 return &atc.VolumeBaseResourceType{ 70 Name: dbResourceType.Name, 71 Version: dbResourceType.Version, 72 } 73 }