From 929838c8eb10bd96f14edcfd1d9f4579631d8d7c Mon Sep 17 00:00:00 2001 From: Mike Tutkowski Date: Fri, 3 Jan 2014 22:25:40 -0700 Subject: [PATCH] Merge from 4.3: CLOUDSTACK-5662: XenServer can't discover iSCSI targets with different credentials --- .../resource/LibvirtComputingResource.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 6b13ccb2fb3..71c8e979bc5 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -4034,6 +4034,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv cmd.setCluster(_clusterId); cmd.setGatewayIpAddress(_localGateway); cmd.setHostVmStateReport(getHostVmStateReport()); + cmd.setIqn(getIqn()); StartupStorageCommand sscmd = null; try { @@ -4059,6 +4060,32 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv } } + private String getIqn() { + try { + final String textToFind = "InitiatorName="; + + Script iScsiAdmCmd = new Script(true, "grep", 0, s_logger); + + iScsiAdmCmd.add(textToFind); + iScsiAdmCmd.add("/etc/iscsi/initiatorname.iscsi"); + + OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser(); + + String result = iScsiAdmCmd.execute(parser); + + if (result != null) { + return null; + } + + String textFound = parser.getLine().trim(); + + return textFound.substring(textToFind.length()); + } + catch (Exception ex) { + return null; + } + } + protected HashMap sync() { HashMap newStates; HashMap oldStates = null;