From 890f4b7e2e6b6a3f1c8feb3ce98567d318191411 Mon Sep 17 00:00:00 2001 From: liangxia Date: Wed, 8 Nov 2017 17:07:50 +0800 Subject: [PATCH] Add several validation to persistentvolume --- pkg/apis/core/validation/validation_test.go | 72 ++++++++++++++++++++- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index 07d03fe56df..3f8d37ff974 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -87,6 +87,51 @@ func TestValidatePersistentVolumes(t *testing.T) { volume *core.PersistentVolume }{ "good-volume": { + isExpectedFailure: false, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), + }, + "good-volume-with-capacity-unit": { + isExpectedFailure: false, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10Gi"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), + }, + "good-volume-without-capacity-unit": { + isExpectedFailure: false, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), + }, + "good-volume-with-storage-class": { isExpectedFailure: false, volume: testVolume("foo", "", core.PersistentVolumeSpec{ Capacity: core.ResourceList{ @@ -164,6 +209,15 @@ func TestValidatePersistentVolumes(t *testing.T) { }, }), }, + "missing-volume-source": { + isExpectedFailure: true, + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + Capacity: core.ResourceList{ + core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), + }, + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + }), + }, "bad-name": { isExpectedFailure: true, volume: testVolume("123*Bad(Name", "unexpected-namespace", core.PersistentVolumeSpec{ @@ -186,11 +240,25 @@ func TestValidatePersistentVolumes(t *testing.T) { core.ResourceName(core.ResourceStorage): resource.MustParse("10G"), }, AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, }), }, "missing-capacity": { isExpectedFailure: true, - volume: testVolume("foo", "", core.PersistentVolumeSpec{}), + volume: testVolume("foo", "", core.PersistentVolumeSpec{ + AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, + PersistentVolumeSource: core.PersistentVolumeSource{ + HostPath: &core.HostPathVolumeSource{ + Path: "/foo", + Type: newHostPathType(string(core.HostPathDirectory)), + }, + }, + }), }, "missing-accessmodes": { isExpectedFailure: true, @@ -208,7 +276,7 @@ func TestValidatePersistentVolumes(t *testing.T) { }, "too-many-sources": { isExpectedFailure: true, - volume: testVolume("", "", core.PersistentVolumeSpec{ + volume: testVolume("foo", "", core.PersistentVolumeSpec{ Capacity: core.ResourceList{ core.ResourceName(core.ResourceStorage): resource.MustParse("5G"), },