Merge pull request #8133 from markturansky/iscsi_pv2

added ISCSI volume plugin to PersistentVolumeSource
This commit is contained in:
Tim Hockin
2015-05-27 08:36:37 -07:00
10 changed files with 76 additions and 1 deletions

View File

@@ -53,9 +53,11 @@ func (plugin *ISCSIPlugin) Name() string {
}
func (plugin *ISCSIPlugin) CanSupport(spec *volume.Spec) bool {
if spec.VolumeSource.ISCSI == nil {
if spec.VolumeSource.ISCSI == nil && spec.PersistentVolumeSource.ISCSI == nil {
return false
}
// TODO: turn this into a func so CanSupport can be unit tested without
// having to make system calls
// see if iscsiadm is there
_, err := plugin.execCommand("iscsiadm", []string{"-h"})
if err == nil {

View File

@@ -39,6 +39,28 @@ func TestCanSupport(t *testing.T) {
}
}
func TestGetAccessModes(t *testing.T) {
plugMgr := volume.VolumePluginMgr{}
plugMgr.InitPlugins(ProbeVolumePlugins(), volume.NewFakeVolumeHost("/tmp/fake", nil, nil))
plug, err := plugMgr.FindPersistentPluginByName("kubernetes.io/iscsi")
if err != nil {
t.Errorf("Can't find the plugin by name")
}
if !contains(plug.GetAccessModes(), api.ReadWriteOnce) || !contains(plug.GetAccessModes(), api.ReadOnlyMany) {
t.Errorf("Expected two AccessModeTypes: %s and %s", api.ReadWriteOnce, api.ReadOnlyMany)
}
}
func contains(modes []api.PersistentVolumeAccessMode, mode api.PersistentVolumeAccessMode) bool {
for _, m := range modes {
if m == mode {
return true
}
}
return false
}
type fakeDiskManager struct {
attachCalled bool
detachCalled bool