]> git.proxmox.com Git - qemu-server.git/commitdiff
add initiator-name to iscsi drives if configured
authorMichael Rasmussen <mir@datanom.net>
Tue, 13 May 2014 01:10:40 +0000 (03:10 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Sat, 17 May 2014 06:42:54 +0000 (08:42 +0200)
Signed-off-by: Michael Rasmussen <mir@datanom.net>
PVE/QemuServer.pm

index 2cb2d950fbefa12256752451a1bece472a28987e..c4ec8facb3be5484be28018c654ab9d4011e02d8 100644 (file)
@@ -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 (<FILE>) {
+       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);
     });