summaryrefslogtreecommitdiffstats
path: root/bpmn/MSOCommonBPMN/src/main/groovy
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/MSOCommonBPMN/src/main/groovy')
-rw-r--r--bpmn/MSOCommonBPMN/src/main/groovy/org/openecomp/mso/bpmn/common/scripts/CommonExceptionUtil.groovy382
1 files changed, 0 insertions, 382 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/openecomp/mso/bpmn/common/scripts/CommonExceptionUtil.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/openecomp/mso/bpmn/common/scripts/CommonExceptionUtil.groovy
deleted file mode 100644
index cce05feca8..0000000000
--- a/bpmn/MSOCommonBPMN/src/main/groovy/org/openecomp/mso/bpmn/common/scripts/CommonExceptionUtil.groovy
+++ /dev/null
@@ -1,382 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * OPENECOMP - MSO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.bpmn.common.scripts
-
-import org.camunda.bpm.engine.runtime.Execution
-import org.apache.commons.lang3.*
-
-class CommonExceptionUtil {
-
-
-
- public static enum Error {
- SVC_GENERAL_SERVICE_ERROR("SVC0001","Internal Error"),
- SVC_BAD_PARAMETER("SVC0002", "Invalid input value for message part %1"),
- SVC_NO_SERVER_RESOURCES("SVC1000", "No server resources available to process the request"),
- SVC_DETAILED_SERVICE_ERROR("SVC2000", "The following service error occurred: %1. Error code is %2."),
- POL_GENERAL_POLICY_ERROR("POL0001", "A policy error occurred."),
- POL_USER_NOT_PROVISIONED("POL1009", "User has not been provisioned for service"),
- POL_USER_SUSPENDED("POL1010", "User has been suspended from service"),
- POL_DETAILED_POLICY_ERROR("POL2000", "The following policy error occurred: %1. Error code is %2."),
- POL_MSG_SIZE_EXCEEDS_LIMIT("POL9003", "Message content size exceeds the allowable limit")
-
-
- private final String msgId
- private final String msgTxt
-
- private Error(String msgId, String msgTxt) {
- this.msgId = msgId
- this.msgTxt = msgTxt
- }
-
- public String getMsgId() {
- return msgId
- }
-
- public String getMsgTxt() {
- return msgTxt
- }
-
- }
-
-
-
-
- String mapAdapterExecptionToCommonException(String response, Execution execution)
- {
- def utils=new MsoUtils()
- def method = getClass().getSimpleName() + '.mapAdapterExecptionToCommonException(' +
- 'execution=' + execution.getId() +
- ')'
-
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- utils.log("DEBUG",'Entered ' + method, isDebugLogEnabled)
-
-
- def errorCode
-
-
- try {
- errorCode = MapCategoryToErrorCode(utils.getNodeText(response, "category"))
- execution.setVariable(prefix+"err",errorCode)
- String message = buildException(response, execution)
- utils.log("DEBUG","=========== End MapAdapterExecptionToWorkflowException ===========",isDebugLogEnabled)
- return message
- }catch (Exception ex) {
- //Ignore the exception - cases include non xml payload
- utils.log("DEBUG","error mapping error, ignoring: " + ex,isDebugLogEnabled)
- utils.log("DEBUG","=========== End MapAdapterExecptionToWorkflowException ===========",isDebugLogEnabled)
- return buildException(response, execution)
- }
- }
-
- /**
- * @param response
- * @param execution
- * @return mapped exception
- */
- String mapAOTSExecptionToCommonException(String response, Execution execution)
- {
- def utils=new MsoUtils()
-
- def prefix=execution.getVariable("prefix")
- def method = getClass().getSimpleName() + '.mapAOTSExecptionToCommonException(' +
- 'execution=' + execution.getId() +
- ')'
-
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- utils.log("DEBUG",'Entered ' + method, isDebugLogEnabled)
-
-
- try {
- def errorCode = utils.getNodeText(response,"code")
- def descr = utils.getNodeText(response, "description")
- def mappedErr = mapErrorCodetoError(errorCode, descr)
- if(mappedErr == Error.SVC_DETAILED_SERVICE_ERROR || mappedError == Error.POL_DETAILED_POLICY_ERROR){
- ArrayList myVars = new ArrayList()
- myVars.add(descr)
- myVars.add(errorCode)
- execution.setVariable(prefix+"errVariables", myVars)
- }
- execution.setVariable(prefix+"err",mappedErr)
- def message = buildException("Received error from AOTS: " + descr, execution)
- utils.log("DEBUG","=========== End MapAOTSExecptionToCommonException ===========",isDebugLogEnabled)
- return message
- }catch (Exception ex) {
- //Ignore the exception - cases include non xml payload
- utils.log("DEBUG","error mapping error, ignoring: " + ex,isDebugLogEnabled)
- utils.log("DEBUG","=========== End MapAOTSExecptionToCommonException ===========",isDebugLogEnabled)
- return buildException(response, execution)
- }
- }
-
- String mapSDNCAdapterExceptionToErrorResponse(String sdncAdapterCallbackRequest, Execution execution) {
- def utils=new MsoUtils()
- def prefix=execution.getVariable("prefix")
- def method = getClass().getSimpleName() + '.mapSDNCAdapterExceptionToErrorResponse(' +
- 'execution=' + execution.getId() +
- ')'
-
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- utils.log("DEBUG",'Entered ' + method, isDebugLogEnabled)
-
- def sdncResponseCode
- String responseCode = execution.getVariable(prefix+"ResponseCode")
- utils.log("DEBUG",'responseCode to map: ' + responseCode, isDebugLogEnabled)
- def errorMessage
-
- try {
-
- if(utils.nodeExists(sdncAdapterCallbackRequest, "RequestData")) {
- def reqDataXml = StringEscapeUtils.unescapeXml(utils.getNodeXml(sdncAdapterCallbackRequest, "RequestData"))
- errorMessage = utils.getNodeText(reqDataXml, "response-message")
- sdncResponseCode = utils.getNodeText(reqDataXml, "response-code")
- }else{
- errorMessage = utils.getNodeText(sdncAdapterCallbackRequest, "ResponseMessage")
- sdncResponseCode = responseCode
- }
- def mappedErr = mapErrorCodetoError(responseCode, errorMessage)
- errorMessage = errorMessage.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
- def modifiedErrorMessage = "Received error from SDN-C: " + errorMessage
- if(mappedErr == Error.SVC_DETAILED_SERVICE_ERROR || mappedErr == Error.POL_DETAILED_POLICY_ERROR){
- ArrayList myVars = new ArrayList()
- myVars.add(errorMessage)
- myVars.add(sdncResponseCode)
- execution.setVariable(prefix+"errVariables", myVars)
- }
- execution.setVariable(prefix+"err",mappedErr)
- def message = buildException(modifiedErrorMessage, execution)
-
-
- utils.log("DEBUG","=========== End MapSDNCAdapterException ===========",isDebugLogEnabled)
- return message
- }catch (Exception ex) {
- //Ignore the exception - cases include non xml payload
- utils.log("DEBUG","error mapping sdnc error, ignoring: " + ex,isDebugLogEnabled)
- utils.log("DEBUG","=========== End MapSDNCAdapterException ===========",isDebugLogEnabled)
- return null
- }
-
- }
-
- /**
- * @param response message from called component (ex: AAI)
- * @param execution
- * @return an error response conforming to the common
- */
- String mapAAIExceptionTCommonException(String response, Execution execution)
- {
- def utils=new MsoUtils()
- def isDebugLogEnabled=execution.getVariable("isDebugLogEnabled")
- def prefix=execution.getVariable("prefix")
- def method = getClass().getSimpleName() + '.mapAAIExceptionTCommonException(' +
- 'execution=' + execution.getId() +
- ')'
-
- utils.log("DEBUG",'Entered ' + method, isDebugLogEnabled)
- def variables
- def message
- String errorCode = 'SVC0001'
- utils.log("DEBUG","response: " + response, isDebugLogEnabled)
- //they use the same format we do, pass their error along
- //TODO add Received error from A&AI at beg of text
- try {
- message = utils.getNodeXml(response, "requestError")
- message = utils.removeXmlNamespaces(message)
- } catch (Exception ex) {
- //Ignore the exception - cases include non xml payload
- message = buildException("Received error from A&AI, unable to parse",execution)
- utils.log("DEBUG","error mapping error, ignoring: " + ex,isDebugLogEnabled)
- }
-
- if(message != null) {
- execution.setVariable(prefix+"ErrorResponse",message)
- utils.log("ERROR","Fault:"+ execution.getVariable(prefix+"ErrorResponse"))
- return message
- } else {
-
- return null
-
- }
- }
-
- /**
- * @param execution
- * @return an error response conforming to the common API with default text msg
- */
- String buildException(execution){
- return buildException(null, execution)
- }
-
- /**
- * @param response message from called component (ex: AAI)
- * @param execution
- * @return an error response conforming to the common
- */
- String buildException(response, execution){
- def utils=new MsoUtils()
- def method = getClass().getSimpleName() + '.buildException(' +
- 'execution=' + execution.getId() +
- ')'
-
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- utils.log("DEBUG",'Entered ' + method, isDebugLogEnabled)
- def prefix=execution.getVariable("prefix")
- def responseCode = String.valueOf(execution.getVariable(prefix+"ResponseCode"))
- def variables
- utils.log("DEBUG","response: " + response, isDebugLogEnabled)
-
- try {
- utils.log("DEBUG","formatting error message" ,isDebugLogEnabled)
- def msgVars = execution.getVariable(prefix+"errVariables")
- def myErr = execution.getVariable(prefix+"err")
- def messageTxt = execution.getVariable(prefix+"errTxt")
- def messageId = null
-
- if(myErr == null){
- utils.log("DEBUG","mapping response code: " + responseCode, isDebugLogEnabled)
- myErr = mapErrorCodetoError(responseCode, response)
- if(myErr == null){
- //not a service or policy error, just return error code
- return ""
- }
- }
- messageId = myErr.getMsgId()
-
- if(messageTxt == null){
- if(myErr!=null){
- messageTxt = myErr.getMsgTxt()
- }else{
- messageTxt = response
- }
- }
-
- if(msgVars==null && (myErr == Error.SVC_DETAILED_SERVICE_ERROR || myErr == Error.POL_DETAILED_POLICY_ERROR)){
- msgVars = new ArrayList()
- msgVars.add(response)
- msgVars.add(responseCode)
- }
-
- def msgVarsXML=""
- StringBuffer msgVarsBuff = new StringBuffer()
- if(msgVars!=null){
- for(String msgVar : msgVars){
- msgVarsBuff.append(
- """
- <tns:variables>${msgVar}</tns:variables>""")
- }
-
- }
- def message = ""
- if(messageId.startsWith("SVC")){
- message = """<tns:requestError xmlns:tns="http://org.openecomp/mso/request/types/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://org.openecomp/mso/request/types/v1 MsoServiceInstanceTypesV1.xsd">
- <tns:serviceException>
- <tns:messageId>${messageId}</tns:messageId>
- <tns:text>${messageTxt}</tns:text>${msgVarsBuff}
- </tns:serviceException>
-</tns:requestError>"""
- }else{
- message ="""<tns:requestError xmlns:tns="http://org.openecomp/mso/request/types/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://org.openecomp/mso/request/types/v1 MsoServiceInstanceTypesV1.xsd">
- <tns:policyException>
- <tns:messageId>${messageId}</tns:messageId>
- <tns:text>${messageTxt}</tns:text>${msgVarsBuff}
- </tns:policyException>
-</tns:requestError>"""
- }
- utils.log("DEBUG", "message " + message, isDebugLogEnabled)
- execution.setVariable(prefix+"ErrorResponse",message)
- execution.setVariable(prefix+"err", myErr)
- execution.setVariable(prefix+"errTxt", messageTxt)
- execution.setVariable(prefix+"errVariables", msgVars)
- utils.log("ERROR","Fault:"+ execution.getVariable(prefix+"ErrorResponse"))
- return message
- }catch(Exception ex) {
- utils.log("DEBUG","error mapping error, return null: " + ex,isDebugLogEnabled)
- return null
- }
-
- }
-
- String parseError(Execution execution){
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- def utils=new MsoUtils()
- def prefix=execution.getVariable("prefix")
- def text = execution.getVariable(prefix+"errTxt")
- def msgVars = execution.getVariable(prefix+"errVariables")
- utils.log("DEBUG",'parsing message: ' + text, isDebugLogEnabled)
- if(text == null){
- return 'failed'
- }
- if(msgVars!=null && !msgVars.isEmpty()){
- for(int i=0; i<msgVars.size(); i++){
- text = text.replaceFirst("%"+(i+1), msgVars[i])
- }
- }
- utils.log("DEBUG",'parsed message is: ' + text, isDebugLogEnabled)
- return text
- }
-
-
-
- Error mapErrorCodetoError(responseCode, descr)
- {
-
- if(responseCode==null || responseCode=='0' || responseCode=='500' || responseCode =='408'){
- return Error.SVC_NO_SERVER_RESOURCES
- }else if(responseCode == '401' || responseCode == '405' || responseCode == '409' || responseCode == '503'){
- return null
- }else if(responseCode == '400'){
- if(descr==null){
- return Error.SVC_GENERAL_SERVICE_ERROR
- }else{
- return Error.SVC_DETAILED_SERVICE_ERROR
- }
- }else if(responseCode == '401'){
- if(descr==null){
- return Error.POL_GENERAL_POLICY_ERROR
- }else{
- return Error.POL_DETAILED_POLICY_ERROR
- }
- }else{
- return Error.SVC_NO_SERVER_RESOURCES
- }
- }
-
- String mapCategoryToErrorCode(String errorCategory)
- {
- if(errorCategory.equals('OPENSTACK'))
- return Error.SVC_NO_SERVER_RESOURCES
- else if (errorCategory.equals('IO'))
- return Error.SVC_NO_SERVER_RESOURCES
- else if (errorCategory.equals('INTERNAL'))
- return Error.SVC_NO_SERVER_RESOURCES
- else if (errorCategory.equals('USERDATA'))
- return Error.SVC_GENERAL_SERVICE_ERROR
- else
- return Error.SVC_GENERAL_SERVICE_ERROR
- }
-
-
-
-
-
-
-}