diff --git a/pkg/volume/fc/fc.go b/pkg/volume/fc/fc.go index 5aee9ba92b..9e140c7406 100644 --- a/pkg/volume/fc/fc.go +++ b/pkg/volume/fc/fc.go @@ -82,11 +82,7 @@ func (plugin *fcPlugin) GetVolumeName(spec *volume.Spec) (string, error) { } func (plugin *fcPlugin) CanSupport(spec *volume.Spec) bool { - if (spec.Volume != nil && spec.Volume.FC == nil) || (spec.PersistentVolume != nil && spec.PersistentVolume.Spec.FC == nil) { - return false - } - - return true + return (spec.Volume != nil && spec.Volume.FC != nil) || (spec.PersistentVolume != nil && spec.PersistentVolume.Spec.FC != nil) } func (plugin *fcPlugin) RequiresRemount() bool { diff --git a/pkg/volume/fc/fc_test.go b/pkg/volume/fc/fc_test.go index 0f12042432..29e062a662 100644 --- a/pkg/volume/fc/fc_test.go +++ b/pkg/volume/fc/fc_test.go @@ -50,9 +50,24 @@ func TestCanSupport(t *testing.T) { if plug.GetPluginName() != "kubernetes.io/fc" { t.Errorf("Wrong name: %s", plug.GetPluginName()) } + if plug.CanSupport(&volume.Spec{}) { + t.Errorf("Expected false") + } if plug.CanSupport(&volume.Spec{Volume: &v1.Volume{VolumeSource: v1.VolumeSource{}}}) { t.Errorf("Expected false") } + if !plug.CanSupport(&volume.Spec{Volume: &v1.Volume{VolumeSource: v1.VolumeSource{FC: &v1.FCVolumeSource{}}}}) { + t.Errorf("Expected true") + } + if plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{}}}) { + t.Errorf("Expected false") + } + if plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{PersistentVolumeSource: v1.PersistentVolumeSource{}}}}) { + t.Errorf("Expected false") + } + if !plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{PersistentVolumeSource: v1.PersistentVolumeSource{FC: &v1.FCVolumeSource{}}}}}) { + t.Errorf("Expected true") + } } func TestGetAccessModes(t *testing.T) { diff --git a/pkg/volume/iscsi/iscsi.go b/pkg/volume/iscsi/iscsi.go index e9611e208c..58313353d5 100644 --- a/pkg/volume/iscsi/iscsi.go +++ b/pkg/volume/iscsi/iscsi.go @@ -69,11 +69,7 @@ func (plugin *iscsiPlugin) GetVolumeName(spec *volume.Spec) (string, error) { } func (plugin *iscsiPlugin) CanSupport(spec *volume.Spec) bool { - if (spec.Volume != nil && spec.Volume.ISCSI == nil) || (spec.PersistentVolume != nil && spec.PersistentVolume.Spec.ISCSI == nil) { - return false - } - - return true + return (spec.Volume != nil && spec.Volume.ISCSI != nil) || (spec.PersistentVolume != nil && spec.PersistentVolume.Spec.ISCSI != nil) } func (plugin *iscsiPlugin) RequiresRemount() bool { diff --git a/pkg/volume/iscsi/iscsi_test.go b/pkg/volume/iscsi/iscsi_test.go index eeb6fa6c01..f3759fb0ec 100644 --- a/pkg/volume/iscsi/iscsi_test.go +++ b/pkg/volume/iscsi/iscsi_test.go @@ -52,6 +52,21 @@ func TestCanSupport(t *testing.T) { if plug.CanSupport(&volume.Spec{Volume: &v1.Volume{VolumeSource: v1.VolumeSource{}}}) { t.Errorf("Expected false") } + if plug.CanSupport(&volume.Spec{}) { + t.Errorf("Expected false") + } + if !plug.CanSupport(&volume.Spec{Volume: &v1.Volume{VolumeSource: v1.VolumeSource{ISCSI: &v1.ISCSIVolumeSource{}}}}) { + t.Errorf("Expected true") + } + if plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{}}}) { + t.Errorf("Expected false") + } + if plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{PersistentVolumeSource: v1.PersistentVolumeSource{}}}}) { + t.Errorf("Expected false") + } + if !plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{PersistentVolumeSource: v1.PersistentVolumeSource{ISCSI: &v1.ISCSIPersistentVolumeSource{}}}}}) { + t.Errorf("Expected true") + } } func TestGetAccessModes(t *testing.T) { diff --git a/pkg/volume/rbd/rbd.go b/pkg/volume/rbd/rbd.go index e1a6452e9c..6f65a9cd98 100644 --- a/pkg/volume/rbd/rbd.go +++ b/pkg/volume/rbd/rbd.go @@ -101,11 +101,7 @@ func (plugin *rbdPlugin) GetVolumeName(spec *volume.Spec) (string, error) { } func (plugin *rbdPlugin) CanSupport(spec *volume.Spec) bool { - if (spec.Volume != nil && spec.Volume.RBD == nil) || (spec.PersistentVolume != nil && spec.PersistentVolume.Spec.RBD == nil) { - return false - } - - return true + return (spec.Volume != nil && spec.Volume.RBD != nil) || (spec.PersistentVolume != nil && spec.PersistentVolume.Spec.RBD != nil) } func (plugin *rbdPlugin) RequiresRemount() bool { diff --git a/pkg/volume/rbd/rbd_test.go b/pkg/volume/rbd/rbd_test.go index 9107fe7f5b..b644fe7576 100644 --- a/pkg/volume/rbd/rbd_test.go +++ b/pkg/volume/rbd/rbd_test.go @@ -55,9 +55,24 @@ func TestCanSupport(t *testing.T) { if plug.GetPluginName() != "kubernetes.io/rbd" { t.Errorf("Wrong name: %s", plug.GetPluginName()) } + if plug.CanSupport(&volume.Spec{}) { + t.Errorf("Expected false") + } if plug.CanSupport(&volume.Spec{Volume: &v1.Volume{VolumeSource: v1.VolumeSource{}}}) { t.Errorf("Expected false") } + if !plug.CanSupport(&volume.Spec{Volume: &v1.Volume{VolumeSource: v1.VolumeSource{RBD: &v1.RBDVolumeSource{}}}}) { + t.Errorf("Expected true") + } + if plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{}}}) { + t.Errorf("Expected false") + } + if plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{PersistentVolumeSource: v1.PersistentVolumeSource{}}}}) { + t.Errorf("Expected false") + } + if !plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{PersistentVolumeSource: v1.PersistentVolumeSource{RBD: &v1.RBDPersistentVolumeSource{}}}}}) { + t.Errorf("Expected true") + } } type fakeDiskManager struct {