From 4acedc8308a13763d118a8bf7502bd159580670a Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Sat, 28 Aug 2021 10:30:31 +0530 Subject: [PATCH 1/2] Fix failure to scp diagnostic data file from SSVM on ubuntu based env (#5384) --- .../apache/cloudstack/diagnostics/DiagnosticsServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/org/apache/cloudstack/diagnostics/DiagnosticsServiceImpl.java b/server/src/main/java/org/apache/cloudstack/diagnostics/DiagnosticsServiceImpl.java index 0184a44ff39..f5bba77b2ab 100644 --- a/server/src/main/java/org/apache/cloudstack/diagnostics/DiagnosticsServiceImpl.java +++ b/server/src/main/java/org/apache/cloudstack/diagnostics/DiagnosticsServiceImpl.java @@ -340,8 +340,8 @@ public class DiagnosticsServiceImpl extends ManagerBase implements PluggableServ File dataDirectory = new File(dataDirectoryInSecondaryStore); boolean existsInSecondaryStore = dataDirectory.exists() || dataDirectory.mkdir(); if (existsInSecondaryStore) { - // scp from system VM to mounted sec storage directory - File permKey = new File("/var/cloudstack/management/.ssh/id_rsa"); + String homeDir = System.getProperty("user.home"); + File permKey = new File(homeDir + "/.ssh/id_rsa"); SshHelper.scpFrom(vmSshIp, 3922, "root", permKey, dataDirectoryInSecondaryStore, diagnosticsFile); } From 41f6f0e568f7a2352a7adbccdce33b214c40a370 Mon Sep 17 00:00:00 2001 From: Wei Zhou <57355700+weizhouapache@users.noreply.github.com> Date: Sat, 28 Aug 2021 14:10:31 +0200 Subject: [PATCH 2/2] server: allow destroy/recover volumes which are attached to removed vms (#5364) * server: allow destroy volumes which attach to a expunged vm * server: recover volume which is attached to a removed vm --- .../src/main/java/com/cloud/storage/VolumeApiServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java index 9791267f498..abb8265f20f 100644 --- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java +++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java @@ -1364,7 +1364,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic if (!_snapshotMgr.canOperateOnVolume(volume)) { throw new InvalidParameterValueException("There are snapshot operations in progress on the volume, unable to delete it"); } - if (volume.getInstanceId() != null && volume.getState() != Volume.State.Expunged) { + if (volume.getInstanceId() != null && _vmInstanceDao.findById(volume.getInstanceId()) != null && volume.getState() != Volume.State.Expunged) { throw new InvalidParameterValueException("Please specify a volume that is not attached to any VM."); } if (volume.getState() == Volume.State.UploadOp) { @@ -1520,6 +1520,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic } try { + _volsDao.detachVolume(volume.getId()); stateTransitTo(volume, Volume.Event.RecoverRequested); } catch (NoTransitionException e) { s_logger.debug("Failed to recover volume" + volume.getId(), e);