| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package kubemodel
- import (
- "fmt"
- "time"
- )
- // @bingen:generate:PersistentVolumeClaim
- type PersistentVolumeClaim struct {
- // Version 1 fields
- UID string `json:"uid"`
- NamespaceUID string `json:"namespaceUid"`
- VolumeUID *string `json:"volumeUid,omitempty"`
- PodUID *string `json:"podUid,omitempty"`
- Name string `json:"name"`
- Labels map[string]string `json:"labels,omitempty"`
- Annotations map[string]string `json:"annotations,omitempty"`
- StorageClass string `json:"storageClass"`
- StorageByteSeconds Measurement `json:"storageByteSeconds"`
- RequestedBytes Measurement `json:"requestedBytes"`
- Size Measurement `json:"size"` // Size in bytes
- VolumeName string `json:"volumeName"`
- // ReadWriteOnce, ReadWriteMany, ReadOnlyMany
- AccessModes []string `json:"accessModes,omitempty"`
- ActualUsedByteSeconds Measurement `json:"actualUsedByteSeconds,omitempty"`
- Start time.Time `json:"start"` // PVC creation timestamp
- End time.Time `json:"end,omitempty"` // PVC deletion timestamp (nil if still active)
- BoundAt time.Time `json:"boundAt,omitempty"`
- DurationSeconds Measurement `json:"durationSeconds,omitempty"`
- }
- func (kms *KubeModelSet) RegisterPVC(uid, name, namespace string) error {
- if uid == "" {
- err := fmt.Errorf("UID is nil for PVC '%s'", name)
- kms.Error(err)
- return err
- }
- if _, ok := kms.PersistentVolumeClaims[uid]; !ok {
- namespaceUID := ""
- if ns, ok := kms.idx.namespaceByName[namespace]; !ok {
- kms.Warnf("RegisterPVC(%s, %s, %s): missing namespace '%s'", uid, name, namespace, namespace)
- } else {
- namespaceUID = ns.UID
- }
- kms.PersistentVolumeClaims[uid] = &PersistentVolumeClaim{
- UID: uid,
- Name: name,
- NamespaceUID: namespaceUID,
- }
- kms.Metadata.ObjectCount++
- }
- return nil
- }
|