github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/plugins/csi/testing/client.go (about) 1 package testing 2 3 import ( 4 "context" 5 6 csipbv1 "github.com/container-storage-interface/spec/lib/go/csi" 7 "google.golang.org/grpc" 8 ) 9 10 // IdentityClient is a CSI identity client used for testing 11 type IdentityClient struct { 12 NextErr error 13 NextPluginInfo *csipbv1.GetPluginInfoResponse 14 NextPluginCapabilities *csipbv1.GetPluginCapabilitiesResponse 15 NextPluginProbe *csipbv1.ProbeResponse 16 } 17 18 // NewIdentityClient returns a new IdentityClient 19 func NewIdentityClient() *IdentityClient { 20 return &IdentityClient{} 21 } 22 23 func (f *IdentityClient) Reset() { 24 f.NextErr = nil 25 f.NextPluginInfo = nil 26 f.NextPluginCapabilities = nil 27 f.NextPluginProbe = nil 28 } 29 30 // GetPluginInfo returns plugin info 31 func (f *IdentityClient) GetPluginInfo(ctx context.Context, in *csipbv1.GetPluginInfoRequest, opts ...grpc.CallOption) (*csipbv1.GetPluginInfoResponse, error) { 32 return f.NextPluginInfo, f.NextErr 33 } 34 35 // GetPluginCapabilities implements csi method 36 func (f *IdentityClient) GetPluginCapabilities(ctx context.Context, in *csipbv1.GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*csipbv1.GetPluginCapabilitiesResponse, error) { 37 return f.NextPluginCapabilities, f.NextErr 38 } 39 40 // Probe implements csi method 41 func (f *IdentityClient) Probe(ctx context.Context, in *csipbv1.ProbeRequest, opts ...grpc.CallOption) (*csipbv1.ProbeResponse, error) { 42 return f.NextPluginProbe, f.NextErr 43 } 44 45 // ControllerClient is a CSI controller client used for testing 46 type ControllerClient struct { 47 NextErr error 48 NextCapabilitiesResponse *csipbv1.ControllerGetCapabilitiesResponse 49 NextPublishVolumeResponse *csipbv1.ControllerPublishVolumeResponse 50 NextUnpublishVolumeResponse *csipbv1.ControllerUnpublishVolumeResponse 51 NextValidateVolumeCapabilitiesResponse *csipbv1.ValidateVolumeCapabilitiesResponse 52 } 53 54 // NewControllerClient returns a new ControllerClient 55 func NewControllerClient() *ControllerClient { 56 return &ControllerClient{} 57 } 58 59 func (f *ControllerClient) Reset() { 60 f.NextErr = nil 61 f.NextCapabilitiesResponse = nil 62 f.NextPublishVolumeResponse = nil 63 f.NextUnpublishVolumeResponse = nil 64 f.NextValidateVolumeCapabilitiesResponse = nil 65 } 66 67 func (c *ControllerClient) ControllerGetCapabilities(ctx context.Context, in *csipbv1.ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*csipbv1.ControllerGetCapabilitiesResponse, error) { 68 return c.NextCapabilitiesResponse, c.NextErr 69 } 70 71 func (c *ControllerClient) ControllerPublishVolume(ctx context.Context, in *csipbv1.ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*csipbv1.ControllerPublishVolumeResponse, error) { 72 return c.NextPublishVolumeResponse, c.NextErr 73 } 74 75 func (c *ControllerClient) ControllerUnpublishVolume(ctx context.Context, in *csipbv1.ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*csipbv1.ControllerUnpublishVolumeResponse, error) { 76 return c.NextUnpublishVolumeResponse, c.NextErr 77 } 78 79 func (c *ControllerClient) ValidateVolumeCapabilities(ctx context.Context, in *csipbv1.ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*csipbv1.ValidateVolumeCapabilitiesResponse, error) { 80 return c.NextValidateVolumeCapabilitiesResponse, c.NextErr 81 } 82 83 // NodeClient is a CSI Node client used for testing 84 type NodeClient struct { 85 NextErr error 86 NextCapabilitiesResponse *csipbv1.NodeGetCapabilitiesResponse 87 NextGetInfoResponse *csipbv1.NodeGetInfoResponse 88 NextStageVolumeResponse *csipbv1.NodeStageVolumeResponse 89 NextUnstageVolumeResponse *csipbv1.NodeUnstageVolumeResponse 90 NextPublishVolumeResponse *csipbv1.NodePublishVolumeResponse 91 NextUnpublishVolumeResponse *csipbv1.NodeUnpublishVolumeResponse 92 } 93 94 // NewNodeClient returns a new stub NodeClient 95 func NewNodeClient() *NodeClient { 96 return &NodeClient{} 97 } 98 99 func (f *NodeClient) Reset() { 100 f.NextErr = nil 101 f.NextCapabilitiesResponse = nil 102 f.NextGetInfoResponse = nil 103 f.NextStageVolumeResponse = nil 104 f.NextUnstageVolumeResponse = nil 105 f.NextPublishVolumeResponse = nil 106 f.NextUnpublishVolumeResponse = nil 107 } 108 109 func (c *NodeClient) NodeGetCapabilities(ctx context.Context, in *csipbv1.NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*csipbv1.NodeGetCapabilitiesResponse, error) { 110 return c.NextCapabilitiesResponse, c.NextErr 111 } 112 113 func (c *NodeClient) NodeGetInfo(ctx context.Context, in *csipbv1.NodeGetInfoRequest, opts ...grpc.CallOption) (*csipbv1.NodeGetInfoResponse, error) { 114 return c.NextGetInfoResponse, c.NextErr 115 } 116 117 func (c *NodeClient) NodeStageVolume(ctx context.Context, in *csipbv1.NodeStageVolumeRequest, opts ...grpc.CallOption) (*csipbv1.NodeStageVolumeResponse, error) { 118 return c.NextStageVolumeResponse, c.NextErr 119 } 120 121 func (c *NodeClient) NodeUnstageVolume(ctx context.Context, in *csipbv1.NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*csipbv1.NodeUnstageVolumeResponse, error) { 122 return c.NextUnstageVolumeResponse, c.NextErr 123 } 124 125 func (c *NodeClient) NodePublishVolume(ctx context.Context, in *csipbv1.NodePublishVolumeRequest, opts ...grpc.CallOption) (*csipbv1.NodePublishVolumeResponse, error) { 126 return c.NextPublishVolumeResponse, c.NextErr 127 } 128 129 func (c *NodeClient) NodeUnpublishVolume(ctx context.Context, in *csipbv1.NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*csipbv1.NodeUnpublishVolumeResponse, error) { 130 return c.NextUnpublishVolumeResponse, c.NextErr 131 }