64 lines
2.0 KiB
Go
64 lines
2.0 KiB
Go
package driver
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/KubelanCloud/kks-csi-plugin/pkg/csi/provisioner"
|
|
"github.com/container-storage-interface/spec/lib/go/csi"
|
|
)
|
|
|
|
type fakeBackend struct {
|
|
createReq provisioner.CreateVolumeRequest
|
|
}
|
|
|
|
func (f *fakeBackend) ClusterInfo(context.Context) (provisioner.ClusterInfo, error) {
|
|
return provisioner.ClusterInfo{}, nil
|
|
}
|
|
|
|
func (f *fakeBackend) CreateVolume(_ context.Context, req provisioner.CreateVolumeRequest) (provisioner.Volume, error) {
|
|
f.createReq = req
|
|
return provisioner.Volume{VolumeID: "vol-1", SizeBytes: req.SizeBytes}, nil
|
|
}
|
|
|
|
func (f *fakeBackend) DeleteVolume(context.Context, string) error { return nil }
|
|
|
|
func (f *fakeBackend) VolumeExists(context.Context, string) (bool, error) { return false, nil }
|
|
|
|
func (f *fakeBackend) PublishVolume(context.Context, string, string) (provisioner.PublishVolumeResponse, error) {
|
|
return provisioner.PublishVolumeResponse{}, nil
|
|
}
|
|
|
|
func (f *fakeBackend) UnpublishVolume(context.Context, string, string) error { return nil }
|
|
|
|
func (f *fakeBackend) Close() error { return nil }
|
|
|
|
func TestControllerCreateVolumeForwardsStorageClassParameters(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
backend := &fakeBackend{}
|
|
s := &ControllerServer{d: &Driver{backend: backend}}
|
|
|
|
_, err := s.CreateVolume(context.Background(), &csi.CreateVolumeRequest{
|
|
Name: "pvc-demo",
|
|
CapacityRange: &csi.CapacityRange{
|
|
RequiredBytes: 10,
|
|
},
|
|
VolumeCapabilities: []*csi.VolumeCapability{{
|
|
AccessType: &csi.VolumeCapability_Mount{Mount: &csi.VolumeCapability_MountVolume{}},
|
|
AccessMode: &csi.VolumeCapability_AccessMode{Mode: csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER},
|
|
}},
|
|
Parameters: map[string]string{
|
|
"kks.kloud/provisioning-mode": "deferred",
|
|
"example": "value",
|
|
},
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("CreateVolume returned error: %v", err)
|
|
}
|
|
|
|
if backend.createReq.Parameters["kks.kloud/provisioning-mode"] != "deferred" {
|
|
t.Fatalf("unexpected forwarded parameters: %#v", backend.createReq.Parameters)
|
|
}
|
|
}
|