Ravi Nori has uploaded a new change for review. Change subject: engine: Deleting all snapshot disks during a vdsm restart leaves disks locked ......................................................................
engine: Deleting all snapshot disks during a vdsm restart leaves disks locked Restarting vdsm when deleting snapshot volumes leaves some volumes in locked status. Change-Id: I58b354541821845f506f9848782763f3c2526f9c Bug-Url: https://bugzilla.redhat.com/1157222 Signed-off-by: Ravi Nori <rn...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcRunTimeException.java 2 files changed, 25 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/76/35776/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java index 01d3595..55b0f6f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java @@ -6,16 +6,19 @@ import org.ovirt.engine.core.common.action.ImagesContainterParametersBase; import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.businessentities.DiskImage; +import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.common.job.StepEnum; import org.ovirt.engine.core.common.vdscommands.MergeSnapshotsVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.job.ExecutionMessageDirector; +import org.ovirt.engine.core.utils.transaction.TransactionMethod; +import org.ovirt.engine.core.utils.transaction.TransactionSupport; import org.springframework.util.CollectionUtils; @InternalCommandAttribute -public class RemoveSnapshotSingleDiskCommand<T extends ImagesContainterParametersBase> extends RemoveSnapshotSingleDiskCommandBase { +public class RemoveSnapshotSingleDiskCommand<T extends ImagesContainterParametersBase> extends RemoveSnapshotSingleDiskCommandBase<T> { public RemoveSnapshotSingleDiskCommand(T parameters) { super(parameters); @@ -85,4 +88,22 @@ setSucceeded(true); } + + @Override + public void rollback() { + super.rollback(); + TransactionSupport.executeInNewTransaction(new TransactionMethod<Object>() { + @Override + public Object runInTransaction() { + if (!getParameters().isLeaveLocked()) { + DiskImage diskImage = getDestinationDiskImage(); + if (diskImage != null) { + getImageDao().updateStatus(diskImage.getImage().getId(), ImageStatus.OK); + } + unLockImage(); + } + return null; + } + }); + } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcRunTimeException.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcRunTimeException.java index f05f3fe..2cce746 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcRunTimeException.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/xmlrpc/XmlRpcRunTimeException.java @@ -6,6 +6,8 @@ public static final String NETWORK_ERROR_MSG = "I/O error while communicating with HTTP server: Connection refused"; + public static final String CONNECTION_ISSUES_MSG = "Connection issues"; + public XmlRpcRunTimeException(String message, Throwable cause) { super(message, cause); } @@ -15,7 +17,7 @@ } public boolean isNetworkError() { - if (getMessage().startsWith(NETWORK_ERROR_MSG)) { + if (getMessage().startsWith(NETWORK_ERROR_MSG) || getMessage().startsWith(CONNECTION_ISSUES_MSG)) { return true; } else { return false; -- To view, visit http://gerrit.ovirt.org/35776 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I58b354541821845f506f9848782763f3c2526f9c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <rn...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches