diff --git a/perl5/PVE/Storage/LunCmd/FreeNAS.pm b/perl5/PVE/Storage/LunCmd/FreeNAS.pm index b11996c..1bc0198 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'} =~ /^(\w+(?:-\w+)?)\-(\d+)\.(\d+)/; - my $freenas_version = sprintf("%02d%02d", $2, $3 || 0); + $result->{'fullversion'} =~ s/^((?!\-\d).*)\-(\d+)\.(\d+)\-([A-Za-z]*)(?(?=\-)\-(\d*)\-(\d*)|(\d?)\.?(\d?))//; $product_name = $1; + my $freenas_version = sprintf("%02d%02d%02d%02d", $2, $3 || 0, $7 || 0, $8 || 0); syslog("info", (caller(0))[3] . " : ". $product_name . " Unformatted Version: " . $freenas_version); - if ($freenas_version >= 1103) { + if ($freenas_version >= 11030100) { $freenas_api_version = "v2.0"; $dev_prefix = "/dev/"; } @@ -510,8 +510,7 @@ sub freenas_iscsi_create_extent { my $name = $lun_path; $name =~ s/^.*\///; # all from last / - $name = $scfg->{'pool'} . '/' . $name; - $name =~ s/\//-/; # replace / to - + $name = $scfg->{'pool'} . ($product_name eq "TrueNAS-SCALE" ? '-' : '/') . $name; my $device = $lun_path; $device =~ s/^\/dev\///; # strip /dev/