X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=nokiav2%2Fdriver%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fvfc%2Fnfvo%2Fdriver%2Fvnfm%2Fsvnfm%2Fnokia%2Fvnfm%2Fnotification%2FLifecycleChangeNotificationManager.java;fp=nokiav2%2Fdriver%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fvfc%2Fnfvo%2Fdriver%2Fvnfm%2Fsvnfm%2Fnokia%2Fvnfm%2Fnotification%2FLifecycleChangeNotificationManager.java;h=88c1e00777bc49341d1381c41d02e168b9565d4e;hb=b884556a9c083ffe9450e55fd67ae0574e475959;hp=9b4973439dce54a15b63b2d06de3aea6672c05a9;hpb=65de5e8a56100c0c44b8fce128d4b8c8e67a2a0c;p=vfc%2Fnfvo%2Fdriver%2Fvnfm%2Fsvnfm.git diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/notification/LifecycleChangeNotificationManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/notification/LifecycleChangeNotificationManager.java index 9b497343..88c1e007 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/notification/LifecycleChangeNotificationManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/notification/LifecycleChangeNotificationManager.java @@ -28,6 +28,8 @@ import java.util.Optional; import java.util.Set; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.api.INotificationSender; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.SelfRegistrationManager; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.OperationMustBeAborted; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.CbamRestApiProvider; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.ILifecycleChangeNotificationManager; @@ -210,15 +212,19 @@ public class LifecycleChangeNotificationManager implements ILifecycleChangeNotif JsonObject operationResult = root.getAsJsonObject().get("operationResult").getAsJsonObject(); if (isAbsent(operationResult, "cbam_pre") || isAbsent(operationResult, "cbam_post")) { - return handleFailure(operationExecution, null); + return handleFailure(operationExecution); } else { return of(new Gson().fromJson(operationResult, ReportedAffectedConnectionPoints.class)); } } else { - return handleFailure(operationExecution, null); + return handleFailure(operationExecution); } - } catch (Exception e) { - return handleFailure(operationExecution, e); + } + catch(OperationMustBeAborted handledFailuire){ + throw handledFailuire; + } + catch (Exception e) { + return toleratedFailure(); } } @@ -226,15 +232,16 @@ public class LifecycleChangeNotificationManager implements ILifecycleChangeNotif return !operationResult.has(key) || !operationResult.get(key).isJsonArray(); } - private Optional handleFailure(OperationExecution operationExecution, Exception e) { + private Optional handleFailure(OperationExecution operationExecution) { if (operationExecution.getStatus() == OperationStatus.FAILED) { - logger.warn("The operation failed and the affected connection points were not reported"); - return empty(); + return toleratedFailure(); } else { - if (e != null) { - throw buildFatalFailure(logger, PROBLEM, e); - } throw buildFatalFailure(logger, PROBLEM); } } + + private Optional toleratedFailure() { + logger.warn("The operation failed and the affected connection points were not reported"); + return empty(); + } }