Trim IQN so that the format /iqn/lun becomes iqn. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/de531c0c Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/de531c0c Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/de531c0c
Branch: refs/heads/ldapplugin Commit: de531c0c0a6ced719b64146a1d805a47cbe0ccb9 Parents: 81193ff Author: Mike Tutkowski <[email protected]> Authored: Wed Aug 28 15:08:45 2013 -0600 Committer: Mike Tutkowski <[email protected]> Committed: Wed Aug 28 15:08:45 2013 -0600 ---------------------------------------------------------------------- .../vmware/resource/VmwareResource.java | 22 ++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/de531c0c/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 64dfd20..1723ef3 100755 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -4160,6 +4160,20 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa return str.replace('/', '-'); } + private String trimIqn(String iqn) { + String[] tmp = iqn.split("/"); + + if (tmp.length != 3) { + String msg = "Wrong format for iScsi path: " + iqn + ". It should be formatted as '/targetIQN/LUN'."; + + s_logger.warn(msg); + + throw new CloudRuntimeException(msg); + } + + return tmp[1].trim(); + } + @Override public ManagedObjectReference handleDatastoreAndVmdkAttach(Command cmd, String iqn, String storageHost, int storagePort, String initiatorUsername, String initiatorPassword, String targetUsername, String targetPassword) throws Exception { @@ -4167,9 +4181,9 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa VmwareHypervisorHost hyperHost = getHyperHost(context); ManagedObjectReference morDs = createVmfsDatastore(hyperHost, getDatastoreName(iqn), - storageHost, storagePort, iqn, - initiatorUsername, initiatorPassword, - targetUsername, targetPassword); + storageHost, storagePort, trimIqn(iqn), + initiatorUsername, initiatorPassword, + targetUsername, targetPassword); DatastoreMO dsMo = new DatastoreMO(context, morDs); @@ -4198,7 +4212,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa VmwareContext context = getServiceContext(); VmwareHypervisorHost hyperHost = getHyperHost(context); - deleteVmfsDatastore(hyperHost, getDatastoreName(iqn), storageHost, storagePort, iqn); + deleteVmfsDatastore(hyperHost, getDatastoreName(iqn), storageHost, storagePort, trimIqn(iqn)); } protected Answer execute(AttachVolumeCommand cmd) {
