You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ml...@apache.org on 2015/02/17 23:26:10 UTC
git commit: updated refs/heads/master to ed8184a
Repository: cloudstack
Updated Branches:
refs/heads/master e768d702c -> ed8184a5b
CLOUDSTACK-8263: KVM - notify qemu process of resized volume for libvirt-resized storage
Change-Id: Iddd8bb068855d3565075d3ecf7c6c0f074d00e1a
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ed8184a5
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ed8184a5
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ed8184a5
Branch: refs/heads/master
Commit: ed8184a5b2cf575e015581d6b4c08ea9118d34aa
Parents: e768d70
Author: Marcus Sorensen <ma...@apple.com>
Authored: Tue Feb 17 14:25:55 2015 -0800
Committer: Marcus Sorensen <ma...@apple.com>
Committed: Tue Feb 17 14:25:55 2015 -0800
----------------------------------------------------------------------
.../kvm/resource/LibvirtComputingResource.java | 27 ++++++++++++--------
scripts/storage/qcow2/resizevolume.sh | 3 +++
2 files changed, 19 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8184a5/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
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 6783079..c6603f5 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -1852,6 +1852,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
String vmInstanceName = cmd.getInstanceName();
boolean shrinkOk = cmd.getShrinkOk();
StorageFilerTO spool = cmd.getPool();
+ final String notifyOnlyType = "NOTIFYONLY";
if ( currentSize == newSize) {
// nothing to do
@@ -1893,21 +1894,25 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
}
v.resize(newSize, flags);
+ type = notifyOnlyType;
} catch (LibvirtException e) {
return new ResizeVolumeAnswer(cmd, false, e.toString());
}
- } else {
- s_logger.debug("Volume " + path + " is of the type LVM and can not be resized using libvirt. Invoking resize script.");
- final Script resizecmd = new Script(_resizeVolumePath, _cmdsTimeout, s_logger);
- resizecmd.add("-s", String.valueOf(newSize));
- resizecmd.add("-c", String.valueOf(currentSize));
- resizecmd.add("-p", path);
- resizecmd.add("-t", type);
- resizecmd.add("-r", String.valueOf(shrinkOk));
- resizecmd.add("-v", vmInstanceName);
- String result = resizecmd.execute();
+ }
+ s_logger.debug("Invoking resize script to handle type " + type);
+ final Script resizecmd = new Script(_resizeVolumePath, _cmdsTimeout, s_logger);
+ resizecmd.add("-s", String.valueOf(newSize));
+ resizecmd.add("-c", String.valueOf(currentSize));
+ resizecmd.add("-p", path);
+ resizecmd.add("-t", type);
+ resizecmd.add("-r", String.valueOf(shrinkOk));
+ resizecmd.add("-v", vmInstanceName);
+ String result = resizecmd.execute();
- if (result != null) {
+ if (result != null) {
+ if(type.equals(notifyOnlyType)) {
+ return new ResizeVolumeAnswer(cmd, true, "Resize succeeded, but need reboot to notify guest");
+ } else {
return new ResizeVolumeAnswer(cmd, false, result);
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed8184a5/scripts/storage/qcow2/resizevolume.sh
----------------------------------------------------------------------
diff --git a/scripts/storage/qcow2/resizevolume.sh b/scripts/storage/qcow2/resizevolume.sh
index 6a5c91d..bc763d0 100755
--- a/scripts/storage/qcow2/resizevolume.sh
+++ b/scripts/storage/qcow2/resizevolume.sh
@@ -245,6 +245,9 @@ then
elif [ "$ptype" == "QCOW2" ]
then
resizeqcow2
+elif [ "$ptype" == "NOTIFYONLY" ]
+then
+ notifyqemu
else
echo "unsupported type $ptype"
exit 1;