You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2017/06/07 06:14:57 UTC
[cloudstack] 01/01: Merge remote-tracking branch 'origin/4.9'
This is an automated email from the ASF dual-hosted git repository.
bhaisaab pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit ed376fcad6a107fdb495a2c310fd4d1fe431c4dd
Merge: ccd623f 52232b9
Author: Rohit Yadav <ro...@shapeblue.com>
AuthorDate: Wed Jun 7 11:21:27 2017 +0530
Merge remote-tracking branch 'origin/4.9'
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
.../cloudstack/api/command/user/vm/StopVMCmd.java | 2 +-
core/src/com/cloud/agent/api/StopCommand.java | 13 ++++-
.../com/cloud/vm/VirtualMachineManagerImpl.java | 6 +--
.../kvm/resource/LibvirtComputingResource.java | 15 +++---
.../wrapper/LibvirtStopCommandWrapper.java | 3 +-
.../hypervisor/vmware/resource/VmwareResource.java | 13 +++--
.../xenserver/resource/CitrixResourceBase.java | 11 ++--
.../wrapper/xenbase/CitrixStopCommandWrapper.java | 2 +-
.../debian/config/opt/cloud/bin/configure.py | 30 -----------
.../debian/config/opt/cloud/bin/cs/CsVmPassword.py | 61 ++++++++++++++++++++++
.../patches/debian/config/opt/cloud/bin/cs_vmp.py | 27 ----------
.../patches/debian/config/opt/cloud/bin/merge.py | 20 +++----
.../debian/config/opt/cloud/bin/update_config.py | 22 +++++++-
test/integration/smoke/test_vm_life_cycle.py | 36 ++++++++++++-
14 files changed, 172 insertions(+), 89 deletions(-)
diff --cc core/src/com/cloud/agent/api/StopCommand.java
index be68eef,869af3a..e1d68f8
--- a/core/src/com/cloud/agent/api/StopCommand.java
+++ b/core/src/com/cloud/agent/api/StopCommand.java
@@@ -28,7 -28,7 +28,8 @@@ public class StopCommand extends Reboot
private String publicConsoleProxyIpAddress = null;
private GPUDeviceTO gpuDevice;
boolean checkBeforeCleanup = false;
+ String controlIp = null;
+ boolean forceStop = false;
protected StopCommand() {
}
@@@ -84,11 -90,7 +91,15 @@@
return this.checkBeforeCleanup;
}
+ public String getControlIp(){
+ return controlIp;
+ }
+
+ public void setControlIp(String controlIp){
- this.controlIp =controlIp;
++ this.controlIp = controlIp;
++ }
++
+ public boolean isForceStop() {
+ return forceStop;
}
}
diff --cc engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 4106ccc,dfc48d5..8cc8de1
mode 100755,100644..100755
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@@ -1551,9 -1535,8 +1551,9 @@@ public class VirtualMachineManagerImpl
}
vmGuru.prepareStop(profile);
- StopCommand stpCmd = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), false);
- stpCmd.setControlIp(getControlNicIpForVM(vm));
- final StopCommand stop = stpCmd;
+
+ final StopCommand stop = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType()), false, cleanUpEvenIfUnableToStop);
++ stop.setControlIp(getControlNicIpForVM(vm));
boolean stopped = false;
Answer answer = null;
diff --cc plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index e763831,c88400b..71699c4
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@@ -2825,26 -2729,13 +2825,29 @@@ public class LibvirtComputingResource e
DomainState state = null;
Domain dm = null;
+ // delete the metadata of vm snapshots before stopping
+ try {
+ dm = conn.domainLookupByName(vmName);
+ cleanVMSnapshotMetadata(dm);
+ } catch (LibvirtException e) {
+ s_logger.debug("Failed to get vm :" + e.getMessage());
+ } finally {
+ try {
+ if (dm != null) {
+ dm.free();
+ }
+ } catch (LibvirtException l) {
+ s_logger.trace("Ignoring libvirt error.", l);
+ }
+ }
+
s_logger.debug("Try to stop the vm at first");
- String ret = stopVM(conn, vmName, false);
+ if (forceStop) {
+ return stopVMInternal(conn, vmName, true);
+ }
+ String ret = stopVMInternal(conn, vmName, false);
if (ret == Script.ERR_TIMEOUT) {
- ret = stopVM(conn, vmName, true);
+ ret = stopVMInternal(conn, vmName, true);
} else if (ret != null) {
/*
* There is a race condition between libvirt and qemu: libvirt
--
To stop receiving notification emails like this one, please contact
"commits@cloudstack.apache.org" <co...@cloudstack.apache.org>.