62 lines
2.3 KiB
Diff
62 lines
2.3 KiB
Diff
--- /usr/share/perl5/PVE/Storage/ZFSPlugin.pm.orig 2018-06-04 11:59:59.851426278 +0800
|
|
+++ /usr/share/perl5/PVE/Storage/ZFSPlugin.pm 2018-06-04 12:04:56.781049166 +0800
|
|
@@ -10,6 +10,7 @@
|
|
|
|
use base qw(PVE::Storage::ZFSPoolPlugin);
|
|
use PVE::Storage::LunCmd::Comstar;
|
|
+use PVE::Storage::LunCmd::FreeNAS;
|
|
use PVE::Storage::LunCmd::Istgt;
|
|
use PVE::Storage::LunCmd::Iet;
|
|
|
|
@@ -31,7 +32,7 @@
|
|
my $zfs_unknown_scsi_provider = sub {
|
|
my ($provider) = @_;
|
|
|
|
- die "$provider: unknown iscsi provider. Available [comstar, istgt, iet]";
|
|
+ die "$provider: unknown iscsi provider. Available [comstar, freenas, istgt, iet]";
|
|
};
|
|
|
|
my $zfs_get_base = sub {
|
|
@@ -39,6 +40,8 @@
|
|
|
|
if ($scfg->{iscsiprovider} eq 'comstar') {
|
|
return PVE::Storage::LunCmd::Comstar::get_base;
|
|
+ } elsif ($scfg->{iscsiprovider} eq 'freenas') {
|
|
+ return PVE::Storage::LunCmd::FreeNAS::get_base;
|
|
} elsif ($scfg->{iscsiprovider} eq 'istgt') {
|
|
return PVE::Storage::LunCmd::Istgt::get_base;
|
|
} elsif ($scfg->{iscsiprovider} eq 'iet') {
|
|
@@ -59,6 +62,8 @@
|
|
if ($lun_cmds->{$method}) {
|
|
if ($scfg->{iscsiprovider} eq 'comstar') {
|
|
$msg = PVE::Storage::LunCmd::Comstar::run_lun_command($scfg, $timeout, $method, @params);
|
|
+ } elsif ($scfg->{iscsiprovider} eq 'freenas') {
|
|
+ $msg = PVE::Storage::LunCmd::FreeNAS::run_lun_command($scfg, $timeout, $method, @params);
|
|
} elsif ($scfg->{iscsiprovider} eq 'istgt') {
|
|
$msg = PVE::Storage::LunCmd::Istgt::run_lun_command($scfg, $timeout, $method, @params);
|
|
} elsif ($scfg->{iscsiprovider} eq 'iet') {
|
|
@@ -173,6 +178,14 @@
|
|
description => "iscsi provider",
|
|
type => 'string',
|
|
},
|
|
+ freenas_user => {
|
|
+ description => "FreeNAS API Username",
|
|
+ type => 'string',
|
|
+ },
|
|
+ freenas_password => {
|
|
+ description => "FreeNAS API Password",
|
|
+ type => 'string',
|
|
+ },
|
|
# this will disable write caching on comstar and istgt.
|
|
# it is not implemented for iet. iet blockio always operates with
|
|
# writethrough caching when not in readonly mode
|
|
@@ -204,6 +217,8 @@
|
|
sparse => { optional => 1 },
|
|
comstar_hg => { optional => 1 },
|
|
comstar_tg => { optional => 1 },
|
|
+ freenas_user => { optional => 1 },
|
|
+ freenas_password => { optional => 1 },
|
|
content => { optional => 1 },
|
|
bwlimit => { optional => 1 },
|
|
};
|