Roy Golan has uploaded a new change for review.
Change subject: engine: revisit improving VDSM error handling
......................................................................
engine: revisit improving VDSM error handling
- fix a major issue caused by 1d3c67c9cf7846ab73e6411fb8aebff8a29f9cfb where
VdsManager expects
VdsNetworkException on network issue.
- improved the identifying network error by catching all IOExceptions.
this ease catching corner case protocol error.
- refactor and clean VdsNetworkException and its tree to use a
constructor with a Throwable - cleaned the unuseful "{ClassName}: "
convention which is already implemented in Throwable toString().
Change-Id: I9df04879b15575842da1bd53c39c00a6623374e0
Signed-off-by: Roy Golan <[email protected]>
---
M
backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/ApplicationException.java
M
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSExceptionBase.java
M
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSGenericException.java
M
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSNetworkException.java
M
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
5 files changed, 29 insertions(+), 25 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/23/9723/1
diff --git
a/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/ApplicationException.java
b/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/ApplicationException.java
index f81a97a..045f602 100644
---
a/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/ApplicationException.java
+++
b/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/ApplicationException.java
@@ -11,6 +11,9 @@
super(string);
}
+ public ApplicationException(Throwable ex) {
+ super(ex);
+ }
public ApplicationException(String string, Throwable ex) {
super(string, ex);
}
diff --git
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSExceptionBase.java
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSExceptionBase.java
index 84f8cb6..ea7202e 100644
---
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSExceptionBase.java
+++
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSExceptionBase.java
@@ -4,6 +4,9 @@
import org.ovirt.engine.core.common.errors.*;
public class VDSExceptionBase extends ApplicationException {
+
+ private static final long serialVersionUID = 5709501011970689110L;
+
private VDSError privateVdsError;
public VDSError getVdsError() {
@@ -18,10 +21,14 @@
// {
// super(info, context);
// }
- public VDSExceptionBase(String errMessage, RuntimeException baseException)
{
+ public VDSExceptionBase(String errMessage, Throwable baseException) {
super(errMessage, baseException);
}
+ public VDSExceptionBase(Throwable baseException) {
+ super(baseException);
+ }
+
public VDSExceptionBase(String errMessage) {
super(errMessage);
}
diff --git
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSGenericException.java
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSGenericException.java
index f79663a..e165317 100644
---
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSGenericException.java
+++
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSGenericException.java
@@ -3,17 +3,15 @@
import org.ovirt.engine.core.common.errors.*;
public class VDSGenericException extends VDSExceptionBase implements
java.io.Serializable {
- // protected VDSGenericException(SerializationInfo info, StreamingContext
- // context)
- // {
- // super(info, context);
- // }
- public VDSGenericException(String message, RuntimeException baseException)
{
+
+ private static final long serialVersionUID = 4778043822136178263L;
+
+ public VDSGenericException(String message, Throwable baseException) {
super(message, baseException);
}
- public VDSGenericException(RuntimeException baseException) {
- super("VDSGenericException: ", baseException);
+ public VDSGenericException(Throwable baseException) {
+ super(baseException);
}
public VDSGenericException(String errorStr) {
diff --git
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSNetworkException.java
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSNetworkException.java
index 68833b2..8ae1f91 100644
---
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSNetworkException.java
+++
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VDSNetworkException.java
@@ -1,13 +1,12 @@
package org.ovirt.engine.core.vdsbroker.vdsbroker;
public class VDSNetworkException extends VDSGenericException implements
java.io.Serializable {
- // protected VDSNetworkException(SerializationInfo info, StreamingContext
- // context)
- // {
- // super(info, context);
- // }
- public VDSNetworkException(RuntimeException baseException) {
- super("VDSNetworkException: ", baseException);
+
+ private static final long serialVersionUID = -486466100359278549L;
+
+ public VDSNetworkException(Throwable baseException) {
+ super(baseException);
+
}
public VDSNetworkException(String errorStr) {
diff --git
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
index f608d23..a9f40a5 100644
---
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
+++
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
@@ -1,7 +1,6 @@
package org.ovirt.engine.core.vdsbroker.vdsbroker;
-import java.net.ConnectException;
-
+import java.io.IOException;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.errors.VDSError;
@@ -101,25 +100,23 @@
throw new VDSProtocolException(ex);
} catch (XmlRpcRunTimeException ex) {
Throwable rootCause = ExceptionUtils.getRootCause(ex);
- if ((ex.isNetworkError() || rootCause instanceof
ConnectException)) {
+ VDSNetworkException networkException = new
VDSNetworkException(rootCause);
+ if ((ex.isNetworkError() || rootCause instanceof IOException)) {
log.debugFormat(msgFormat,
getCommandName(),
getAdditionalInformation(),
ex.getMessage(),
rootCause.getMessage());
- PrintReturnValue();
- throw new VDSNetworkException(ex);
} else {
log.errorFormat(msgFormat,
getCommandName(),
getAdditionalInformation(),
ex.getMessage(),
rootCause.getMessage());
- PrintReturnValue();
- VDSProtocolException vdsProtocolException = new
VDSProtocolException(rootCause.getMessage());
- vdsProtocolException.setVdsError(new
VDSError(VdcBllErrors.PROTOCOL_ERROR, rootCause.getMessage()));
- throw vdsProtocolException;
+ networkException.setVdsError(new
VDSError(VdcBllErrors.PROTOCOL_ERROR, rootCause.toString()));
}
+ PrintReturnValue();
+ throw networkException;
}
// TODO: look for invalid certificates error handling
--
To view, visit http://gerrit.ovirt.org/9723
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9df04879b15575842da1bd53c39c00a6623374e0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches