github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/container_metadata.go (about) 1 package db 2 3 import "fmt" 4 5 type ContainerMetadata struct { 6 Type ContainerType 7 8 StepName string 9 Attempt string 10 11 WorkingDirectory string 12 User string 13 14 PipelineID int 15 JobID int 16 BuildID int 17 18 PipelineName string 19 PipelineInstanceVars string 20 JobName string 21 BuildName string 22 } 23 24 type ContainerType string 25 26 const ( 27 ContainerTypeCheck ContainerType = "check" 28 ContainerTypeGet ContainerType = "get" 29 ContainerTypePut ContainerType = "put" 30 ContainerTypeTask ContainerType = "task" 31 ) 32 33 func ContainerTypeFromString(containerType string) (ContainerType, error) { 34 switch containerType { 35 case "check": 36 return ContainerTypeCheck, nil 37 case "get": 38 return ContainerTypeGet, nil 39 case "put": 40 return ContainerTypePut, nil 41 case "task": 42 return ContainerTypeTask, nil 43 default: 44 return "", fmt.Errorf("Unrecognized containerType: %s", containerType) 45 } 46 } 47 48 func (metadata ContainerMetadata) SQLMap() map[string]interface{} { 49 m := map[string]interface{}{} 50 51 if metadata.Type != "" { 52 m["meta_type"] = string(metadata.Type) 53 } 54 55 if metadata.StepName != "" { 56 m["meta_step_name"] = metadata.StepName 57 } 58 59 if metadata.Attempt != "" { 60 m["meta_attempt"] = metadata.Attempt 61 } 62 63 if metadata.WorkingDirectory != "" { 64 m["meta_working_directory"] = metadata.WorkingDirectory 65 } 66 67 if metadata.User != "" { 68 m["meta_process_user"] = metadata.User 69 } 70 71 if metadata.PipelineID != 0 { 72 m["meta_pipeline_id"] = metadata.PipelineID 73 } 74 75 if metadata.JobID != 0 { 76 m["meta_job_id"] = metadata.JobID 77 } 78 79 if metadata.BuildID != 0 { 80 m["meta_build_id"] = metadata.BuildID 81 } 82 83 if metadata.PipelineName != "" { 84 m["meta_pipeline_name"] = metadata.PipelineName 85 } 86 87 if metadata.PipelineInstanceVars != "" { 88 m["meta_pipeline_instance_vars"] = metadata.PipelineInstanceVars 89 } 90 91 if metadata.JobName != "" { 92 m["meta_job_name"] = metadata.JobName 93 } 94 95 if metadata.BuildName != "" { 96 m["meta_build_name"] = metadata.BuildName 97 } 98 99 return m 100 } 101 102 var containerMetadataColumns = []string{ 103 "meta_type", 104 "meta_step_name", 105 "meta_attempt", 106 "meta_working_directory", 107 "meta_process_user", 108 "meta_pipeline_id", 109 "meta_job_id", 110 "meta_build_id", 111 "meta_pipeline_name", 112 "meta_pipeline_instance_vars", 113 "meta_job_name", 114 "meta_build_name", 115 } 116 117 func (metadata *ContainerMetadata) ScanTargets() []interface{} { 118 return []interface{}{ 119 &metadata.Type, 120 &metadata.StepName, 121 &metadata.Attempt, 122 &metadata.WorkingDirectory, 123 &metadata.User, 124 &metadata.PipelineID, 125 &metadata.JobID, 126 &metadata.BuildID, 127 &metadata.PipelineName, 128 &metadata.PipelineInstanceVars, 129 &metadata.JobName, 130 &metadata.BuildName, 131 } 132 }