Skip to content

Commit 2e497e9

Browse files
Arta AsadiArta Asadi
authored andcommitted
fix: fix KubernetesPersistentVolumeClaim missing fields
1 parent ec05471 commit 2e497e9

File tree

1 file changed

+78
-12
lines changed

1 file changed

+78
-12
lines changed

discovery/provider/helpers/model_helpers.go

Lines changed: 78 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -963,24 +963,91 @@ type PersistentVolumeClaimSpec struct {
963963

964964
// Need PersistentVolumeClaimStatus definition
965965
type PersistentVolumeClaimStatus struct {
966-
Phase string // corev1.PersistentVolumeClaimPhase
967-
AccessModes []string // corev1.PersistentVolumeAccessMode
968-
Capacity map[string]resource.Quantity // corev1.ResourceList
969-
Conditions []PersistentVolumeClaimCondition
970-
AllocatedResources map[string]resource.Quantity // corev1.ResourceList
971-
ResizeStatus *string // corev1.PersistentVolumeClaimResizeStatus
972-
AllocatedResourceStatuses map[string]string // corev1.ClaimResourceStatus - New in 1.27?
966+
Phase string // corev1.PersistentVolumeClaimPhase
967+
AccessModes []string // corev1.PersistentVolumeAccessMode
968+
Capacity map[string]resource.Quantity // corev1.ResourceList
969+
Conditions []PersistentVolumeClaimCondition
970+
AllocatedResources map[string]resource.Quantity // corev1.ResourceList
971+
AllocatedResourceStatuses map[string]string // corev1.ClaimResourceStatus - New in 1.27?
972+
CurrentVolumeAttributesClassName *string
973+
ModifyVolumeStatus *struct {
974+
TargetVolumeAttributesClassName string
975+
Status string
976+
}
977+
}
978+
979+
func ConvertPersistentVolumeClaimStatus(status corev1.PersistentVolumeClaimStatus) PersistentVolumeClaimStatus {
980+
var accessModes []string
981+
if status.AccessModes != nil {
982+
accessModes = make([]string, len(status.AccessModes))
983+
for i, a := range status.AccessModes {
984+
accessModes[i] = string(a)
985+
}
986+
}
987+
capacity := make(map[string]resource.Quantity)
988+
if status.Capacity != nil {
989+
for k, v := range status.Capacity {
990+
capacity[string(k)] = v
991+
}
992+
}
993+
var conditions []PersistentVolumeClaimCondition
994+
if status.Conditions != nil {
995+
conditions = make([]PersistentVolumeClaimCondition, len(status.Conditions))
996+
for i, c := range status.Conditions {
997+
conditions[i] = ConvertPersistentVolumeClaimCondition(c)
998+
}
999+
}
1000+
allocatedResources := make(map[string]resource.Quantity)
1001+
if status.AllocatedResources != nil {
1002+
for k, v := range status.AllocatedResources {
1003+
allocatedResources[string(k)] = v
1004+
}
1005+
}
1006+
allocatedResourceStatus := make(map[string]string)
1007+
if status.AllocatedResourceStatuses != nil {
1008+
allocatedResourceStatus = make(map[string]string)
1009+
for k, v := range status.AllocatedResourceStatuses {
1010+
allocatedResourceStatus[string(k)] = string(v)
1011+
}
1012+
}
1013+
return PersistentVolumeClaimStatus{
1014+
Phase: string(status.Phase),
1015+
AccessModes: accessModes,
1016+
Capacity: capacity,
1017+
Conditions: conditions,
1018+
AllocatedResources: allocatedResources,
1019+
AllocatedResourceStatuses: allocatedResourceStatus,
1020+
CurrentVolumeAttributesClassName: status.CurrentVolumeAttributesClassName,
1021+
ModifyVolumeStatus: &struct {
1022+
TargetVolumeAttributesClassName string
1023+
Status string
1024+
}{
1025+
TargetVolumeAttributesClassName: status.ModifyVolumeStatus.TargetVolumeAttributesClassName,
1026+
Status: string(status.ModifyVolumeStatus.Status),
1027+
},
1028+
}
9731029
}
9741030

9751031
type PersistentVolumeClaimCondition struct {
9761032
Type string // corev1.PersistentVolumeClaimConditionType
9771033
Status string // corev1.ConditionStatus
978-
LastProbeTime *time.Time
979-
LastTransitionTime *time.Time
1034+
LastProbeTime time.Time
1035+
LastTransitionTime time.Time
9801036
Reason string
9811037
Message string
9821038
}
9831039

1040+
func ConvertPersistentVolumeClaimCondition(condition corev1.PersistentVolumeClaimCondition) PersistentVolumeClaimCondition {
1041+
return PersistentVolumeClaimCondition{
1042+
Type: string(condition.Type),
1043+
Status: string(condition.Status),
1044+
LastProbeTime: ConvertTime(condition.LastProbeTime),
1045+
LastTransitionTime: ConvertTime(condition.LastTransitionTime),
1046+
Reason: condition.Reason,
1047+
Message: condition.Message,
1048+
}
1049+
}
1050+
9841051
// Add necessary conversion functions for PVC Status
9851052

9861053
// --- Adding More Types ---
@@ -2920,9 +2987,8 @@ func ConvertPersistentVolumeClaim(pvc *corev1.PersistentVolumeClaim) PersistentV
29202987
return PersistentVolumeClaim{
29212988
TypeMeta: ConvertTypeMeta(pvc.TypeMeta),
29222989
ObjectMeta: ConvertObjectMeta(&pvc.ObjectMeta),
2923-
// Note: These will cause 'undefined' errors if not defined elsewhere
2924-
// Spec: ConvertPersistentVolumeClaimSpec(&pvc.Spec),
2925-
// Status: ConvertPersistentVolumeClaimStatus(&pvc.Status),
2990+
Spec: ConvertPersistentVolumeClaimSpec(pvc.Spec),
2991+
Status: ConvertPersistentVolumeClaimStatus(pvc.Status),
29262992
}
29272993
}
29282994

0 commit comments

Comments
 (0)