@@ -55,7 +55,9 @@ func main() {
55
55
56
56
// register metrics as background
57
57
for range ticker .C {
58
+ log .Println ("debug: start snapshot()" )
58
59
err := snapshot ()
60
+ log .Println ("debug: end snapshot()" )
59
61
if err != nil {
60
62
log .Fatal (err )
61
63
}
@@ -116,7 +118,6 @@ func getECRImageScanFindings(repositories []string) ([]findingsInfo, error) {
116
118
117
119
svc := ecr .New (sess )
118
120
findingsInfos := []findingsInfo {}
119
- results := []findingsInfo {}
120
121
121
122
imageTags , err := getImageTags ()
122
123
if err != nil {
@@ -130,33 +131,46 @@ func getECRImageScanFindings(repositories []string) ([]findingsInfo, error) {
130
131
RepositoryName : aws .String (repo ),
131
132
}
132
133
133
- for {
134
- findings , err := svc .DescribeImageScanFindings (input )
135
- //nolint:gocritic,errorlint
136
- if aerr , ok := err .(awserr.Error ); ok {
137
- switch aerr .Code () {
138
- case "ScanNotFoundException" :
139
- log .Printf ("Skip the repository %v with imageTag %v. %v\n " , repo , imageTag , err .Error ())
140
- case "ImageNotFoundException" :
141
- log .Printf ("Skip the repository %v with imageTag %v. %v\n " , repo , imageTag , err .Error ())
142
- default :
143
- return nil , fmt .Errorf ("failed to describe image scan findings: %w" , err )
144
- }
145
- } else if findings .ImageScanFindings == nil {
146
- log .Printf ("Skip the repository %v with imageTag %v. ImageScanStatus: Status %v Description %v\n " , repo , imageTag , findings .ImageScanStatus .Status , findings .ImageScanStatus .Description )
147
- } else {
148
- results = generateFindingsInfos (findings , imageTag , repo )
149
- }
150
-
151
- findingsInfos = append (findingsInfos , results ... )
152
-
153
- // Pagination
154
- if findings .NextToken == nil {
155
- break
156
- }
157
- input .SetNextToken (* findings .NextToken )
134
+ result , err := describeImageScanFindings (svc , input , repo , imageTag )
135
+ if err != nil {
136
+ return nil , fmt .Errorf ("failed to describe image scan findings: %w" , err )
158
137
}
138
+
139
+ findingsInfos = append (findingsInfos , result ... )
140
+ }
141
+ }
142
+ return findingsInfos , nil
143
+ }
144
+
145
+ func describeImageScanFindings (svc * ecr.ECR , input * ecr.DescribeImageScanFindingsInput , repo string , imageTag string ) ([]findingsInfo , error ) {
146
+ results := []findingsInfo {}
147
+ findingsInfos := []findingsInfo {}
148
+
149
+ for {
150
+ findings , err := svc .DescribeImageScanFindings (input )
151
+ //nolint:gocritic,errorlint
152
+ if aerr , ok := err .(awserr.Error ); ok {
153
+ switch aerr .Code () {
154
+ case "ScanNotFoundException" :
155
+ log .Printf ("Skip the repository %v with imageTag %v. %v\n " , repo , imageTag , err .Error ())
156
+ case "ImageNotFoundException" :
157
+ log .Printf ("Skip the repository %v with imageTag %v. %v\n " , repo , imageTag , err .Error ())
158
+ default :
159
+ return nil , fmt .Errorf ("failed to describe image scan findings: %w" , err )
160
+ }
161
+ } else if findings .ImageScanFindings == nil {
162
+ log .Printf ("Skip the repository %v with imageTag %v. ImageScanStatus: Status %v Description %v\n " , repo , imageTag , findings .ImageScanStatus .Status , findings .ImageScanStatus .Description )
163
+ } else {
164
+ results = generateFindingsInfos (findings , imageTag , repo )
165
+ }
166
+
167
+ findingsInfos = append (findingsInfos , results ... )
168
+
169
+ // Pagination
170
+ if findings .NextToken == nil {
171
+ break
159
172
}
173
+ input .SetNextToken (* findings .NextToken )
160
174
}
161
175
return findingsInfos , nil
162
176
}
0 commit comments