From 15b21acc0dc327b5077d377dcb0a96782cbca221 Mon Sep 17 00:00:00 2001 From: Michael Rasmussen Date: Tue, 13 May 2014 03:10:40 +0200 Subject: [PATCH] add initiator-name to iscsi drives if configured Signed-off-by: Michael Rasmussen --- PVE/QemuServer.pm | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 2cb2d950..c4ec8fac 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -1125,6 +1125,20 @@ sub print_drivedevice_full { return $device; } +sub get_initiator_name { + my $initiator = undef; + + open (FILE, '/etc/iscsi/initiatorname.iscsi') or return undef; + while () { + next unless m/^\s*InitiatorName\s*=\s*([\.\-:\w]+)/; + $initiator = $1; + last; + } + close FILE; + + return $initiator; +} + sub print_drive_full { my ($storecfg, $vmid, $drive) = @_; @@ -2612,8 +2626,17 @@ sub config_to_command { push @$devices, '-device', "ahci,id=ahci$controller,multifunction=on$pciaddr" if !$ahcicontroller->{$controller}; $ahcicontroller->{$controller}=1; } - - push @$devices, '-drive',print_drive_full($storecfg, $vmid, $drive); + + my $drive_cmd = print_drive_full($storecfg, $vmid, $drive); + push @$devices, '-drive',$drive_cmd; + + # Add iscsi option + my $iscsi_opts = undef; + if ($drive_cmd =~ m|^file=iscsi://|) { + my $initiator = get_initiator_name(); # return undef or string + $iscsi_opts = "initiator-name=$initiator" if $initiator; + } + push @$devices, '-iscsi',$iscsi_opts if $iscsi_opts; push @$devices, '-device',print_drivedevice_full($storecfg, $conf, $vmid, $drive, $bridges); }); -- 2.39.5