diff options
author | 2017-06-09 02:39:56 +0300 | |
---|---|---|
committer | 2017-06-09 02:39:56 +0300 | |
commit | 280f8015d06af1f41a3ef12e8300801c7a5e0d54 (patch) | |
tree | 9c1d3978c04cd28068f02073038c936bb49ca9e0 /openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/src/main/java/org/openecomp/sdcrests/action/rest/services | |
parent | fd3821dad11780d33c5373d74c957c442489945e (diff) |
[SDC-29] Amdocs OnBoard 1707 initial commit.
Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370
Signed-off-by: AviZi <avi.ziv@amdocs.com>
Diffstat (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/src/main/java/org/openecomp/sdcrests/action/rest/services')
-rw-r--r-- | openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/src/main/java/org/openecomp/sdcrests/action/rest/services/ActionsImpl.java | 737 |
1 files changed, 381 insertions, 356 deletions
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/src/main/java/org/openecomp/sdcrests/action/rest/services/ActionsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/src/main/java/org/openecomp/sdcrests/action/rest/services/ActionsImpl.java index 7e9cca0e0b..2ed5235867 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/src/main/java/org/openecomp/sdcrests/action/rest/services/ActionsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/src/main/java/org/openecomp/sdcrests/action/rest/services/ActionsImpl.java @@ -20,7 +20,6 @@ package org.openecomp.sdcrests.action.rest.services; -import static org.openecomp.sdc.action.ActionConstants.ACTION_REQUEST_PARAM_END_POINT_URI; import static org.openecomp.sdc.action.ActionConstants.ACTION_REQUEST_PARAM_NAME; import static org.openecomp.sdc.action.ActionConstants.ACTION_REQUEST_PARAM_SUPPORTED_COMPONENTS; import static org.openecomp.sdc.action.ActionConstants.ACTION_REQUEST_PARAM_SUPPORTED_MODELS; @@ -31,7 +30,7 @@ import static org.openecomp.sdc.action.ActionConstants.CATEGORY_LOG_LEVEL; import static org.openecomp.sdc.action.ActionConstants.CLIENT_IP; import static org.openecomp.sdc.action.ActionConstants.ERROR_DESCRIPTION; import static org.openecomp.sdc.action.ActionConstants.FILTER_TYPE_CATEGORY; -import static org.openecomp.sdc.action.ActionConstants.FILTER_TYPE_ECOMP_COMPONENT; +import static org.openecomp.sdc.action.ActionConstants.FILTER_TYPE_OPEN_ECOMP_COMPONENT; import static org.openecomp.sdc.action.ActionConstants.FILTER_TYPE_MODEL; import static org.openecomp.sdc.action.ActionConstants.FILTER_TYPE_NAME; import static org.openecomp.sdc.action.ActionConstants.FILTER_TYPE_NONE; @@ -59,8 +58,8 @@ import static org.openecomp.sdc.action.ActionConstants.TARGET_ENTITY_API; import static org.openecomp.sdc.action.ActionConstants.TARGET_SERVICE_NAME; import static org.openecomp.sdc.action.ActionConstants.TIMESTAMP; import static org.openecomp.sdc.action.ActionConstants.UPDATED_BY; -import static org.openecomp.sdc.action.ActionConstants.X_ECOMP_INSTANCE_ID_HEADER_PARAM; -import static org.openecomp.sdc.action.ActionConstants.X_ECOMP_REQUEST_ID_HEADER_PARAM; +import static org.openecomp.sdc.action.ActionConstants.X_OPEN_ECOMP_INSTANCE_ID_HEADER_PARAM; +import static org.openecomp.sdc.action.ActionConstants.X_OPEN_ECOMP_REQUEST_ID_HEADER_PARAM; import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_ARTIFACT_CHECKSUM_ERROR_CODE; import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_ARTIFACT_INVALID_NAME; import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_ARTIFACT_INVALID_NAME_CODE; @@ -84,8 +83,8 @@ import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUES import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_ARTIFACT_OPERATION_ALLOWED; import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_BODY_EMPTY; import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_CONTENT_TYPE_INVALID; -import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_ECOMP_INSTANCE_ID_INVALID; -import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_ECOMP_REQUEST_ID_INVALID; +import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_OPEN_ECOMP_INSTANCE_ID_INVALID; +import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_OPEN_ECOMP_REQUEST_ID_INVALID; import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_FILTER_PARAM_INVALID; import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_INVALID_GENERIC_CODE; import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_REQUEST_INVALID_NAME; @@ -94,12 +93,13 @@ import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_UNSUPP import static org.openecomp.sdc.action.errors.ActionErrorConstants.ACTION_UPDATE_NOT_ALLOWED_CODE; import static org.openecomp.sdc.action.util.ActionUtil.actionErrorLogProcessor; import static org.openecomp.sdc.action.util.ActionUtil.actionLogPostProcessor; +import static org.openecomp.sdc.action.util.ActionUtil.getUtcDateStringFromTimestamp; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; import org.apache.cxf.jaxrs.ext.multipart.Attachment; -import org.openecomp.core.logging.api.Logger; -import org.openecomp.core.logging.api.LoggerFactory; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; import org.openecomp.core.utilities.file.FileUtils; import org.openecomp.core.utilities.json.JsonUtil; import org.openecomp.sdc.action.ActionConstants; @@ -112,7 +112,7 @@ import org.openecomp.sdc.action.types.Action; import org.openecomp.sdc.action.types.ActionArtifact; import org.openecomp.sdc.action.types.ActionArtifactProtection; import org.openecomp.sdc.action.types.ActionRequest; -import org.openecomp.sdc.action.types.EcompComponent; +import org.openecomp.sdc.action.types.OpenEcompComponent; import org.openecomp.sdcrests.action.rest.Actions; import org.openecomp.sdcrests.action.rest.mapping.MapActionToActionResponseDto; import org.openecomp.sdcrests.action.types.ActionResponseDto; @@ -129,23 +129,17 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.TimeZone; import javax.inject.Named; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.Response; - - /** - * Implements various CRUD API that can be performed on Action. + * Implements various CRUD API that can be performed on Action */ @SuppressWarnings("ALL") @Named @@ -154,10 +148,9 @@ import javax.ws.rs.core.Response; @Validated public class ActionsImpl implements Actions { + private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName()); @Autowired private ActionManager actionManager; - private final Logger log = (Logger) LoggerFactory.getLogger(this.getClass().getName()); - private String whitespaceCharacters = "\\s" /* dummy empty string for homogeneity */ + "\\u0009" // CHARACTER TABULATION + "\\u000A" // LINE FEED (LF) @@ -191,10 +184,10 @@ public class ActionsImpl implements Actions { private String invalidFilenameRegex = ".*[" + whitespaceCharacters + invalidFilenameChars + "].*"; /** - * Calculate the checksum for a given input. + * Calculate the checksum for a given input * - * @param input Byte array for which the checksum has to be calculated. - * @return Calculated checksum of the input byte array. + * @param input Byte array for which the checksum has to be calculated + * @return Calculated checksum of the input byte array */ private static String calculateCheckSum(byte[] input) { String checksum = null; @@ -204,168 +197,128 @@ public class ActionsImpl implements Actions { return checksum; } - /** - * Convert timestamp to UTC format date string. - * - * @param timeStamp UTC timestamp to be converted to the UTC Date format. - * @return UTC formatted Date string from timestamp. - */ - public static String getUTCDateStringFromTimestamp(Date timeStamp) { - DateFormat df = new SimpleDateFormat("dd MMM yyyy kk:mm:ss z"); - df.setTimeZone(TimeZone.getTimeZone("GMT")); - return df.format(timeStamp); - } - /** - * Initialize MDC for logging the current request - * @param actionInvariantId Action Invariant Id if available (null otherwise) - * @param servletRequest Request Contecxt object - * @param requestType Current action request (CRUD of Action, Artifact, Version operations) - */ - private void initializeRequestMDC(HttpServletRequest servletRequest, String actionInvariantId, ActionRequest requestType){ - MDC.put(REQUEST_ID, servletRequest.getHeader(X_ECOMP_REQUEST_ID_HEADER_PARAM)); - MDC.put(PARTNER_NAME, servletRequest.getRemoteUser()); - MDC.put(INSTANCE_UUID, MDC_ASDC_INSTANCE_UUID); - MDC.put(SERVICE_METRIC_BEGIN_TIMESTAMP, String.valueOf(System.currentTimeMillis())); - MDC.put(STATUS_CODE, StatusCode.COMPLETE.name()); - MDC.put(SERVICE_NAME, requestType.name()); - MDC.put(CLIENT_IP, MDC.get(REMOTE_HOST)); - MDC.put(SERVICE_INSTANCE_ID, actionInvariantId); - MDC.put(LOCAL_ADDR, MDC.get("ServerIPAddress")); - MDC.put(BE_FQDN, MDC.get("ServerFQDN")); - - if(log.isDebugEnabled()) - MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.DEBUG.name()); - else if(log.isInfoEnabled()) - MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.INFO.name()); - else if(log.isWarnEnabled()) - MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.WARN.name()); - else if(log.isErrorEnabled()) - MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.ERROR.name()); - } - @Override - public Response getActionsByActionInvariantUuId(String invariantId, String actionUuId, + public Response getActionsByActionInvariantUuId(String invariantID, String actionUUID, HttpServletRequest servletRequest) { ListResponseWrapper responseList = new ListResponseWrapper(); - try{ - log.debug(" entering getActionsByActionInvariantUUID "); - initializeRequestMDC(servletRequest, invariantId, ActionRequest.GET_ACTIONS_INVARIANT_ID); - MDC.put(SERVICE_INSTANCE_ID, invariantId); + try { + log.debug(" entering getActionsByActionInvariantUuId "); + initializeRequestMDC(servletRequest, invariantID, ActionRequest.GET_ACTIONS_INVARIANT_ID); + MDC.put(SERVICE_INSTANCE_ID, invariantID); - if(StringUtils.isEmpty(servletRequest.getQueryString())){ - responseList = getActionsByInvId(servletRequest,invariantId); - } else{ - Response response = getActionByUUID(servletRequest, invariantId, actionUuId); + if (StringUtils.isEmpty(servletRequest.getQueryString())) { + responseList = getActionsByInvId(servletRequest, invariantID); + } else { + Response response = getActionByUUID(servletRequest, invariantID, actionUUID); actionLogPostProcessor(StatusCode.COMPLETE, true); return response; } - } catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(""); - throw e; - } catch (Exception e){ + throw exception; + } catch (Exception exception) { actionLogPostProcessor(StatusCode.ERROR, true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); log.error(""); - throw e; + throw exception; } finally { finalAuditMetricsLogProcessor(ActionRequest.GET_ACTIONS_INVARIANT_ID.name()); } - log.debug(" exit getActionsByActionInvariantUUID " ); + log.debug(" exit getActionsByActionInvariantUuId "); actionLogPostProcessor(StatusCode.COMPLETE, true); return Response.ok(responseList).build(); } - private ListResponseWrapper getActionsByInvId(HttpServletRequest servletRequest, String invariantId){ - log.debug(" entering getActionsByInvId with invariantId= " + invariantId ); + private ListResponseWrapper getActionsByInvId(HttpServletRequest servletRequest, + String invariantID) { + log.debug(" entering getActionsByInvId with invariantID= " + invariantID); ListResponseWrapper responseList = new ListResponseWrapper(); - if(StringUtils.isEmpty(servletRequest.getQueryString())){ + if (StringUtils.isEmpty(servletRequest.getQueryString())) { Map<String, String> errorMap = validateRequestHeaders(servletRequest); - Map<String, String> queryParamErrors = validateQueryParam(invariantId); + Map<String, String> queryParamErrors = validateQueryParam(invariantID); errorMap.putAll(queryParamErrors); - if(errorMap.isEmpty()) { - List<Action> actions = actionManager.getActionsByActionInvariantUuId(invariantId); + if (errorMap.isEmpty()) { + List<Action> actions = actionManager.getActionsByActionInvariantUuId(invariantID); List<ActionResponseDto> versionList = new ArrayList<ActionResponseDto>(); for (Action action : actions) { ActionResponseDto responseDTO = createResponseDTO(action); versionList.add(responseDTO); } - responseList .setVersions(versionList); + responseList.setVersions(versionList); responseList.setActionList(null); - } else{ + } else { checkAndThrowError(errorMap); } } - log.debug(" exit getActionsByInvId with invariantId= " + invariantId ); + log.debug(" exit getActionsByInvId with invariantID= " + invariantID); return responseList; } - private Response getActionByUUID(HttpServletRequest servletRequest, String invariantID, String actionUUID) throws ActionException{ + private Response getActionByUUID(HttpServletRequest servletRequest, String invariantID, + String actionUUID) throws ActionException { int noOfFilterParams = 0; Response response = null; - log.debug(" entering getActionByUUID with invariantID= " + invariantID + " and actionUUID= " + actionUUID); - if(!StringUtils.isEmpty(actionUUID)) { - noOfFilterParams ++; - response = getActionsByUniqueID(actionUUID, servletRequest, invariantID); + log.debug(" entering getActionByUUID with invariantID= " + invariantID + " and actionUUID= " + + actionUUID); + if (!StringUtils.isEmpty(actionUUID)) { + noOfFilterParams++; + response = getActionsByUniqueID(actionUUID, servletRequest, invariantID); + } + if (noOfFilterParams == 0) { + throw new ActionException(ACTION_INVALID_SEARCH_CRITERIA, + ACTION_REQUEST_FILTER_PARAM_INVALID); } - if(noOfFilterParams == 0) - throw new ActionException(ACTION_INVALID_SEARCH_CRITERIA, ACTION_REQUEST_FILTER_PARAM_INVALID); - log.debug(" exit getActionByUUID with invariantID= " + invariantID + " and actionUUID= " + actionUUID); + log.debug(" exit getActionByUUID with invariantID= " + invariantID + " and actionUUID= " + + actionUUID); return response; } - private void finalAuditMetricsLogProcessor(String targetServiceName) { - MDC.put(TARGET_SERVICE_NAME, targetServiceName); - MDC.put(TARGET_ENTITY, TARGET_ENTITY_API); - log.metrics(""); - log.audit(""); - } - @Override - public Response getEcompComponents(HttpServletRequest servletRequest) { + public Response getOpenEcompComponents(HttpServletRequest servletRequest) { try { - log.debug(" entering getECOMPComponents "); - initializeRequestMDC(servletRequest, "", ActionRequest.GET_ECOMP_COMPONENTS); + log.debug(" entering getOpenEcompComponents "); + initializeRequestMDC(servletRequest, "", ActionRequest.GET_OPEN_ECOMP_COMPONENTS); //Validate request syntax before passing to the manager Map<String, String> errorMap = validateRequestHeaders(servletRequest); checkAndThrowError(errorMap); ListResponseWrapper response = new ListResponseWrapper(); - List<EcompComponent> ecompComponents = actionManager.getEcompComponents(); + List<OpenEcompComponent> openEcompComponents = actionManager.getOpenEcompComponents(); response.setActionList(null); - response.setComponentList(ecompComponents); - log.debug(" exit getECOMPComponents "); + response.setComponentList(openEcompComponents); + log.debug(" exit getOpenEcompComponents "); actionLogPostProcessor(StatusCode.COMPLETE, true); return Response.ok(response).build(); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(""); - throw e; - } - catch (Exception e){ + throw exception; + } catch (Exception exception) { actionLogPostProcessor(StatusCode.ERROR, true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); log.error(""); - throw e; - } - finally { - finalAuditMetricsLogProcessor(ActionRequest.GET_ECOMP_COMPONENTS.name()); + throw exception; + } finally { + finalAuditMetricsLogProcessor(ActionRequest.GET_OPEN_ECOMP_COMPONENTS.name()); } } @Override - public Response getFilteredActions(String vendor, String category, String name, String modelId, - String componentId, HttpServletRequest servletRequest) { + public Response getFilteredActions(String vendor, String category, String name, String modelID, + String componentID, HttpServletRequest servletRequest) { try { log.debug(" entering getFilteredActions "); - int noOfFilterParams = 0; Response response = null; initializeRequestMDC(servletRequest, "", ActionRequest.GET_FILTERED_ACTIONS); + int noOfFilterParams = 0; if (!StringUtils.isEmpty(vendor)) { noOfFilterParams++; } @@ -375,10 +328,10 @@ public class ActionsImpl implements Actions { if (!StringUtils.isEmpty(name)) { noOfFilterParams++; } - if (!StringUtils.isEmpty(modelId)) { + if (!StringUtils.isEmpty(modelID)) { noOfFilterParams++; } - if (!StringUtils.isEmpty(componentId)) { + if (!StringUtils.isEmpty(componentID)) { noOfFilterParams++; } if (StringUtils.isEmpty(servletRequest.getQueryString())) { @@ -389,11 +342,11 @@ public class ActionsImpl implements Actions { } if (noOfFilterParams > 1) { throw new ActionException(ACTION_MULT_SEARCH_CRITERIA, - ACTION_FILTER_MULTIPLE_QUERY_PARAM_NOT_SUPPORTED); + ACTION_FILTER_MULTIPLE_QUERY_PARAM_NOT_SUPPORTED); } if (noOfFilterParams == 0) { throw new ActionException(ACTION_INVALID_SEARCH_CRITERIA, - ACTION_REQUEST_FILTER_PARAM_INVALID); + ACTION_REQUEST_FILTER_PARAM_INVALID); } ListResponseWrapper responseList = null; if (!StringUtils.isEmpty(vendor)) { @@ -402,154 +355,157 @@ public class ActionsImpl implements Actions { response = getActionsByCategory(category, servletRequest); } else if (!StringUtils.isEmpty(name)) { response = getActionsByName(name, servletRequest); - } else if (!StringUtils.isEmpty(modelId)) { - response = getActionsByModel(modelId, servletRequest); - } else if (!StringUtils.isEmpty(componentId)) { - response = getActionsByECOMPComponent(componentId, servletRequest); + } else if (!StringUtils.isEmpty(modelID)) { + response = getActionsByModel(modelID, servletRequest); + } else if (!StringUtils.isEmpty(componentID)) { + response = getActionsByOpenEcompComponents(componentID, servletRequest); } else { throw new ActionException(ACTION_INVALID_PARAM_CODE, ACTION_REQUEST_FILTER_PARAM_INVALID); } + log.debug(" exit getFilteredActions "); actionLogPostProcessor(StatusCode.COMPLETE, true); return response; - } - catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(""); - throw e; - } - catch (Exception e){ + throw exception; + } catch (Exception exception) { actionLogPostProcessor(StatusCode.ERROR, true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); log.error(""); - throw e; - } - finally { + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.GET_FILTERED_ACTIONS.name()); } } @Override - public Response createAction(String requestJson, HttpServletRequest servletRequest) { + public Response createAction(String requestJSON, HttpServletRequest servletRequest) { try { initializeRequestMDC(servletRequest, null, ActionRequest.CREATE_ACTION); log.debug(" entering API createAction "); Map<String, String> errorMap = validateRequestHeaders(servletRequest); Map<String, String> requestBodyErrors = - validateRequestBody(REQUEST_TYPE_CREATE_ACTION, requestJson); + validateRequestBody(REQUEST_TYPE_CREATE_ACTION, requestJSON); errorMap.putAll(requestBodyErrors); - ActionResponseDto actionResponseDto = new ActionResponseDto(); + ActionResponseDto actionResponseDTO = new ActionResponseDto(); if (errorMap.isEmpty()) { String user = servletRequest.getRemoteUser(); - Action action = JsonUtil.json2Object(requestJson, Action.class); - action.setData(requestJson); + Action action = JsonUtil.json2Object(requestJSON, Action.class); + action.setData(requestJSON); Action responseAction = actionManager.createAction(action, user); MDC.put(SERVICE_INSTANCE_ID, responseAction.getActionInvariantUuId()); - new MapActionToActionResponseDto().doMapping(responseAction, actionResponseDto); + new MapActionToActionResponseDto().doMapping(responseAction, actionResponseDTO); } else { checkAndThrowError(errorMap); } actionLogPostProcessor(StatusCode.COMPLETE, true); log.debug(" exit API createAction with ActionInvariantUUID= " + MDC.get(SERVICE_INSTANCE_ID)); - return Response.ok(actionResponseDto).build(); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + return Response.ok(actionResponseDTO).build(); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(""); - throw e; - }catch (Exception e){ + throw exception; + } catch (Exception exception) { actionLogPostProcessor(StatusCode.ERROR, true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); - log.error(e.getMessage()); - throw e; - }finally { + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + log.error(exception.getMessage()); + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.CREATE_ACTION.name()); } } @Override - public Response updateAction(String actionInvariantUuId, String requestJson, + public Response updateAction(String invariantUUID, String requestJSON, HttpServletRequest servletRequest) { + ActionResponseDto actionResponseDTO = null; try { - initializeRequestMDC(servletRequest, actionInvariantUuId, ActionRequest.UPDATE_ACTION); - log.debug(" entering API updateAction "); + initializeRequestMDC(servletRequest, invariantUUID, ActionRequest.UPDATE_ACTION); Map<String, String> errorMap = validateRequestHeaders(servletRequest); Map<String, String> requestBodyErrors = - validateRequestBody(REQUEST_TYPE_UPDATE_ACTION, requestJson); + validateRequestBody(REQUEST_TYPE_UPDATE_ACTION, requestJSON); errorMap.putAll(requestBodyErrors); - ActionResponseDto actionResponseDto = new ActionResponseDto(); + actionResponseDTO = new ActionResponseDto(); if (errorMap.isEmpty()) { String user = servletRequest.getRemoteUser(); - Action action = JsonUtil.json2Object(requestJson, Action.class); - action.setActionInvariantUuId(actionInvariantUuId); - action.setData(requestJson); + Action action = JsonUtil.json2Object(requestJSON, Action.class); + action.setActionInvariantUuId(invariantUUID); + action.setData(requestJSON); Action updatedAction = actionManager.updateAction(action, user); - new MapActionToActionResponseDto().doMapping(updatedAction, actionResponseDto); + new MapActionToActionResponseDto().doMapping(updatedAction, actionResponseDTO); } else { checkAndThrowError(errorMap); } actionLogPostProcessor(StatusCode.COMPLETE, true); - log.debug(" exit API updateAction "); - return Response.ok(actionResponseDto).build(); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(""); - throw e; - }catch (Exception e){ + throw exception; + } catch (Exception exception) { actionLogPostProcessor(StatusCode.ERROR, true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); - log.error(e.getMessage()); - throw e; - }finally { + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + log.error(exception.getMessage()); + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.UPDATE_ACTION.name()); } + + return Response.ok(actionResponseDTO).build(); } @Override - public Response deleteAction(String actionInvariantUuId, HttpServletRequest servletRequest) { + public Response deleteAction(String actionInvariantUUID, HttpServletRequest servletRequest) { try { - log.debug(" entering API deleteAction "); - initializeRequestMDC(servletRequest, actionInvariantUuId, ActionRequest.DELETE_ACTION); + initializeRequestMDC(servletRequest, actionInvariantUUID, ActionRequest.DELETE_ACTION); Map<String, String> errorMap = validateRequestHeaders(servletRequest); if (errorMap.isEmpty()) { String user = servletRequest.getRemoteUser(); - actionManager.deleteAction(actionInvariantUuId, user); + actionManager.deleteAction(actionInvariantUUID, user); } else { checkAndThrowError(errorMap); } + actionLogPostProcessor(StatusCode.COMPLETE, true); - log.debug(" exit API deleteAction "); return Response.ok(new ActionResponseDto()).build(); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(MDC.get(ERROR_DESCRIPTION)); - throw e; - }catch (Exception e){ - actionLogPostProcessor(StatusCode.ERROR,true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); - log.error(e.getMessage()); - throw e; - }finally { + throw exception; + } catch (Exception exception) { + actionLogPostProcessor(StatusCode.ERROR, true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + log.error(exception.getMessage()); + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.DELETE_ACTION.name()); } } @Override - public Response actOnAction(String actionInvariantUuId, String requestJson, + public Response actOnAction(String invariantUUID, String requestJSON, HttpServletRequest servletRequest) { Response response = null; try { - initializeRequestMDC(servletRequest,actionInvariantUuId,ActionRequest.ACTION_VERSIONING); - log.debug("entering actOnAction with invariantUUID= "+ actionInvariantUuId + " and requestJSON= "+ requestJson ); + initializeRequestMDC(servletRequest, invariantUUID, ActionRequest.ACTION_VERSIONING); + log.debug("entering actOnAction with invariantUUID= " + invariantUUID + " and requestJSON= " + + requestJSON); Map<String, String> errorMap = validateRequestHeaders(servletRequest); Map<String, String> requestBodyErrors = - validateRequestBody(REQUEST_TYPE_VERSION_ACTION, requestJson); + validateRequestBody(REQUEST_TYPE_VERSION_ACTION, requestJSON); errorMap.putAll(requestBodyErrors); - ActionVersionDto versionDTO = JsonUtil.json2Object(requestJson, ActionVersionDto.class); + + ActionVersionDto versionDTO = JsonUtil.json2Object(requestJSON, ActionVersionDto.class); checkAndThrowError(errorMap); String status = versionDTO.getStatus(); @@ -557,51 +513,53 @@ public class ActionsImpl implements Actions { String user = servletRequest.getRemoteUser(); switch (status) { case "Checkout": - action = actionManager.checkout(actionInvariantUuId, user); + action = actionManager.checkout(invariantUUID, user); break; case "Undo_Checkout": - actionManager.undoCheckout(actionInvariantUuId, user); + actionManager.undoCheckout(invariantUUID, user); StringWrapperResponse responseText = new StringWrapperResponse(); responseText.setValue(ActionConstants.UNDO_CHECKOUT_RESPONSE_TEXT); response = Response - .status(Response.Status.OK) - .entity(responseText) - .build(); + .status(Response.Status.OK) + .entity(responseText) + .build(); return response; case "Checkin": - action = actionManager.checkin(actionInvariantUuId, user); + action = actionManager.checkin(invariantUUID, user); break; case "Submit": - action = actionManager.submit(actionInvariantUuId, user); + action = actionManager.submit(invariantUUID, user); break; default: throw new ActionException(ACTION_INVALID_PARAM_CODE, - String.format(ACTION_UNSUPPORTED_OPERATION, status)); + String.format(ACTION_UNSUPPORTED_OPERATION, status)); } - ActionResponseDto actionResponseDto = new ActionResponseDto(); - new MapActionToActionResponseDto().doMapping(action, actionResponseDto); - response = Response.ok(actionResponseDto).build(); - actionLogPostProcessor(StatusCode.COMPLETE,true); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + ActionResponseDto actionResponseDTO = new ActionResponseDto(); + new MapActionToActionResponseDto().doMapping(action, actionResponseDTO); + response = Response.ok(actionResponseDTO).build(); + actionLogPostProcessor(StatusCode.COMPLETE, true); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(MDC.get(ERROR_DESCRIPTION)); - throw e; - }catch (Exception e){ - actionLogPostProcessor(StatusCode.ERROR,true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); - log.error(e.getMessage()); - throw e; - }finally { + throw exception; + } catch (Exception exception) { + actionLogPostProcessor(StatusCode.ERROR, true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + log.error(exception.getMessage()); + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.ACTION_VERSIONING.name()); - log.debug("exit actOnAction with invariantUUID= "+ actionInvariantUuId + " and requestJSON= "+ requestJson ); + log.debug("exit actOnAction with invariantUUID= " + invariantUUID + " and requestJSON= " + + requestJSON); } return response; } @Override - public Response uploadArtifact(String actionInvariantUuId, + public Response uploadArtifact(String actionInvariantUUID, String artifactName, String artifactLabel, String artifactCategory, @@ -612,88 +570,95 @@ public class ActionsImpl implements Actions { HttpServletRequest servletRequest) { Response response = null; try { - initializeRequestMDC(servletRequest,actionInvariantUuId, ActionRequest.UPLOAD_ARTIFACT); - log.debug("entering uploadArtifact with actionInvariantUUID= "+ actionInvariantUuId + "artifactName= "+ artifactName ); - response = uploadArtifactInternal(actionInvariantUuId, artifactName, artifactLabel, artifactCategory, artifactDescription, artifactProtection, checksum, artifactToUpload, servletRequest); - actionLogPostProcessor(StatusCode.COMPLETE,true); - log.debug("exiting uploadArtifact with actionInvariantUUID= "+ actionInvariantUuId + "artifactName= "+ artifactName ); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + initializeRequestMDC(servletRequest, actionInvariantUUID, ActionRequest.UPLOAD_ARTIFACT); + log.debug("entering uploadArtifact with actionInvariantUuId= " + actionInvariantUUID + + "artifactName= " + artifactName); + response = + uploadArtifactInternal(actionInvariantUUID, artifactName, artifactLabel, artifactCategory, + artifactDescription, artifactProtection, checksum, artifactToUpload, servletRequest); + actionLogPostProcessor(StatusCode.COMPLETE, true); + log.debug("exiting uploadArtifact with actionInvariantUuId= " + actionInvariantUUID + + "artifactName= " + artifactName); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(MDC.get(ERROR_DESCRIPTION)); - throw e; - }catch (Exception e){ - actionLogPostProcessor(StatusCode.ERROR,true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); - log.error(e.getMessage()); - throw e; - }finally { + throw exception; + } catch (Exception exception) { + actionLogPostProcessor(StatusCode.ERROR, true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + log.error(exception.getMessage()); + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.UPLOAD_ARTIFACT.name()); } - log.debug("exiting uploadArtifact with actionInvariantUUID= "+ actionInvariantUuId + "artifactName= "+ artifactName ); + log.debug("exiting uploadArtifact with actionInvariantUuId= " + actionInvariantUUID + + "artifactName= " + artifactName); return response; } - private Response uploadArtifactInternal(String actionInvariantUuId, - String artifactName, - String artifactLabel, - String artifactCategory, - String artifactDescription, - String artifactProtection, - String checksum, - Attachment artifactToUpload, + private Response uploadArtifactInternal(String actionInvariantUUID, String artifactName, + String artifactLabel, String artifactCategory, + String artifactDescription, String artifactProtection, + String checksum, Attachment artifactToUpload, HttpServletRequest servletRequest) { ListResponseWrapper responseList = null; byte[] payload = null; Map<String, String> errorMap = validateRequestHeaders(servletRequest); //Artifact name empty validation - if(StringUtils.isEmpty(artifactName)){ - errorMap.put(ACTION_REQUEST_INVALID_GENERIC_CODE, ACTION_REQUEST_MISSING_MANDATORY_PARAM + ARTIFACT_NAME); - }else{ + if (StringUtils.isEmpty(artifactName)) { + errorMap.put(ACTION_REQUEST_INVALID_GENERIC_CODE, + ACTION_REQUEST_MISSING_MANDATORY_PARAM + ARTIFACT_NAME); + } else { //Artifact name syntax check for whitespaces and invalid characters - if(artifactName.matches(invalidFilenameRegex)){ + if (artifactName.matches(invalidFilenameRegex)) { errorMap.put(ACTION_ARTIFACT_INVALID_NAME_CODE, ACTION_ARTIFACT_INVALID_NAME); } } //Content-Type Header Validation String contentType = servletRequest.getContentType(); - if(StringUtils.isEmpty(contentType)){ + if (StringUtils.isEmpty(contentType)) { errorMap.put(ACTION_REQUEST_INVALID_GENERIC_CODE, ACTION_REQUEST_CONTENT_TYPE_INVALID); } - if(artifactToUpload == null){ - throw new ActionException(ACTION_REQUEST_INVALID_GENERIC_CODE, ACTION_REQUEST_MISSING_MANDATORY_PARAM + ARTIFACT_FILE); + if (artifactToUpload == null) { + throw new ActionException(ACTION_REQUEST_INVALID_GENERIC_CODE, + ACTION_REQUEST_MISSING_MANDATORY_PARAM + ARTIFACT_FILE); } InputStream artifactInputStream = null; try { artifactInputStream = artifactToUpload.getDataHandler().getInputStream(); - } catch (IOException e) { + } catch (IOException exception) { throw new ActionException(ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ARTIFACT_READ_FILE_ERROR); } payload = FileUtils.toByteArray(artifactInputStream); //Validate Artifact size - if(payload != null && payload.length > MAX_ACTION_ARTIFACT_SIZE){ + if (payload != null && payload.length > MAX_ACTION_ARTIFACT_SIZE) { throw new ActionException(ACTION_ARTIFACT_TOO_BIG_ERROR_CODE, ACTION_ARTIFACT_TOO_BIG_ERROR); } //Validate Checksum - if(StringUtils.isEmpty(checksum) || !checksum.equalsIgnoreCase(calculateCheckSum(payload))){ + if (StringUtils.isEmpty(checksum) || !checksum.equalsIgnoreCase(calculateCheckSum(payload))) { errorMap.put(ACTION_ARTIFACT_CHECKSUM_ERROR_CODE, ACTION_REQUEST_ARTIFACT_CHECKSUM_ERROR); } //Validate artifact protection values - if(StringUtils.isEmpty(artifactProtection)) + if (StringUtils.isEmpty(artifactProtection)) { artifactProtection = ActionArtifactProtection.readWrite.name(); + } - if(!artifactProtection.equals(ActionArtifactProtection.readOnly.name()) && !artifactProtection.equals(ActionArtifactProtection.readWrite.name())){ - errorMap.put(ACTION_ARTIFACT_INVALID_PROTECTION_CODE, ACTION_REQUEST_ARTIFACT_INVALID_PROTECTION_VALUE); + if (!artifactProtection.equals(ActionArtifactProtection.readOnly.name()) && + !artifactProtection.equals(ActionArtifactProtection.readWrite.name())) { + errorMap.put(ACTION_ARTIFACT_INVALID_PROTECTION_CODE, + ACTION_REQUEST_ARTIFACT_INVALID_PROTECTION_VALUE); } ActionArtifact uploadedArtifact = new ActionArtifact(); - if(errorMap.isEmpty()){ + if (errorMap.isEmpty()) { String user = servletRequest.getRemoteUser(); ActionArtifact upload = new ActionArtifact(); upload.setArtifactName(artifactName); @@ -702,93 +667,100 @@ public class ActionsImpl implements Actions { upload.setArtifact(payload); upload.setArtifactCategory(artifactCategory); upload.setArtifactProtection(artifactProtection); - uploadedArtifact = actionManager.uploadArtifact(upload, actionInvariantUuId, user); - } - else{ + uploadedArtifact = actionManager.uploadArtifact(upload, actionInvariantUUID, user); + } else { checkAndThrowError(errorMap); } return Response.ok(uploadedArtifact).build(); } @Override - public Response downloadArtifact(String actionUuId, String artifactUuId, + public Response downloadArtifact(String actionUUID, String artifactUUID, HttpServletRequest servletRequest) { Response response = null; try { initializeRequestMDC(servletRequest, "", ActionRequest.DOWNLOAD_ARTIFACT); - log.debug(" entering downloadArtifact with actionUUID= " + actionUuId + " and artifactUUID= " + artifactUuId); - response = downloadArtifactInternal(actionUuId, artifactUuId, servletRequest); + log.debug( + " entering downloadArtifact with actionUUID= " + actionUUID + " and artifactUUID= " + + artifactUUID); + response = downloadArtifactInternal(actionUUID, artifactUUID, servletRequest); actionLogPostProcessor(StatusCode.COMPLETE, true); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(MDC.get(ERROR_DESCRIPTION)); - throw e; - }catch (Exception e){ - actionLogPostProcessor(StatusCode.ERROR,true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); - log.error(e.getMessage()); - throw e; - }finally { + throw exception; + } catch (Exception exception) { + actionLogPostProcessor(StatusCode.ERROR, true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + log.error(exception.getMessage()); + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.DOWNLOAD_ARTIFACT.name()); } - log.debug(" exit downloadArtifact with actionUUID= " + actionUuId + " and artifactUUID= " + artifactUuId); + log.debug(" exit downloadArtifact with actionUUID= " + actionUUID + " and artifactUUID= " + + artifactUUID); return response; } - public Response downloadArtifactInternal(String actionUuId, String artifactUuId, - HttpServletRequest servletRequest) { + private Response downloadArtifactInternal(String actionUUID, String artifactUUID, + HttpServletRequest servletRequest) { + Response response; ActionArtifact actionartifact = null; Map<String, String> errorMap = validateRequestHeaders(servletRequest); - Map<String, String> queryParamErrors = validateQueryParam(actionUuId); + Map<String, String> queryParamErrors = validateQueryParam(actionUUID); errorMap.putAll(queryParamErrors); - queryParamErrors = validateQueryParam(artifactUuId); + queryParamErrors = validateQueryParam(artifactUUID); errorMap.putAll(queryParamErrors); if (errorMap.isEmpty()) { - actionartifact = actionManager.downloadArtifact(actionUuId, artifactUuId); + actionartifact = actionManager.downloadArtifact(actionUUID, artifactUUID); } else { checkAndThrowError(errorMap); } - - return createArtifactDownloadResponse(actionartifact); + response = createArtifactDownloadResponse(actionartifact); + return response; } @Override - public Response deleteArtifact(String actionInvariantUuId, String artifactUuId, + public Response deleteArtifact(String actionInvariantUUID, String artifactUUID, HttpServletRequest servletRequest) { - Response response=null; + Response response = null; try { - initializeRequestMDC(servletRequest, actionInvariantUuId, ActionRequest.DELETE_ARTIFACT); - log.debug(" entering deleteArtifact with actionInvariantUUID= " + actionInvariantUuId + " and artifactUUID= " + artifactUuId); - response = deleteArtifactInternal(actionInvariantUuId, artifactUuId, servletRequest); - log.debug(" exit deleteArtifact with actionInvariantUUID= " + actionInvariantUuId + " and artifactUUID= " + artifactUuId); + initializeRequestMDC(servletRequest, actionInvariantUUID, ActionRequest.DELETE_ARTIFACT); + log.debug(" entering deleteArtifact with actionInvariantUuId= " + actionInvariantUUID + + " and artifactUUID= " + artifactUUID); + response = deleteArtifactInternal(actionInvariantUUID, artifactUUID, servletRequest); + log.debug(" exit deleteArtifact with actionInvariantUuId= " + actionInvariantUUID + + " and artifactUUID= " + artifactUUID); actionLogPostProcessor(StatusCode.COMPLETE, true); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(MDC.get(ERROR_DESCRIPTION)); - throw e; - }catch (Exception e){ - actionLogPostProcessor(StatusCode.ERROR,true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); - log.error(e.getMessage()); - throw e; - }finally { + throw exception; + } catch (Exception exception) { + actionLogPostProcessor(StatusCode.ERROR, true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + log.error(exception.getMessage()); + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.DELETE_ARTIFACT.name()); } return response; } - public Response deleteArtifactInternal(String actionInvariantUuId, String artifactUuId, - HttpServletRequest servletRequest) { + private Response deleteArtifactInternal(String actionInvariantUUID, String artifactUUID, + HttpServletRequest servletRequest) { Map<String, String> errorMap = validateRequestHeaders(servletRequest); - Map<String, String> queryParamErrors = validateQueryParam(actionInvariantUuId); + Map<String, String> queryParamErrors = validateQueryParam(actionInvariantUUID); errorMap.putAll(queryParamErrors); - queryParamErrors = validateQueryParam(artifactUuId); + queryParamErrors = validateQueryParam(artifactUUID); errorMap.putAll(queryParamErrors); if (errorMap.isEmpty()) { actionManager - .deleteArtifact(actionInvariantUuId, artifactUuId, servletRequest.getRemoteUser()); + .deleteArtifact(actionInvariantUUID, artifactUUID, servletRequest.getRemoteUser()); } else { checkAndThrowError(errorMap); } @@ -796,41 +768,62 @@ public class ActionsImpl implements Actions { } @Override - public Response updateArtifact(String actionInvariantUuId, String artifactUuId, + public Response updateArtifact(String actionInvariantUUID, String artifactUUID, String artifactName, String artifactLabel, String artifactCategory, String artifactDescription, String artifactProtection, String checksum, Attachment artifactToUpdate, HttpServletRequest servletRequest) { - Response response=null; - log.debug(" entering updateArtifact with actionInvariantUUID= " + actionInvariantUuId + " and artifactUUID= " + artifactUuId + " and artifactName= "+artifactName+" and artifactLabel= "+ artifactLabel+" and artifactCategory= "+artifactCategory+" and artifactDescription= "+artifactDescription+" and artifactProtection= "+artifactProtection+" and checksum= "+checksum); + Response response = null; + log.debug(" entering updateArtifact with actionInvariantUuId= " + actionInvariantUUID + + " and artifactUUID= " + artifactUUID + " and artifactName= " + artifactName + + " and artifactLabel= " + artifactLabel + " and artifactCategory= " + artifactCategory + + " and artifactDescription= " + artifactDescription + " and artifactProtection= " + + artifactProtection + " and checksum= " + checksum); try { - initializeRequestMDC(servletRequest, actionInvariantUuId, ActionRequest.UPDATE_ARTIFACT); - response = updateArtifactInternal(actionInvariantUuId, artifactUuId, artifactName, artifactLabel, artifactCategory, artifactDescription, artifactProtection, checksum, artifactToUpdate, servletRequest); + initializeRequestMDC(servletRequest, actionInvariantUUID, ActionRequest.UPDATE_ARTIFACT); + response = + updateArtifactInternal(actionInvariantUUID, artifactUUID, artifactName, artifactLabel, + artifactCategory, artifactDescription, artifactProtection, checksum, artifactToUpdate, + servletRequest); actionLogPostProcessor(StatusCode.COMPLETE, true); - }catch (ActionException e){ - actionLogPostProcessor(StatusCode.ERROR, e.getErrorCode(), e.getDescription(), true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, e.getErrorCode(), e.getDescription()); + } catch (ActionException exception) { + actionLogPostProcessor(StatusCode.ERROR, exception.getErrorCode(), exception.getDescription(), true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, exception.getErrorCode(), exception.getDescription()); log.error(MDC.get(ERROR_DESCRIPTION)); - throw e; - }catch (Exception e){ - actionLogPostProcessor(StatusCode.ERROR,true); - actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); - log.error(e.getMessage()); - throw e; - }finally { + throw exception; + } catch (Exception exception) { + actionLogPostProcessor(StatusCode.ERROR, true); + actionErrorLogProcessor(CategoryLogLevel.ERROR, ACTION_INTERNAL_SERVER_ERR_CODE, + ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + log.error(exception.getMessage()); + throw exception; + } finally { finalAuditMetricsLogProcessor(ActionRequest.UPDATE_ARTIFACT.name()); } - log.debug(" exit updateArtifact with actionInvariantUUID= " + actionInvariantUuId + " and artifactUUID= " + artifactUuId + " and artifactName= "+artifactName+" and artifactLabel= "+ artifactLabel+" and artifactCategory= "+artifactCategory+" and artifactDescription= "+artifactDescription+" and artifactProtection= "+artifactProtection+" and checksum= "+checksum); + log.debug(" exit updateArtifact with actionInvariantUuId= " + actionInvariantUUID + + " and artifactUUID= " + artifactUUID + " and artifactName= " + artifactName + + " and artifactLabel= " + artifactLabel + " and artifactCategory= " + artifactCategory + + " and artifactDescription= " + artifactDescription + " and artifactProtection= " + + artifactProtection + " and checksum= " + checksum); return response; } - public Response updateArtifactInternal(String actionInvariantUuId, String artifactUuId, - String artifactName, String artifactLabel, String artifactCategory, - String artifactDescription, String artifactProtection, - String checksum, Attachment artifactToUpdate, - HttpServletRequest servletRequest) { + private void finalAuditMetricsLogProcessor(String targetServiceName) { + MDC.put(TARGET_SERVICE_NAME, targetServiceName); + MDC.put(TARGET_ENTITY, TARGET_ENTITY_API); + log.metrics(""); + log.audit(""); + } + + private Response updateArtifactInternal(String actionInvariantUUID, String artifactUUID, + String artifactName, String artifactLabel, + String artifactCategory, String artifactDescription, + String artifactProtection, String checksum, + Attachment artifactToUpdate, + HttpServletRequest servletRequest) { byte[] payload = null; Map<String, String> errorMap = validateRequestHeaders(servletRequest); + //Content-Type Header Validation String contentType = servletRequest.getContentType(); if (StringUtils.isEmpty(contentType)) { @@ -841,7 +834,7 @@ public class ActionsImpl implements Actions { InputStream artifactInputStream = null; try { artifactInputStream = artifactToUpdate.getDataHandler().getInputStream(); - } catch (IOException e) { + } catch (IOException exception) { throw new ActionException(ACTION_INTERNAL_SERVER_ERR_CODE, ACTION_ARTIFACT_READ_FILE_ERROR); } @@ -849,7 +842,7 @@ public class ActionsImpl implements Actions { //Validate Artifact size if (payload != null && payload.length > MAX_ACTION_ARTIFACT_SIZE) { throw new ActionException(ACTION_ARTIFACT_TOO_BIG_ERROR_CODE, - ACTION_ARTIFACT_TOO_BIG_ERROR); + ACTION_ARTIFACT_TOO_BIG_ERROR); } //Validate Checksum @@ -859,29 +852,28 @@ public class ActionsImpl implements Actions { } if (artifactProtection != null && (artifactProtection.isEmpty() || - (!artifactProtection.equals(ActionArtifactProtection.readOnly.name()) && - !artifactProtection.equals(ActionArtifactProtection.readWrite.name())))) { + (!artifactProtection.equals(ActionArtifactProtection.readOnly.name()) && + !artifactProtection.equals(ActionArtifactProtection.readWrite.name())))) { errorMap.put(ACTION_ARTIFACT_INVALID_PROTECTION_CODE, - ACTION_REQUEST_ARTIFACT_INVALID_PROTECTION_VALUE); + ACTION_REQUEST_ARTIFACT_INVALID_PROTECTION_VALUE); } ActionArtifact updateArtifact = new ActionArtifact(); if (errorMap.isEmpty()) { String user = servletRequest.getRemoteUser(); ActionArtifact update = new ActionArtifact(); - update.setArtifactUuId(artifactUuId); + update.setArtifactUuId(artifactUUID); update.setArtifactName(artifactName); update.setArtifactLabel(artifactLabel); update.setArtifactDescription(artifactDescription); update.setArtifact(payload); update.setArtifactCategory(artifactCategory); update.setArtifactProtection(artifactProtection); - actionManager.updateArtifact(update, actionInvariantUuId, user); + actionManager.updateArtifact(update, actionInvariantUUID, user); } else { checkAndThrowError(errorMap); } return Response.ok().build(); - //return Response.status(Response.Status.OK).entity("Artifact successfully updated").build(); } /** @@ -901,10 +893,10 @@ public class ActionsImpl implements Actions { } /** - * Get Actions by ECOMP component ID + * Get Actions by OPENECOMP component ID */ - private Response getActionsByECOMPComponent(String componentID, - HttpServletRequest servletRequest) { + private Response getActionsByOpenEcompComponents(String componentID, + HttpServletRequest servletRequest) { ListResponseWrapper responseList = null; Map<String, String> errorMap = validateRequestHeaders(servletRequest); ; @@ -912,7 +904,7 @@ public class ActionsImpl implements Actions { errorMap.putAll(queryParamErrors); if (errorMap.isEmpty()) { List<Action> actions = - actionManager.getFilteredActions(FILTER_TYPE_ECOMP_COMPONENT, componentID); + actionManager.getFilteredActions(FILTER_TYPE_OPEN_ECOMP_COMPONENT, componentID); responseList = createResponse(actions); } else { checkAndThrowError(errorMap); @@ -959,8 +951,11 @@ public class ActionsImpl implements Actions { */ private Response getActionsByUniqueID(String actionUUID, HttpServletRequest servletRequest, String actionInvariantUUID) { - Map<String, String> errorMap = validateRequestHeaders(servletRequest); + log.debug( + " entering getActionByUUID with invariantID= " + actionInvariantUUID + " and actionUUID= " + + actionUUID); Map<String, Object> responseDTO = new LinkedHashMap<>(); + Map<String, String> errorMap = validateRequestHeaders(servletRequest); Map<String, String> queryParamErrors = validateQueryParam(actionUUID); errorMap.putAll(queryParamErrors); if (errorMap.isEmpty()) { @@ -969,7 +964,7 @@ public class ActionsImpl implements Actions { action.getActionInvariantUuId().equalsIgnoreCase(actionInvariantUUID)) { responseDTO = JsonUtil.json2Object(action.getData(), LinkedHashMap.class); responseDTO.put(STATUS, action.getStatus().name()); - responseDTO.put(TIMESTAMP, getUTCDateStringFromTimestamp(action.getTimestamp())); + responseDTO.put(TIMESTAMP, getUtcDateStringFromTimestamp(action.getTimestamp())); responseDTO.put(UPDATED_BY, action.getUser()); } else { throw new ActionException(ACTION_ENTITY_NOT_EXIST_CODE, ACTION_ENTITY_NOT_EXIST); @@ -977,6 +972,9 @@ public class ActionsImpl implements Actions { } else { checkAndThrowError(errorMap); } + log.debug( + " exit getActionByUUID with invariantID= " + actionInvariantUUID + " and actionUUID= " + + actionUUID); return Response.ok(responseDTO).build(); } @@ -1025,14 +1023,14 @@ public class ActionsImpl implements Actions { private Map<String, String> validateRequestHeaders(HttpServletRequest servletRequest) { Map<String, String> errorMap = new LinkedHashMap<>(); //Syntactic generic request parameter validations - String ecompRequestId = servletRequest.getHeader(X_ECOMP_REQUEST_ID_HEADER_PARAM); - if (StringUtils.isEmpty(ecompRequestId)) { - errorMap.put(ACTION_INVALID_REQUEST_ID_CODE, ACTION_REQUEST_ECOMP_REQUEST_ID_INVALID); + String openEcompRequestId = servletRequest.getHeader(X_OPEN_ECOMP_REQUEST_ID_HEADER_PARAM); + if (StringUtils.isEmpty(openEcompRequestId)) { + errorMap.put(ACTION_INVALID_REQUEST_ID_CODE, ACTION_REQUEST_OPEN_ECOMP_REQUEST_ID_INVALID); } - String ecompInstanceId = servletRequest.getHeader(X_ECOMP_INSTANCE_ID_HEADER_PARAM); - if (StringUtils.isEmpty(ecompInstanceId)) { - errorMap.put(ACTION_INVALID_INSTANCE_ID_CODE, ACTION_REQUEST_ECOMP_INSTANCE_ID_INVALID); + String opemnEcompInstanceId = servletRequest.getHeader(X_OPEN_ECOMP_INSTANCE_ID_HEADER_PARAM); + if (StringUtils.isEmpty(opemnEcompInstanceId)) { + errorMap.put(ACTION_INVALID_INSTANCE_ID_CODE, ACTION_REQUEST_OPEN_ECOMP_INSTANCE_ID_INVALID); } return errorMap; } @@ -1064,8 +1062,8 @@ public class ActionsImpl implements Actions { requestBodyErrorMap.put(ACTION_INVALID_REQUEST_BODY_CODE, ACTION_REQUEST_BODY_EMPTY); } else { switch (requestType) { - case REQUEST_TYPE_CREATE_ACTION: - case REQUEST_TYPE_UPDATE_ACTION: + case ActionConstants.REQUEST_TYPE_CREATE_ACTION: + case ActionConstants.REQUEST_TYPE_UPDATE_ACTION: //Semantic request specific validations Action action = JsonUtil.json2Object(requestJSON, Action.class); if (StringUtils.isEmpty(action.getName())) { @@ -1079,10 +1077,6 @@ public class ActionsImpl implements Actions { } } - if (StringUtils.isEmpty(action.getEndpointUri())) { - setErrorValue(ACTION_REQUEST_INVALID_GENERIC_CODE, ACTION_REQUEST_PARAM_END_POINT_URI, - requestBodyErrorMap); - } if (action.getSupportedModels() != null && !isIDPresentInMap(action.getSupportedModels(), SUPPORTED_MODELS_VERSION_ID)) { setErrorValue(ACTION_REQUEST_INVALID_GENERIC_CODE, @@ -1136,8 +1130,8 @@ public class ActionsImpl implements Actions { } /** - * @throws ActionException if given ErrorMap is not empty. - * All error messages at given time are thrown in one single exception + * @throws ActionException if given ErrorMap is not empty. All error messages at given time are + * thrown in one single exception */ private void checkAndThrowError(Map<String, String> errorMap) { if (errorMap.size() > 1) { @@ -1158,7 +1152,7 @@ public class ActionsImpl implements Actions { String data = action.getData(); ActionResponseDto responseDTO = JsonUtil.json2Object(data, ActionResponseDto.class); responseDTO.setStatus(action.getStatus().name()); - responseDTO.setTimestamp(getUTCDateStringFromTimestamp(action.getTimestamp())); + responseDTO.setTimestamp(getUtcDateStringFromTimestamp(action.getTimestamp())); //if(!action.getUser().equals(DELETE_ACTION_USER)) responseDTO.setUpdatedBy(action.getUser()); return responseDTO; @@ -1185,9 +1179,9 @@ public class ActionsImpl implements Actions { FileOutputStream fos = new FileOutputStream(artifactFile); fos.write(artifactsBytes); fos.close(); - } catch (IOException e) { - throw new ActionException(ACTION_INTERNAL_SERVER_ERR_CODE, - ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); + } catch (IOException exception) { + throw new ActionException(ActionErrorConstants.ACTION_INTERNAL_SERVER_ERR_CODE, + ActionErrorConstants.ACTION_ENTITY_INTERNAL_SERVER_ERROR_MSG); } Response.ResponseBuilder responseBuilder = Response.ok(artifactFile); responseBuilder.header("Content-Disposition", @@ -1201,6 +1195,37 @@ public class ActionsImpl implements Actions { } } + /** + * Initialize MDC for logging the current request + * + * @param actionInvariantId Action Invariant Id if available (null otherwise) + * @param servletRequest Request Contecxt object + * @param requestType Current action request (CRUD of Action, Artifact, Version operations) + */ + private void initializeRequestMDC(HttpServletRequest servletRequest, String actionInvariantId, + ActionRequest requestType) { + MDC.put(REQUEST_ID, servletRequest.getHeader(X_OPEN_ECOMP_REQUEST_ID_HEADER_PARAM)); + MDC.put(PARTNER_NAME, servletRequest.getRemoteUser()); + MDC.put(INSTANCE_UUID, MDC_ASDC_INSTANCE_UUID); + MDC.put(SERVICE_METRIC_BEGIN_TIMESTAMP, String.valueOf(System.currentTimeMillis())); + MDC.put(STATUS_CODE, StatusCode.COMPLETE.name()); + MDC.put(SERVICE_NAME, requestType.name()); + MDC.put(CLIENT_IP, MDC.get(REMOTE_HOST)); + MDC.put(SERVICE_INSTANCE_ID, actionInvariantId); + MDC.put(LOCAL_ADDR, MDC.get("ServerIPAddress")); + MDC.put(BE_FQDN, MDC.get("ServerFQDN")); + + if (log.isDebugEnabled()) { + MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.DEBUG.name()); + } else if (log.isInfoEnabled()) { + MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.INFO.name()); + } else if (log.isWarnEnabled()) { + MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.WARN.name()); + } else if (log.isErrorEnabled()) { + MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.ERROR.name()); + } + } + private String CalcMD5CheckSum(byte[] input) { String checksum = null; if (input != null) { |