(s *parsedObjects, detectedVersion schema.GroupVersionKind, fileName string, fileOffset int, fileContents []byte)
| 251 | } |
| 252 | |
| 253 | func (p *Parser) decodeItem(s *parsedObjects, detectedVersion schema.GroupVersionKind, fileName string, fileOffset int, fileContents []byte) error { |
| 254 | addPodSpeccer := func(ps ks.PodSpecer) { |
| 255 | s.podspecers = append(s.podspecers, ps) |
| 256 | s.bothMetas = append(s.bothMetas, ks.BothMeta{ |
| 257 | TypeMeta: ps.GetTypeMeta(), |
| 258 | ObjectMeta: ps.GetObjectMeta(), |
| 259 | FileLocationer: ps, |
| 260 | }) |
| 261 | } |
| 262 | |
| 263 | fileLocation := detectFileLocation(fileName, fileOffset, fileContents) |
| 264 | |
| 265 | var errs parseErrors |
| 266 | |
| 267 | switch detectedVersion { |
| 268 | case corev1.SchemeGroupVersion.WithKind("Pod"): |
| 269 | var pod corev1.Pod |
| 270 | errs.AddIfErr(p.decode(fileContents, &pod)) |
| 271 | p := internalpod.Pod{Obj: pod, Location: fileLocation} |
| 272 | s.pods = append(s.pods, p) |
| 273 | s.bothMetas = append(s.bothMetas, ks.BothMeta{TypeMeta: pod.TypeMeta, ObjectMeta: pod.ObjectMeta, FileLocationer: p}) |
| 274 | |
| 275 | case batchv1.SchemeGroupVersion.WithKind("Job"): |
| 276 | var job batchv1.Job |
| 277 | errs.AddIfErr(p.decode(fileContents, &job)) |
| 278 | addPodSpeccer(internal.Batchv1Job{Job: job, Location: fileLocation}) |
| 279 | |
| 280 | case batchv1beta1.SchemeGroupVersion.WithKind("CronJob"): |
| 281 | var cronjob batchv1beta1.CronJob |
| 282 | errs.AddIfErr(p.decode(fileContents, &cronjob)) |
| 283 | cjob := internalcronjob.CronJobV1beta1{Obj: cronjob, Location: fileLocation} |
| 284 | addPodSpeccer(cjob) |
| 285 | s.cronjobs = append(s.cronjobs, cjob) |
| 286 | |
| 287 | case batchv1.SchemeGroupVersion.WithKind("CronJob"): |
| 288 | var cronjob batchv1.CronJob |
| 289 | errs.AddIfErr(p.decode(fileContents, &cronjob)) |
| 290 | cjob := internalcronjob.CronJobV1{Obj: cronjob, Location: fileLocation} |
| 291 | addPodSpeccer(cjob) |
| 292 | s.cronjobs = append(s.cronjobs, cjob) |
| 293 | |
| 294 | case appsv1.SchemeGroupVersion.WithKind("Deployment"): |
| 295 | var deployment appsv1.Deployment |
| 296 | errs.AddIfErr(p.decode(fileContents, &deployment)) |
| 297 | deploy := internal.Appsv1Deployment{Obj: deployment, Location: fileLocation} |
| 298 | addPodSpeccer(deploy) |
| 299 | |
| 300 | // TODO: Support older versions of Deployment as well? |
| 301 | s.deployments = append(s.deployments, deploy) |
| 302 | case appsv1beta1.SchemeGroupVersion.WithKind("Deployment"): |
| 303 | var deployment appsv1beta1.Deployment |
| 304 | errs.AddIfErr(p.decode(fileContents, &deployment)) |
| 305 | addPodSpeccer(internal.Appsv1beta1Deployment{Deployment: deployment, Location: fileLocation}) |
| 306 | case appsv1beta2.SchemeGroupVersion.WithKind("Deployment"): |
| 307 | var deployment appsv1beta2.Deployment |
| 308 | errs.AddIfErr(p.decode(fileContents, &deployment)) |
| 309 | addPodSpeccer(internal.Appsv1beta2Deployment{Deployment: deployment, Location: fileLocation}) |
| 310 | case extensionsv1beta1.SchemeGroupVersion.WithKind("Deployment"): |
no test coverage detected