@@ -963,24 +963,91 @@ type PersistentVolumeClaimSpec struct {
963963
964964// Need PersistentVolumeClaimStatus definition
965965type 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
9751031type 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