Skip to content

Commit f5e0821

Browse files
committed
Added unit tests for identity server, fixed small spec inconsistency
1 parent 53270e2 commit f5e0821

File tree

5 files changed

+83
-4
lines changed

5 files changed

+83
-4
lines changed

cmd/main.go

+4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ var (
3535
nodeID = flag.String("nodeid", "", "node id")
3636
)
3737

38+
const (
39+
vendorVersion = "0.3.0"
40+
)
41+
3842
func main() {
3943
flag.Parse()
4044

pkg/gce-pd-csi-driver/gce-pd-driver.go

+9-3
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ import (
2626
)
2727

2828
type GCEDriver struct {
29-
name string
30-
nodeID string
29+
name string
30+
nodeID string
31+
vendorVersion string
3132

3233
ids *GCEIdentityServer
3334
ns *GCENodeServer
@@ -38,11 +39,15 @@ type GCEDriver struct {
3839
nscap []*csi.NodeServiceCapability
3940
}
4041

42+
const (
43+
vendorVersion = "v0.3.0-alpha"
44+
)
45+
4146
func GetGCEDriver() *GCEDriver {
4247
return &GCEDriver{}
4348
}
4449

45-
func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter mountmanager.Mounter, name string, nodeID string) error {
50+
func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter mountmanager.Mounter, name, nodeID string) error {
4651
if name == "" {
4752
return fmt.Errorf("Driver name missing")
4853
}
@@ -52,6 +57,7 @@ func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter
5257

5358
gceDriver.name = name
5459
gceDriver.nodeID = nodeID
60+
gceDriver.vendorVersion = vendorVersion
5561

5662
// Adding Capabilities
5763
vcam := []csi.VolumeCapability_AccessMode_Mode{

pkg/gce-pd-csi-driver/identity.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ func (gceIdentity *GCEIdentityServer) GetPluginInfo(ctx context.Context, req *cs
3535
}
3636

3737
return &csi.GetPluginInfoResponse{
38-
Name: gceIdentity.Driver.name,
38+
Name: gceIdentity.Driver.name,
39+
VendorVersion: gceIdentity.Driver.vendorVersion,
3940
}, nil
4041
}
4142

pkg/gce-pd-csi-driver/identity_test.go

+67
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,70 @@ limitations under the License.
1313
*/
1414

1515
package gceGCEDriver
16+
17+
import (
18+
"testing"
19+
20+
csi "github.com/container-storage-interface/spec/lib/go/csi/v0"
21+
"golang.org/x/net/context"
22+
)
23+
24+
const (
25+
vendorVersion = "0.3.0"
26+
)
27+
28+
func TestGetPluginInfo(t *testing.T) {
29+
gceDriver := GetGCEDriver()
30+
err := gceDriver.SetupGCEDriver(nil, nil, driver, node)
31+
if err != nil {
32+
t.Fatalf("Failed to setup GCE Driver: %v", err)
33+
}
34+
35+
resp, err := gceDriver.ids.GetPluginInfo(context.TODO(), &csi.GetPluginInfoRequest{})
36+
if err != nil {
37+
t.Fatalf("GetPluginInfo returned unexpected error: %v", err)
38+
}
39+
40+
if resp.GetName() != driver {
41+
t.Fatalf("Response name expected: %v, got: %v", driver, resp.GetName())
42+
}
43+
44+
respVer := resp.GetVendorVersion()
45+
if respVer != vendorVersion {
46+
t.Fatalf("Vendor version expected: %v, got: %v", vendorVersion, respVer)
47+
}
48+
}
49+
50+
func TestGetPluginCapabilities(t *testing.T) {
51+
gceDriver := GetGCEDriver()
52+
err := gceDriver.SetupGCEDriver(nil, nil, driver, node)
53+
if err != nil {
54+
t.Fatalf("Failed to setup GCE Driver: %v", err)
55+
}
56+
57+
resp, err := gceDriver.ids.GetPluginCapabilities(context.TODO(), &csi.GetPluginCapabilitiesRequest{})
58+
if err != nil {
59+
t.Fatalf("GetPluginCapabilities returned unexpected error: %v", err)
60+
}
61+
62+
for _, capability := range resp.GetCapabilities() {
63+
switch capability.GetService().GetType() {
64+
case csi.PluginCapability_Service_CONTROLLER_SERVICE:
65+
default:
66+
t.Fatalf("Unknown capability: %v", capability.GetService().GetType())
67+
}
68+
}
69+
}
70+
71+
func TestProbe(t *testing.T) {
72+
gceDriver := GetGCEDriver()
73+
err := gceDriver.SetupGCEDriver(nil, nil, driver, node)
74+
if err != nil {
75+
t.Fatalf("Failed to setup GCE Driver: %v", err)
76+
}
77+
78+
_, err = gceDriver.ids.Probe(context.TODO(), &csi.ProbeRequest{})
79+
if err != nil {
80+
t.Fatalf("Probe returned unexpected error: %v", err)
81+
}
82+
}

test/sanity/sanity_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ func TestSanity(t *testing.T) {
2929
// Set up variables
3030
driverName := "test-driver"
3131
nodeID := "io.kubernetes.storage.mock"
32+
vendorVersion := "0.3.0"
3233
project := "test-project"
3334
zone := "test-zone"
3435
// TODO(dyzz): Only one of these can be correct, the way endpoint is defined in GCE driver is INCORRECT

0 commit comments

Comments
 (0)