pod.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package kubemodel
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. type Pod struct {
  7. UID string `json:"uid"`
  8. NamespaceUID string `json:"namespaceUid"`
  9. OwnerUID string `json:"ownerUid"`
  10. NodeUID string `json:"nodeUid"`
  11. Name string `json:"name"`
  12. Labels map[string]string `json:"labels,omitempty"`
  13. Annotations map[string]string `json:"annotations,omitempty"`
  14. Start time.Time `json:"start"`
  15. End time.Time `json:"end"`
  16. CpuMillicoreUsageMax uint64 `json:"cpuMillicoreUsageMax"`
  17. RAMByteUsageMax uint64 `json:"ramByteUsageMax"`
  18. NetworkTransferBytes uint64 `json:"networkTransferBytes"`
  19. NetworkReceiveBytes uint64 `json:"networkReceiveBytes"`
  20. }
  21. func (kms *KubeModelSet) RegisterPod(uid, name, namespace string) error {
  22. if uid == "" {
  23. err := fmt.Errorf("UID is nil for Pod '%s'", name)
  24. kms.Error(err)
  25. return err
  26. }
  27. if _, ok := kms.Pods[uid]; !ok {
  28. namespaceUID := ""
  29. if ns, ok := kms.idx.namespaceByName[namespace]; !ok {
  30. kms.Warnf("RegisterPod(%s, %s, %s): missing namespace '%s'", uid, name, namespace, namespace)
  31. } else {
  32. namespaceUID = ns.UID
  33. }
  34. kms.Pods[uid] = &Pod{
  35. UID: uid,
  36. Name: name,
  37. NamespaceUID: namespaceUID,
  38. }
  39. kms.Metadata.ObjectCount++
  40. }
  41. return nil
  42. }