From 3ad583cf2dd0f4a0b3a11baada649df69a4fc20d Mon Sep 17 00:00:00 2001 From: markturansky Date: Sat, 23 May 2015 09:53:33 -0400 Subject: [PATCH] Fixed spotty CanSupport for PV and added more unit tests for same --- pkg/volume/aws_ebs/aws_ebs_test.go | 3 +++ pkg/volume/gce_pd/gce_pd_test.go | 3 +++ pkg/volume/glusterfs/glusterfs_test.go | 3 +++ pkg/volume/host_path/host_path_test.go | 3 +++ pkg/volume/iscsi/iscsi_test.go | 3 +++ pkg/volume/rbd/rbd.go | 2 +- pkg/volume/rbd/rbd_test.go | 3 +++ 7 files changed, 19 insertions(+), 1 deletion(-) diff --git a/pkg/volume/aws_ebs/aws_ebs_test.go b/pkg/volume/aws_ebs/aws_ebs_test.go index dd8d51767bd..a5017a0a896 100644 --- a/pkg/volume/aws_ebs/aws_ebs_test.go +++ b/pkg/volume/aws_ebs/aws_ebs_test.go @@ -40,6 +40,9 @@ func TestCanSupport(t *testing.T) { if !plug.CanSupport(&volume.Spec{Name: "foo", VolumeSource: api.VolumeSource{AWSElasticBlockStore: &api.AWSElasticBlockStoreVolumeSource{}}}) { t.Errorf("Expected true") } + if !plug.CanSupport(&volume.Spec{Name: "foo", PersistentVolumeSource: api.PersistentVolumeSource{AWSElasticBlockStore: &api.AWSElasticBlockStoreVolumeSource{}}}) { + t.Errorf("Expected true") + } } func TestGetAccessModes(t *testing.T) { diff --git a/pkg/volume/gce_pd/gce_pd_test.go b/pkg/volume/gce_pd/gce_pd_test.go index ef6b4771393..5e6e9330ad2 100644 --- a/pkg/volume/gce_pd/gce_pd_test.go +++ b/pkg/volume/gce_pd/gce_pd_test.go @@ -40,6 +40,9 @@ func TestCanSupport(t *testing.T) { if !plug.CanSupport(&volume.Spec{Name: "foo", VolumeSource: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{}}}) { t.Errorf("Expected true") } + if !plug.CanSupport(&volume.Spec{Name: "foo", PersistentVolumeSource: api.PersistentVolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{}}}) { + t.Errorf("Expected true") + } } func TestGetAccessModes(t *testing.T) { diff --git a/pkg/volume/glusterfs/glusterfs_test.go b/pkg/volume/glusterfs/glusterfs_test.go index b9f40e200bf..abfbbffdfd5 100644 --- a/pkg/volume/glusterfs/glusterfs_test.go +++ b/pkg/volume/glusterfs/glusterfs_test.go @@ -40,6 +40,9 @@ func TestCanSupport(t *testing.T) { if !plug.CanSupport(&volume.Spec{Name: "foo", VolumeSource: api.VolumeSource{Glusterfs: &api.GlusterfsVolumeSource{}}}) { t.Errorf("Expected true") } + if !plug.CanSupport(&volume.Spec{Name: "foo", PersistentVolumeSource: api.PersistentVolumeSource{Glusterfs: &api.GlusterfsVolumeSource{}}}) { + t.Errorf("Expected true") + } if plug.CanSupport(&volume.Spec{Name: "foo", VolumeSource: api.VolumeSource{}}) { t.Errorf("Expected false") } diff --git a/pkg/volume/host_path/host_path_test.go b/pkg/volume/host_path/host_path_test.go index 54d755f1cd4..84ba54b1286 100644 --- a/pkg/volume/host_path/host_path_test.go +++ b/pkg/volume/host_path/host_path_test.go @@ -38,6 +38,9 @@ func TestCanSupport(t *testing.T) { if !plug.CanSupport(&volume.Spec{Name: "foo", VolumeSource: api.VolumeSource{HostPath: &api.HostPathVolumeSource{}}}) { t.Errorf("Expected true") } + if !plug.CanSupport(&volume.Spec{Name: "foo", PersistentVolumeSource: api.PersistentVolumeSource{HostPath: &api.HostPathVolumeSource{}}}) { + t.Errorf("Expected true") + } if plug.CanSupport(&volume.Spec{Name: "foo", VolumeSource: api.VolumeSource{}}) { t.Errorf("Expected false") } diff --git a/pkg/volume/iscsi/iscsi_test.go b/pkg/volume/iscsi/iscsi_test.go index b3cdf9f494a..8f0ff955a21 100644 --- a/pkg/volume/iscsi/iscsi_test.go +++ b/pkg/volume/iscsi/iscsi_test.go @@ -37,6 +37,9 @@ func TestCanSupport(t *testing.T) { if plug.Name() != "kubernetes.io/iscsi" { t.Errorf("Wrong name: %s", plug.Name()) } + if plug.CanSupport(&volume.Spec{Name: "foo", VolumeSource: api.VolumeSource{}}) { + t.Errorf("Expected false") + } } type fakeDiskManager struct { diff --git a/pkg/volume/rbd/rbd.go b/pkg/volume/rbd/rbd.go index 01ad33cc422..fd7480366c0 100644 --- a/pkg/volume/rbd/rbd.go +++ b/pkg/volume/rbd/rbd.go @@ -53,7 +53,7 @@ func (plugin *RBDPlugin) Name() string { } func (plugin *RBDPlugin) CanSupport(spec *volume.Spec) bool { - if spec.VolumeSource.RBD == nil { + if spec.VolumeSource.RBD == nil && spec.PersistentVolumeSource.RBD == nil { return false } // see if rbd is there diff --git a/pkg/volume/rbd/rbd_test.go b/pkg/volume/rbd/rbd_test.go index ad3638cb342..0696e42d922 100644 --- a/pkg/volume/rbd/rbd_test.go +++ b/pkg/volume/rbd/rbd_test.go @@ -37,6 +37,9 @@ func TestCanSupport(t *testing.T) { if plug.Name() != "kubernetes.io/rbd" { t.Errorf("Wrong name: %s", plug.Name()) } + if plug.CanSupport(&volume.Spec{Name: "foo", VolumeSource: api.VolumeSource{}}) { + t.Errorf("Expected false") + } } type fakeDiskManager struct{}