From 718fd5f39f34500f9defdeb8193e69ee01cff3b7 Mon Sep 17 00:00:00 2001 From: Kishan Kavala Date: Wed, 27 Aug 2014 16:13:35 +0530 Subject: [PATCH] CLOUDSTACK-7445: Number whitespaces in "rbd showmapped" command varies in plain format. Use regex in grep to workaround. --- .../com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java index 6b7a195d0ad..22806722eee 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java @@ -947,7 +947,7 @@ public class KVMStorageProcessor implements StorageProcessor { if (resource.getHypervisorType() == Hypervisor.HypervisorType.LXC) { String[] splitPoolImage = attachingDisk.getPath().split("/"); //ToDo: rbd showmapped supports json and xml output. Use json/xml to get device - String device = Script.runSimpleBashScript("rbd showmapped | grep \""+splitPoolImage[0]+" "+splitPoolImage[1]+"\" | cut -d \" \" -f10"); + String device = Script.runSimpleBashScript("rbd showmapped | grep \""+splitPoolImage[0]+"[ ]*"+splitPoolImage[1]+"\" | grep -o \"[^ ]*[ ]*$\""); if (device != null) { s_logger.debug("RBD device on host is: "+device); attachingDisk.setPath(device); @@ -974,7 +974,7 @@ public class KVMStorageProcessor implements StorageProcessor { //Split pool and image details from disk path String[] splitPoolImage = attachingDisk.getPath().split("/"); //ToDo: rbd showmapped supports json and xml output. Use json/xml to get device - String device = Script.runSimpleBashScript("rbd showmapped | grep \""+splitPoolImage[0]+" "+splitPoolImage[1]+"\" | cut -d \" \" -f10"); + String device = Script.runSimpleBashScript("rbd showmapped | grep \""+splitPoolImage[0]+"[ ]*"+splitPoolImage[1]+"\" | grep -o \"[^ ]*[ ]*$\""); if (device != null) { s_logger.debug("RBD device on host is: "+device); diskdef.defBlockBasedDisk(device, devId, DiskDef.diskBus.VIRTIO);