Commit c2d836fc authored by j-griffith's avatar j-griffith Committed by Jordan Liggitt

Fix nil pointer

add back lost test Fix nil pointer
parent d0bfb70f
...@@ -60,15 +60,20 @@ func dataSourceInUse(oldPVCSpec *core.PersistentVolumeClaimSpec) bool { ...@@ -60,15 +60,20 @@ func dataSourceInUse(oldPVCSpec *core.PersistentVolumeClaimSpec) bool {
func dataSourceIsEnabled(pvcSpec *core.PersistentVolumeClaimSpec) bool { func dataSourceIsEnabled(pvcSpec *core.PersistentVolumeClaimSpec) bool {
if pvcSpec.DataSource != nil { if pvcSpec.DataSource != nil {
if pvcSpec.DataSource.Kind == pvc && apiGroup := ""
*pvcSpec.DataSource.APIGroup == "" && if pvcSpec.DataSource.APIGroup != nil {
utilfeature.DefaultFeatureGate.Enabled(features.VolumePVCDataSource) { apiGroup = *pvcSpec.DataSource.APIGroup
}
if utilfeature.DefaultFeatureGate.Enabled(features.VolumePVCDataSource) &&
pvcSpec.DataSource.Kind == pvc &&
apiGroup == "" {
return true return true
} }
if pvcSpec.DataSource.Kind == volumeSnapshot &&
*pvcSpec.DataSource.APIGroup == "snapshot.storage.k8s.io" && if utilfeature.DefaultFeatureGate.Enabled(features.VolumeSnapshotDataSource) &&
utilfeature.DefaultFeatureGate.Enabled(features.VolumeSnapshotDataSource) { pvcSpec.DataSource.Kind == volumeSnapshot &&
apiGroup == "snapshot.storage.k8s.io" {
return true return true
} }
} }
......
...@@ -221,6 +221,12 @@ func TestPVCDataSourceSpecFilter(t *testing.T) { ...@@ -221,6 +221,12 @@ func TestPVCDataSourceSpecFilter(t *testing.T) {
Name: "test_clone", Name: "test_clone",
}, },
} }
validSpecNilAPIGroup := core.PersistentVolumeClaimSpec{
DataSource: &core.TypedLocalObjectReference{
Kind: "PersistentVolumeClaim",
Name: "test_clone",
},
}
invalidAPIGroup := "invalid.pvc.api.group" invalidAPIGroup := "invalid.pvc.api.group"
invalidSpec := core.PersistentVolumeClaimSpec{ invalidSpec := core.PersistentVolumeClaimSpec{
...@@ -266,6 +272,16 @@ func TestPVCDataSourceSpecFilter(t *testing.T) { ...@@ -266,6 +272,16 @@ func TestPVCDataSourceSpecFilter(t *testing.T) {
gateEnabled: false, gateEnabled: false,
want: nil, want: nil,
}, },
"enabled with valid spec but nil APIGroup": {
spec: validSpecNilAPIGroup,
gateEnabled: true,
want: validSpecNilAPIGroup.DataSource,
},
"disabled with valid spec but nil APIGroup": {
spec: validSpecNilAPIGroup,
gateEnabled: false,
want: nil,
},
} }
for testName, test := range tests { for testName, test := range tests {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment