add provision failure hook in fake volume plugin

pull/58/head
lichuqiang 2018-08-17 17:01:00 +08:00
parent 9ba74cb5b5
commit 814dbac3df
1 changed files with 10 additions and 0 deletions

View File

@ -46,6 +46,10 @@ import (
"k8s.io/kubernetes/pkg/volume/util/volumepathhandler"
)
// A hook specified in storage class to indicate it's provisioning
// is expected to fail.
const ExpectProvisionFailureKey = "expect-provision-failure"
// fakeVolumeHost is useful for testing volume plugins.
type fakeVolumeHost struct {
rootDir string
@ -787,6 +791,12 @@ type FakeProvisioner struct {
}
func (fc *FakeProvisioner) Provision(selectedNode *v1.Node, allowedTopologies []v1.TopologySelectorTerm) (*v1.PersistentVolume, error) {
// Add provision failure hook
if fc.Options.Parameters != nil {
if _, ok := fc.Options.Parameters[ExpectProvisionFailureKey]; ok {
return nil, fmt.Errorf("expected error")
}
}
fullpath := fmt.Sprintf("/tmp/hostpath_pv/%s", uuid.NewUUID())
pv := &v1.PersistentVolume{