| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package kubemodel
- import (
- "fmt"
- "time"
- )
- // @bingen:generate:PodPVCVolume
- type PodPVCVolume struct {
- Name string `json:"name"`
- PersistentVolumeClaimUID string `json:"persistentVolumeClaimUid"`
- }
- // @bingen:generate:Pod
- type Pod struct {
- UID string `json:"uid"`
- NamespaceUID string `json:"namespaceUid"`
- NodeUID string `json:"nodeUid"`
- Name string `json:"name"`
- Owners []Owner `json:"owners"`
- PVCVolumes []PodPVCVolume `json:"pvcVolumes,omitempty"`
- Labels map[string]string `json:"labels,omitempty"`
- Annotations map[string]string `json:"annotations,omitempty"`
- NetworkTrafficDetails []NetworkTrafficDetail `json:"networkTrafficDetails,omitempty"`
- Start time.Time `json:"start"`
- End time.Time `json:"end"`
- }
- func (p *Pod) ValidatePod(window Window) error {
- if p.UID == "" {
- return fmt.Errorf("UID is missing for Pod with name '%s'", p.Name)
- }
- if p.Name == "" {
- return fmt.Errorf("Name is missing for Pod '%s'", p.UID)
- }
- if p.NamespaceUID == "" {
- return fmt.Errorf("NamespaceUID is missing for Pod '%s'", p.UID)
- }
- if err := checkWindow(window, p.Start, p.End); err != nil {
- return err
- }
- return nil
- }
- func (kms *KubeModelSet) RegisterPod(pod *Pod) error {
- if err := pod.ValidatePod(kms.Window); err != nil {
- err = fmt.Errorf("RegisterPod: invalid pod: %w", err)
- kms.Error(err)
- return err
- }
- if _, ok := kms.Pods[pod.UID]; !ok {
- if kms.Cluster == nil {
- kms.Warnf("RegisterPod: Cluster is nil")
- }
- kms.Pods[pod.UID] = pod
- kms.Metadata.ObjectCount++
- }
- return nil
- }
|