namespace.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package kubemodel
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. // @bingen:generate:Namespace
  7. type Namespace struct {
  8. UID string `json:"uid"` // @bingen:field[version=1]
  9. ClusterUID string `json:"clusterUID"` // @bingen:field[version=1]
  10. Name string `json:"name"` // @bingen:field[version=1]
  11. Labels map[string]string `json:"labels"` // @bingen:field[version=1]
  12. Annotations map[string]string `json:"annotations"` // @bingen:field[version=1]
  13. Start time.Time `json:"start,omitempty"` // @bingen:field[version=1]
  14. End time.Time `json:"end,omitempty"` // @bingen:field[version=1]
  15. }
  16. func (kms *KubeModelSet) RegisterNamespace(uid, name string) error {
  17. if uid == "" {
  18. err := fmt.Errorf("UID is nil for Namespace '%s'", name)
  19. kms.Error(err)
  20. return err
  21. }
  22. if _, ok := kms.Namespaces[uid]; !ok {
  23. clusterUID := ""
  24. if kms.Cluster == nil {
  25. kms.Warnf("RegisterNamespace(%s, %s): Cluster is nil", uid, name)
  26. } else {
  27. clusterUID = kms.Cluster.UID
  28. }
  29. kms.Namespaces[uid] = &Namespace{
  30. UID: uid,
  31. ClusterUID: clusterUID,
  32. Name: name,
  33. }
  34. kms.idx.namespaceByName[name] = kms.Namespaces[uid]
  35. kms.Metadata.ObjectCount++
  36. }
  37. return nil
  38. }