Pass new and old object to DropDisabledFields

pull/564/head
Jordan Liggitt 2018-12-18 17:50:22 -05:00
parent 88284f637b
commit 901ddba812
9 changed files with 28 additions and 18 deletions

View File

@ -24,8 +24,11 @@ import (
// DropDisabledFields removes disabled fields from the pvc spec.
// This should be called from PrepareForCreate/PrepareForUpdate for all resources containing a pvc spec.
func DropDisabledFields(pvcSpec *core.PersistentVolumeClaimSpec) {
func DropDisabledFields(pvcSpec, oldPVCSpec *core.PersistentVolumeClaimSpec) {
if !utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
pvcSpec.VolumeMode = nil
if oldPVCSpec != nil {
oldPVCSpec.VolumeMode = nil
}
}
}

View File

@ -39,7 +39,7 @@ func TestDropAlphaPVCVolumeMode(t *testing.T) {
// Enable alpha feature BlockVolume
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, true)()
// now test dropping the fields - should not be dropped
DropDisabledFields(&pvc.Spec)
DropDisabledFields(&pvc.Spec, nil)
// check to make sure VolumeDevices is still present
// if featureset is set to true
@ -50,7 +50,7 @@ func TestDropAlphaPVCVolumeMode(t *testing.T) {
// Disable alpha feature BlockVolume
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, false)()
// now test dropping the fields
DropDisabledFields(&pvc.Spec)
DropDisabledFields(&pvc.Spec, nil)
// check to make sure VolumeDevices is nil
// if featureset is set to false

View File

@ -24,11 +24,17 @@ import (
// DropDisabledFields removes disabled fields from the pod security policy spec.
// This should be called from PrepareForCreate/PrepareForUpdate for all resources containing a od security policy spec.
func DropDisabledFields(pspSpec *policy.PodSecurityPolicySpec) {
func DropDisabledFields(pspSpec, oldPSPSpec *policy.PodSecurityPolicySpec) {
if !utilfeature.DefaultFeatureGate.Enabled(features.ProcMountType) {
pspSpec.AllowedProcMountTypes = nil
if oldPSPSpec != nil {
oldPSPSpec.AllowedProcMountTypes = nil
}
}
if !utilfeature.DefaultFeatureGate.Enabled(features.RunAsGroup) {
pspSpec.RunAsGroup = nil
if oldPSPSpec != nil {
oldPSPSpec.RunAsGroup = nil
}
}
}

View File

@ -38,7 +38,7 @@ func TestDropAlphaProcMountType(t *testing.T) {
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, true)()
// now test dropping the fields - should not be dropped
DropDisabledFields(&psp.Spec)
DropDisabledFields(&psp.Spec, nil)
// check to make sure AllowedProcMountTypes is still present
// if featureset is set to true
@ -52,7 +52,7 @@ func TestDropAlphaProcMountType(t *testing.T) {
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, false)()
// now test dropping the fields
DropDisabledFields(&psp.Spec)
DropDisabledFields(&psp.Spec, nil)
// check to make sure AllowedProcMountTypes is nil
// if featureset is set to false

View File

@ -23,9 +23,13 @@ import (
)
// DropDisabledFields removes disabled fields from the StorageClass object.
func DropDisabledFields(class *storage.StorageClass) {
func DropDisabledFields(class, oldClass *storage.StorageClass) {
if !utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) {
class.VolumeBindingMode = nil
class.AllowedTopologies = nil
if oldClass != nil {
oldClass.VolumeBindingMode = nil
oldClass.AllowedTopologies = nil
}
}
}

View File

@ -46,7 +46,7 @@ func TestDropAlphaFields(t *testing.T) {
VolumeBindingMode: &bindingMode,
AllowedTopologies: allowedTopologies,
}
DropDisabledFields(class)
DropDisabledFields(class, nil)
if class.VolumeBindingMode != nil {
t.Errorf("VolumeBindingMode field didn't get dropped: %+v", class.VolumeBindingMode)
}
@ -60,7 +60,7 @@ func TestDropAlphaFields(t *testing.T) {
AllowedTopologies: allowedTopologies,
}
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.VolumeScheduling, true)()
DropDisabledFields(class)
DropDisabledFields(class, nil)
if class.VolumeBindingMode != &bindingMode {
t.Errorf("VolumeBindingMode field got unexpectantly modified: %+v", class.VolumeBindingMode)
}

View File

@ -52,7 +52,7 @@ func (persistentvolumeclaimStrategy) PrepareForCreate(ctx context.Context, obj r
pvc := obj.(*api.PersistentVolumeClaim)
pvc.Status = api.PersistentVolumeClaimStatus{}
pvcutil.DropDisabledFields(&pvc.Spec)
pvcutil.DropDisabledFields(&pvc.Spec, nil)
}
func (persistentvolumeclaimStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
@ -74,8 +74,7 @@ func (persistentvolumeclaimStrategy) PrepareForUpdate(ctx context.Context, obj,
oldPvc := old.(*api.PersistentVolumeClaim)
newPvc.Status = oldPvc.Status
pvcutil.DropDisabledFields(&newPvc.Spec)
pvcutil.DropDisabledFields(&oldPvc.Spec)
pvcutil.DropDisabledFields(&newPvc.Spec, &oldPvc.Spec)
}
func (persistentvolumeclaimStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {

View File

@ -58,15 +58,14 @@ func (strategy) AllowUnconditionalUpdate() bool {
func (strategy) PrepareForCreate(ctx context.Context, obj runtime.Object) {
psp := obj.(*policy.PodSecurityPolicy)
psputil.DropDisabledFields(&psp.Spec)
psputil.DropDisabledFields(&psp.Spec, nil)
}
func (strategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
newPsp := obj.(*policy.PodSecurityPolicy)
oldPsp := old.(*policy.PodSecurityPolicy)
psputil.DropDisabledFields(&newPsp.Spec)
psputil.DropDisabledFields(&oldPsp.Spec)
psputil.DropDisabledFields(&newPsp.Spec, &oldPsp.Spec)
}
func (strategy) Canonicalize(obj runtime.Object) {

View File

@ -52,7 +52,7 @@ func (storageClassStrategy) PrepareForCreate(ctx context.Context, obj runtime.Ob
class.AllowVolumeExpansion = nil
}
storageutil.DropDisabledFields(class)
storageutil.DropDisabledFields(class, nil)
}
func (storageClassStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
@ -77,8 +77,7 @@ func (storageClassStrategy) PrepareForUpdate(ctx context.Context, obj, old runti
newClass.AllowVolumeExpansion = nil
oldClass.AllowVolumeExpansion = nil
}
storageutil.DropDisabledFields(oldClass)
storageutil.DropDisabledFields(newClass)
storageutil.DropDisabledFields(oldClass, newClass)
}
func (storageClassStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {