From 401bcfce53e3678bd1ef5b4a636b8696a1b93d69 Mon Sep 17 00:00:00 2001 From: Hans Date: Sun, 20 Sep 2020 15:08:32 +0800 Subject: [PATCH 1/3] Support for TrueNAS SCALE version pattern --- perl5/PVE/Storage/LunCmd/FreeNAS.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/perl5/PVE/Storage/LunCmd/FreeNAS.pm b/perl5/PVE/Storage/LunCmd/FreeNAS.pm index 7645d45..5445a9c 100644 --- a/perl5/PVE/Storage/LunCmd/FreeNAS.pm +++ b/perl5/PVE/Storage/LunCmd/FreeNAS.pm @@ -399,11 +399,11 @@ sub freenas_api_check { $result->{'fullversion'} =~ s/^"//g; } syslog("info", (caller(0))[3] . " : successful : Server version: " . $result->{'fullversion'}); - $result->{'fullversion'} =~ s/^(\w+)\-(\d+)\.(\d+)\-(?:U|BETA)(\d?)\.?(\d?)//; - my $freenas_version = sprintf("%02d%02d%02d%02d", $2, $3 || 0, $4 || 0, $5 || 0); + $result->{'fullversion'} =~ /^(\w+(?:-\w+)?)\-(\d+)\.(\d+)/; + my $freenas_version = sprintf("%02d%02d", $2, $3 || 0); $product_name = $1; syslog("info", (caller(0))[3] . " : ". $product_name . " Unformatted Version: " . $freenas_version); - if ($freenas_version >= 11030100) { + if ($freenas_version >= 1103) { $freenas_api_version = "v2.0"; $dev_prefix = "/dev/"; } From 29cf4c48cdaa6e82c0b0a91d4c7853eec6bfff26 Mon Sep 17 00:00:00 2001 From: Hans Date: Sun, 20 Sep 2020 16:23:57 +0800 Subject: [PATCH 2/3] extent name replace / to - --- perl5/PVE/Storage/LunCmd/FreeNAS.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/perl5/PVE/Storage/LunCmd/FreeNAS.pm b/perl5/PVE/Storage/LunCmd/FreeNAS.pm index 5445a9c..6c4e307 100644 --- a/perl5/PVE/Storage/LunCmd/FreeNAS.pm +++ b/perl5/PVE/Storage/LunCmd/FreeNAS.pm @@ -83,7 +83,7 @@ my $freenas_api_version_matrix = { "type" => "DISK", "name" => "\$name", "disk" => "\$device", - }, + }, }, "targetextent" => { "resource" => "/api/v2.0/iscsi/targetextent/", @@ -511,6 +511,7 @@ sub freenas_iscsi_create_extent { my $name = $lun_path; $name =~ s/^.*\///; # all from last / $name = $scfg->{'pool'} . '/' . $name; + $name =~ s/\//-/; # replace / to - my $device = $lun_path; $device =~ s/^\/dev\///; # strip /dev/ From 6eedef413759790b3b13050a2d19aa8598cea178 Mon Sep 17 00:00:00 2001 From: Hans Date: Sun, 20 Sep 2020 21:44:22 +0800 Subject: [PATCH 3/3] fix bug when method is DELETE --- perl5/PVE/Storage/LunCmd/FreeNAS.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perl5/PVE/Storage/LunCmd/FreeNAS.pm b/perl5/PVE/Storage/LunCmd/FreeNAS.pm index 6c4e307..b11996c 100644 --- a/perl5/PVE/Storage/LunCmd/FreeNAS.pm +++ b/perl5/PVE/Storage/LunCmd/FreeNAS.pm @@ -439,7 +439,7 @@ sub freenas_api_call { $freenas_rest_connection = $freenas_server_list->{$apihost}; $freenas_global_config = $freenas_global_config_list->{$apihost}; my $json_data = (defined $data) ? encode_json($data) : undef; - $freenas_rest_connection->$method($path, $json_data); + $freenas_rest_connection->request($method, $path, $json_data); syslog("info", (caller(0))[3] . " : successful"); return; }