// NewPodFromInternalPod converts *pkgPod.Pod to *Pod func NewPodFromInternalPod(p *pkgPod.Pod) (*Pod, error) { pod := &Pod{ UUID: p.UUID.String(), State: p.State(), Networks: p.Nets, } startTime, err := p.StartTime() if err != nil { return nil, err } if !startTime.IsZero() { startedAt := startTime.Unix() pod.StartedAt = &startedAt } if !p.PodManifestAvailable() { return pod, nil } // TODO(vc): we should really hold a shared lock here to prevent gc of the pod _, manifest, err := p.PodManifest() if err != nil { return nil, err } for _, app := range manifest.Apps { pod.AppNames = append(pod.AppNames, app.Name.String()) } if len(manifest.UserAnnotations) > 0 { pod.UserAnnotations = make(map[string]string) for name, value := range manifest.UserAnnotations { pod.UserAnnotations[name] = value } } if len(manifest.UserLabels) > 0 { pod.UserLabels = make(map[string]string) for name, value := range manifest.UserLabels { pod.UserLabels[name] = value } } return pod, nil }