Add several validation to persistentvolume

This commit is contained in:
liangxia 2017-11-08 17:07:50 +08:00
parent 338ee7f5d5
commit 890f4b7e2e

View File

@ -87,6 +87,51 @@ func TestValidatePersistentVolumes(t *testing.T) {
volume *core.PersistentVolume volume *core.PersistentVolume
}{ }{
"good-volume": { "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, isExpectedFailure: false,
volume: testVolume("foo", "", core.PersistentVolumeSpec{ volume: testVolume("foo", "", core.PersistentVolumeSpec{
Capacity: core.ResourceList{ 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": { "bad-name": {
isExpectedFailure: true, isExpectedFailure: true,
volume: testVolume("123*Bad(Name", "unexpected-namespace", core.PersistentVolumeSpec{ 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"), core.ResourceName(core.ResourceStorage): resource.MustParse("10G"),
}, },
AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce}, AccessModes: []core.PersistentVolumeAccessMode{core.ReadWriteOnce},
PersistentVolumeSource: core.PersistentVolumeSource{
HostPath: &core.HostPathVolumeSource{
Path: "/foo",
Type: newHostPathType(string(core.HostPathDirectory)),
},
},
}), }),
}, },
"missing-capacity": { "missing-capacity": {
isExpectedFailure: true, 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": { "missing-accessmodes": {
isExpectedFailure: true, isExpectedFailure: true,
@ -208,7 +276,7 @@ func TestValidatePersistentVolumes(t *testing.T) {
}, },
"too-many-sources": { "too-many-sources": {
isExpectedFailure: true, isExpectedFailure: true,
volume: testVolume("", "", core.PersistentVolumeSpec{ volume: testVolume("foo", "", core.PersistentVolumeSpec{
Capacity: core.ResourceList{ Capacity: core.ResourceList{
core.ResourceName(core.ResourceStorage): resource.MustParse("5G"), core.ResourceName(core.ResourceStorage): resource.MustParse("5G"),
}, },