From 814dbac3dfd7c5df14e63e527ecaae9a8e5cf734 Mon Sep 17 00:00:00 2001 From: lichuqiang Date: Fri, 17 Aug 2018 17:01:00 +0800 Subject: [PATCH] add provision failure hook in fake volume plugin --- pkg/volume/testing/testing.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/volume/testing/testing.go b/pkg/volume/testing/testing.go index e6e090a4ca..7edd8d0f7f 100644 --- a/pkg/volume/testing/testing.go +++ b/pkg/volume/testing/testing.go @@ -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{