func()

in internal/stackdiag.go [236:257]


func (ds *diagJobState) extractFromRemote(pod *corev1.Pod, file *archive.ZipFile) {
	job, found := ds.jobs[pod.Name]
	if !found {
		file.AddError(fmt.Errorf("no job for Pod %s/%s", pod.Namespace, pod.Name))
		return
	}
	nsn := types.NamespacedName{Namespace: pod.Namespace, Name: pod.Name}
	reader, err := ds.kubectl.Copy(nsn, podMainContainerName, podOutputDir, file.AddError)
	if err != nil {
		file.AddError(err)
		return
	}
	if err := extraction.UntarIntoZip(reader, job.RemoteSource, file, ds.verbose); err != nil {
		file.AddError(err)
		return
	}
	err = ds.completeJob(job)
	if err != nil {
		file.AddError(err)
		return
	}
}