summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ArtifactExternalServlet.java181
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java139
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java179
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefsServlet.java86
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ServiceActivationServlet.java56
5 files changed, 267 insertions, 374 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ArtifactExternalServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ArtifactExternalServlet.java
index 0c31539baa..f3cf5944b4 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ArtifactExternalServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ArtifactExternalServlet.java
@@ -31,14 +31,17 @@ import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum;
+import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.model.ArtifactDefinition;
+import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
+import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData;
+import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo;
import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
import org.openecomp.sdc.be.servlets.RepresentationUtils;
import org.openecomp.sdc.common.api.Constants;
-import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
import org.openecomp.sdc.common.datastructure.Wrapper;
import org.openecomp.sdc.common.util.GeneralUtility;
import org.openecomp.sdc.exception.ResponseFormat;
@@ -60,6 +63,7 @@ import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.ByteArrayInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.util.EnumMap;
import java.util.HashMap;
@@ -122,8 +126,8 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE;
String componentTypeValue = componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, artifactUUID);
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(componentTypeValue);
+ ArtifactDefinition artifactDefinition = null;
if (responseWrapper.isEmpty() && (instanceIdHeader == null || instanceIdHeader.isEmpty())) {
log.debug("updateArtifact: Missing X-ECOMP-InstanceID header");
@@ -140,13 +144,14 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = artifactsLogic.updateArtifactOnInterfaceOperationByResourceUUID(data, request, componentType, uuid, artifactUUID, operationUUID,
- additionalParams, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.UPDATE));
+ resourceCommonInfo, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.UPDATE));
if (uploadArtifactEither.isRight()) {
log.debug("failed to update artifact");
responseFormat = uploadArtifactEither.right().value();
responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
} else {
- Object representation = RepresentationUtils.toRepresentation(uploadArtifactEither.left().value());
+ artifactDefinition=uploadArtifactEither.left().value();
+ Object representation = RepresentationUtils.toRepresentation(artifactDefinition);
Map<String, String> headers = new HashMap<>();
headers.put(Constants.MD5_HEADER, GeneralUtility.calculateMD5Base64EncodedByString((String) representation));
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.OK);
@@ -159,7 +164,8 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug(message, e);
responseWrapper.setInnerElement(buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)));
} finally {
- getComponentsUtils().auditExternalUpdateArtifact(responseFormat, componentTypeValue, request, additionalParams);
+ getComponentsUtils().auditExternalCrudApi(responseFormat, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API,
+ resourceCommonInfo, request, artifactDefinition, null);
}
return responseWrapper.getInnerElement();
}
@@ -211,7 +217,7 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
@ApiParam(value = "The uuid of the asset as published in the metadata", required = true)@PathParam("uuid") final String uuid,
@ApiParam( hidden = true) String data) {
- init(log);
+ init();
Wrapper<ResponseFormat> responseWrapper = new Wrapper<>();
String requestURI = request.getRequestURI();
@@ -219,7 +225,7 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
String componentTypeValue = componentType == null ? null : componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(componentTypeValue);
if (componentType == null) {
log.debug("uploadArtifact: assetType parameter {} is not valid", assetType);
@@ -232,35 +238,41 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
validateHttpCspUserIdHeader(userId, responseWrapper);
}
Response response = null;
+ ArtifactDefinition artifactDefinition = null;
try {
if (responseWrapper.isEmpty()) {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = artifactsLogic.uploadArtifactToComponentByUUID(data, request, componentType, uuid,
- additionalParams, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.CREATE));
+ resourceCommonInfo, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.CREATE));
if (uploadArtifactEither.isRight()) {
log.debug("failed to upload artifact");
responseWrapper.setInnerElement(uploadArtifactEither.right().value());
} else {
- Object representation = RepresentationUtils.toRepresentation(uploadArtifactEither.left().value());
+ artifactDefinition = uploadArtifactEither.left().value();
+ Object representation = RepresentationUtils.toRepresentation(artifactDefinition);
Map<String, String> headers = new HashMap<>();
headers.put(Constants.MD5_HEADER, GeneralUtility.calculateMD5Base64EncodedByString((String) representation));
responseWrapper.setInnerElement(getComponentsUtils().getResponseFormat(ActionStatus.OK));
response = buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), representation, headers);
}
}
- if( response == null ){
- response = buildErrorResponse(responseWrapper.getInnerElement());
- }
- return response;
- } catch (Exception e) {
+ } catch (IOException e) {
final String message = "failed to upload artifact to a resource or service";
BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
log.debug(message, e);
- return buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
- } finally {
- getComponentsUtils().auditExternalUploadArtifact(responseWrapper.getInnerElement(), componentTypeValue, request, additionalParams);
+ responseWrapper.setInnerElement(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
+ response = buildErrorResponse(responseWrapper.getInnerElement());
+ } catch (ComponentException e){
+ responseWrapper.setInnerElement(getComponentsUtils().getResponseFormat(e));
+ }finally {
+ if( response == null ){
+ response = buildErrorResponse(responseWrapper.getInnerElement());
+ }
+ getComponentsUtils().auditExternalCrudApi(responseWrapper.getInnerElement(), AuditingActionEnum.ARTIFACT_UPLOAD_BY_API,
+ resourceCommonInfo, request, artifactDefinition, null);
}
+ return response;
}
/**
@@ -311,8 +323,9 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
String componentTypeValue = componentType == null ? null : componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceInstanceName);
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(resourceInstanceName, componentTypeValue);
+ ArtifactDefinition artifactDefinition = null;
+
if (componentType == null) {
log.debug("uploadArtifact: assetType parameter {} is not valid", assetType);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
@@ -333,7 +346,7 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = artifactsLogic.uploadArtifactToRiByUUID(data, request, componentType, uuid, resourceInstanceName,
- additionalParams, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.CREATE));
+ artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.CREATE));
if (uploadArtifactEither.isRight()) {
log.debug("failed to upload artifact");
responseFormat = uploadArtifactEither.right().value();
@@ -346,13 +359,17 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseWrapper.setInnerElement(buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), representation, headers));
}
}
- }catch (Exception e) {
+ }catch (IOException e) {
final String message = "failed to upload artifact to a resource instance";
BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
log.debug(message, e);
- responseWrapper.setInnerElement(buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)));
- } finally {
- getComponentsUtils().auditExternalUploadArtifact(responseFormat, componentTypeValue, request, additionalParams);
+ responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
+ responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
+ }catch (ComponentException e){
+ responseFormat = getComponentsUtils().getResponseFormat(e);
+ }finally {
+ getComponentsUtils().auditExternalCrudApi(responseFormat, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API,
+ resourceCommonInfo, request, artifactDefinition, null);
}
return responseWrapper.getInnerElement();
}
@@ -411,8 +428,7 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
String componentTypeValue = componentType == null ? null : componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, artifactUUID);
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(componentTypeValue);
if (componentType == null) {
log.debug("updateArtifact: assetType parameter {} is not valid", assetType);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
@@ -428,12 +444,13 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.MISSING_USER_ID);
responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
}
+ ArtifactDefinition artifactDefinition = null;
try {
if (responseWrapper.isEmpty()) {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = artifactsLogic.updateArtifactOnComponentByUUID(data, request, componentType, uuid, artifactUUID,
- additionalParams, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.UPDATE));
+ resourceCommonInfo, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.UPDATE));
if (uploadArtifactEither.isRight()) {
log.debug("failed to update artifact");
responseFormat = uploadArtifactEither.right().value();
@@ -446,13 +463,18 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseWrapper.setInnerElement(buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), representation, headers));
}
}
- } catch (Exception e) {
+ } catch (IOException e) {
final String message = "failed to update artifact on a resource or service";
BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
log.debug(message, e);
- responseWrapper.setInnerElement(buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)));
- } finally {
- getComponentsUtils().auditExternalUpdateArtifact(responseFormat, componentTypeValue, request, additionalParams);
+ responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
+ responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
+ } catch (ComponentException e){
+ responseFormat = getComponentsUtils().getResponseFormat(e);
+ }
+ finally{
+ getComponentsUtils().auditExternalCrudApi(responseFormat, AuditingActionEnum.ARTIFACT_UPDATE_BY_API, resourceCommonInfo,
+ request, artifactDefinition, artifactUUID);
}
return responseWrapper.getInnerElement();
}
@@ -506,9 +528,7 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
String componentTypeValue = componentType == null ? null : componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceInstanceName);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, artifactUUID);
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(resourceInstanceName, componentTypeValue);
if (componentType == null) {
log.debug("updateArtifactOnResourceInstance: assetType parameter {} is not valid", assetType);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
@@ -524,12 +544,13 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.MISSING_USER_ID);
responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
}
+ ArtifactDefinition artifactDefinition = null;
try {
if (responseWrapper.isEmpty()) {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = artifactsLogic.updateArtifactOnRiByUUID(data, request, componentType, uuid, resourceInstanceName, artifactUUID,
- additionalParams, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.UPDATE));
+ artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.UPDATE));
if (uploadArtifactEither.isRight()) {
log.debug("failed to update artifact");
responseFormat = uploadArtifactEither.right().value();
@@ -542,13 +563,18 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseWrapper.setInnerElement(buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), representation, headers));
}
}
- } catch (Exception e) {
+ } catch (IOException e) {
final String message = "failed to update artifact on resource instance";
BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
log.debug(message, e);
- responseWrapper.setInnerElement(buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)));
- } finally {
- getComponentsUtils().auditExternalUpdateArtifact(responseFormat, componentTypeValue, request, additionalParams);
+ responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
+ responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
+ } catch (ComponentException e){
+ responseFormat = getComponentsUtils().getResponseFormat(e);
+ }
+ finally{
+ getComponentsUtils().auditExternalCrudApi(responseFormat, AuditingActionEnum.ARTIFACT_UPDATE_BY_API, resourceCommonInfo,
+ request, artifactDefinition, artifactUUID);
}
return responseWrapper.getInnerElement();
}
@@ -596,8 +622,8 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
String componentTypeValue = componentType == null ? null : componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, artifactUUID);
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(componentTypeValue);
+ ArtifactDefinition artifactDefinition = null;
if (componentType == null) {
log.debug("deleteArtifact: assetType parameter {} is not valid", assetType);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
@@ -618,7 +644,7 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = artifactsLogic.deleteArtifactOnComponentByUUID(request, componentType, uuid, artifactUUID,
- additionalParams, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.DELETE));
+ resourceCommonInfo, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.DELETE));
if (uploadArtifactEither.isRight()) {
log.debug("failed to delete artifact");
responseFormat = uploadArtifactEither.right().value();
@@ -631,13 +657,18 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseWrapper.setInnerElement(buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), representation, headers));
}
}
- } catch (Exception e) {
+ } catch (IOException e) {
final String message = "failed to delete an artifact of a resource or service";
BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
log.debug(message, e);
- responseWrapper.setInnerElement(buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)));
- } finally {
- getComponentsUtils().auditExternalDeleteArtifact(responseFormat, componentTypeValue, request, additionalParams);
+ responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
+ responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
+ } catch (ComponentException e){
+ responseFormat = getComponentsUtils().getResponseFormat(e);
+ }
+ finally{
+ getComponentsUtils().auditExternalCrudApi(responseFormat, AuditingActionEnum.ARTIFACT_DELETE_BY_API, resourceCommonInfo,
+ request, artifactDefinition, artifactUUID);
}
return responseWrapper.getInnerElement();
}
@@ -686,9 +717,7 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
String componentTypeValue = componentType == null ? null : componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceInstanceName);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, artifactUUID);
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(resourceInstanceName, componentTypeValue);
if (componentType == null) {
log.debug("deleteArtifactOnResourceInsatnce: assetType parameter {} is not valid", assetType);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
@@ -704,12 +733,13 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.MISSING_USER_ID);
responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
}
+ ArtifactDefinition artifactDefinition = null;
try {
if (responseWrapper.isEmpty()) {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = artifactsLogic.deleteArtifactOnRiByUUID(request, componentType, uuid, resourceInstanceName, artifactUUID,
- additionalParams, artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.DELETE));
+ artifactsLogic.new ArtifactOperationInfo(true, false, ArtifactOperationEnum.DELETE));
if (uploadArtifactEither.isRight()) {
log.debug("failed to delete artifact");
responseFormat = uploadArtifactEither.right().value();
@@ -722,13 +752,18 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseWrapper.setInnerElement(buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.OK), representation, headers));
}
}
- } catch (Exception e) {
+ } catch (IOException e) {
final String message = "failed to delete an artifact of a resource instance";
BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
log.debug(message, e);
- responseWrapper.setInnerElement(buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)));
- } finally {
- getComponentsUtils().auditExternalDeleteArtifact(responseFormat, componentTypeValue, request, additionalParams);
+ responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
+ responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
+ } catch (ComponentException e){
+ responseFormat = getComponentsUtils().getResponseFormat(e);
+ }
+ finally{
+ getComponentsUtils().auditExternalCrudApi(responseFormat, AuditingActionEnum.ARTIFACT_DELETE_BY_API, resourceCommonInfo,
+ request, artifactDefinition, artifactUUID);
}
return responseWrapper.getInnerElement();
}
@@ -771,8 +806,6 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
String componentTypeValue = componentType == null ? null : componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, artifactUUID);
if (componentType == null) {
log.debug("downloadComponentArtifact: assetType parameter {} is not valid", assetType);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
@@ -783,11 +816,12 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID);
responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
}
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(componentTypeValue);
try {
if (responseWrapper.isEmpty()) {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
- Either<byte[], ResponseFormat> downloadComponentArtifactEither = artifactsLogic.downloadComponentArtifactByUUIDs(componentType, uuid, artifactUUID, additionalParams);
+ Either<byte[], ResponseFormat> downloadComponentArtifactEither = artifactsLogic.downloadComponentArtifactByUUIDs(componentType, uuid, artifactUUID, resourceCommonInfo);
if (downloadComponentArtifactEither.isRight()) {
responseFormat = downloadComponentArtifactEither.right().value();
responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
@@ -800,13 +834,12 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseWrapper.setInnerElement(buildOkResponse(responseFormat, is, headers));
}
}
- } catch (Exception e) {
- final String message = "failed to download an artifact of a resource or service";
- BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
- log.debug(message, e);
- responseWrapper.setInnerElement(buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)));
- } finally {
- getComponentsUtils().auditExternalDownloadArtifact(responseFormat, componentTypeValue, request, additionalParams);
+ } catch (ComponentException e){
+ responseFormat = getComponentsUtils().getResponseFormat(e);
+ }
+ finally{
+ getComponentsUtils().auditExternalDownloadArtifact(responseFormat, resourceCommonInfo,
+ new DistributionData(instanceIdHeader, requestURI), requestId, artifactUUID, userId);
}
return responseWrapper.getInnerElement();
}
@@ -851,9 +884,6 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
log.debug("{} {}", startLog, url);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
String componentTypeValue = componentType == null ? null : componentType.getValue();
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceInstanceName);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_CURR_ARTIFACT_UUID, artifactUUID);
if (componentType == null) {
log.debug("downloadResourceInstanceArtifact: assetType parameter {} is not valid", assetType);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
@@ -868,7 +898,7 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
if (responseWrapper.isEmpty()) {
ServletContext context = request.getSession().getServletContext();
ArtifactsBusinessLogic artifactsLogic = getArtifactBL(context);
- Either<byte[], ResponseFormat> downloadResourceArtifactEither = artifactsLogic.downloadResourceInstanceArtifactByUUIDs(componentType, uuid, resourceInstanceName, artifactUUID, additionalParams);
+ Either<byte[], ResponseFormat> downloadResourceArtifactEither = artifactsLogic.downloadResourceInstanceArtifactByUUIDs(componentType, uuid, resourceInstanceName, artifactUUID);
if (downloadResourceArtifactEither.isRight()) {
responseFormat = downloadResourceArtifactEither.right().value();
responseWrapper.setInnerElement(buildErrorResponse(responseFormat));
@@ -881,13 +911,12 @@ public class ArtifactExternalServlet extends AbstractValidationsServlet {
responseWrapper.setInnerElement(buildOkResponse(responseFormat, is, headers));
}
}
- } catch (Exception e) {
- final String message = "failed to download an artifact of a resource instance";
- BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
- log.debug(message, e);
- responseWrapper.setInnerElement(buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)));
- } finally {
- getComponentsUtils().auditExternalDownloadArtifact(responseFormat, componentTypeValue, request, additionalParams);
+ } catch (ComponentException e){
+ responseFormat = getComponentsUtils().getResponseFormat(e);
+ }
+ finally{
+ getComponentsUtils().auditExternalDownloadArtifact(responseFormat, new ResourceCommonInfo(resourceInstanceName, componentTypeValue),
+ new DistributionData(instanceIdHeader, requestURI), requestId, artifactUUID, userId);
}
return responseWrapper.getInnerElement();
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
index 92862b5bd8..01306126ff 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServlet.java
@@ -20,26 +20,9 @@
package org.openecomp.sdc.be.externalapi.servlet;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.inject.Singleton;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
+import com.jcabi.aspects.Loggable;
+import fj.data.Either;
+import io.swagger.annotations.*;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.components.impl.ComponentBusinessLogic;
import org.openecomp.sdc.be.components.impl.ElementBusinessLogic;
@@ -52,23 +35,28 @@ import org.openecomp.sdc.be.ecomp.converters.AssetMetadataConverter;
import org.openecomp.sdc.be.externalapi.servlet.representation.AssetMetadata;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
+import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData;
+import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo;
import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
import org.openecomp.sdc.be.servlets.RepresentationUtils;
import org.openecomp.sdc.common.api.Constants;
-import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
+import org.openecomp.sdc.common.log.wrappers.Logger;
import org.openecomp.sdc.common.util.GeneralUtility;
import org.openecomp.sdc.exception.ResponseFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import com.jcabi.aspects.Loggable;
-
-import fj.data.Either;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import javax.inject.Singleton;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* This Servlet serves external users for retrieving component metadata.
@@ -86,7 +74,7 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
@Context
private HttpServletRequest request;
- private static final Logger log = LoggerFactory.getLogger(AssetsDataServlet.class);
+ private static final Logger log = Logger.getLogger(AssetsDataServlet.class);
/**
*
@@ -133,15 +121,14 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
AuditingActionEnum auditingActionEnum = query == null ? AuditingActionEnum.GET_ASSET_LIST : AuditingActionEnum.GET_FILTERED_ASSET_LIST;
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParam = new EnumMap<AuditingFieldsKeysEnum, Object>(AuditingFieldsKeysEnum.class);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID, instanceIdHeader);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL, query == null ? requestURI : requestURI + "?" + query);
+ String resourceUrl = query == null ? requestURI : requestURI + "?" + query;
+ DistributionData distributionData = new DistributionData(instanceIdHeader, resourceUrl);
// Mandatory
if (instanceIdHeader == null || instanceIdHeader.isEmpty()) {
log.debug("getAssetList: Missing X-ECOMP-InstanceID header");
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID);
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAssetList(responseFormat, auditingActionEnum, distributionData, requestId);
return buildErrorResponse(responseFormat);
}
@@ -166,7 +153,7 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
if (resourceTypeEnum == null) {
log.debug("getAssetList: Asset Fetching Failed. Invalid resource type was received");
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT);
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAssetList(responseFormat, auditingActionEnum, distributionData, requestId);
return buildErrorResponse(responseFormat);
}
filters.put(FilterKeyEnum.RESOURCE_TYPE, resourceTypeEnum.name());
@@ -177,7 +164,7 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
if (assetTypeData.isRight()) {
log.debug("getAssetList: Asset Fetching Failed");
responseFormat = assetTypeData.right().value();
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAssetList(responseFormat, auditingActionEnum, distributionData, requestId);
return buildErrorResponse(responseFormat);
} else {
log.debug("getAssetList: Asset Fetching Success");
@@ -185,12 +172,12 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
if (resMetadata.isRight()) {
log.debug("getAssetList: Asset conversion Failed");
responseFormat = resMetadata.right().value();
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAssetList(responseFormat, auditingActionEnum, distributionData, requestId);
return buildErrorResponse(responseFormat);
}
Object result = RepresentationUtils.toRepresentation(resMetadata.left().value());
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.OK);
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAssetList(responseFormat, auditingActionEnum, distributionData, requestId);
response = buildOkResponse(responseFormat, result);
return response;
@@ -239,18 +226,15 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
String url = request.getMethod() + " " + requestURI;
log.debug("Start handle request of {}", url);
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParam = new EnumMap<>(AuditingFieldsKeysEnum.class);
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID, instanceIdHeader);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL, requestURI);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE, componentType.getValue());
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, uuid);
-
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(componentType.getValue());
+ DistributionData distributionData = new DistributionData(instanceIdHeader, requestURI);
// Mandatory
if (instanceIdHeader == null || instanceIdHeader.isEmpty()) {
log.debug("getAssetList: Missing X-ECOMP-InstanceID header");
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID);
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, distributionData,
+ resourceCommonInfo, requestId, uuid);
return buildErrorResponse(responseFormat);
}
@@ -264,26 +248,30 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
if (assetTypeData.isRight()) {
log.debug("getAssetList: Asset Fetching Failed");
responseFormat = assetTypeData.right().value();
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, distributionData,
+ resourceCommonInfo, requestId, uuid);
return buildErrorResponse(responseFormat);
- } else {
- log.debug("getAssetList: Asset Fetching Success");
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, assetTypeData.left().value().iterator().next().getName());
- Either<List<? extends AssetMetadata>, ResponseFormat> resMetadata = assetMetadataUtils.convertToAssetMetadata(assetTypeData.left().value(), requestURI, true);
- if (resMetadata.isRight()) {
- log.debug("getAssetList: Asset conversion Failed");
- responseFormat = resMetadata.right().value();
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
- return buildErrorResponse(responseFormat);
- }
- Object result = RepresentationUtils.toRepresentation(resMetadata.left().value().iterator().next());
- responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.OK);
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
-
- response = buildOkResponse(responseFormat, result);
- return response;
}
+ resourceCommonInfo.setResourceName(assetTypeData.left().value().iterator().next().getName());
+ log.debug("getAssetList: Asset Fetching Success");
+ Either<List<? extends AssetMetadata>, ResponseFormat> resMetadata = assetMetadataUtils.convertToAssetMetadata(assetTypeData.left().value(), requestURI, true);
+ if (resMetadata.isRight()) {
+ log.debug("getAssetList: Asset conversion Failed");
+ responseFormat = resMetadata.right().value();
+
+ getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, distributionData,
+ resourceCommonInfo, requestId, uuid);
+ return buildErrorResponse(responseFormat);
+ }
+ Object result = RepresentationUtils.toRepresentation(resMetadata.left().value().iterator().next());
+ responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.OK);
+ getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, distributionData,
+ resourceCommonInfo, requestId, uuid);
+
+ response = buildOkResponse(responseFormat, result);
+ return response;
+
} catch (Exception e) {
BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Fetch filtered list of assets");
log.debug("getAssetList: Fetch list of assets failed with exception", e);
@@ -328,26 +316,27 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
ServletContext context = request.getSession().getServletContext();
ComponentTypeEnum componentType = ComponentTypeEnum.findByParamName(assetType);
AuditingActionEnum auditingActionEnum = AuditingActionEnum.GET_TOSCA_MODEL;
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParam = new EnumMap<AuditingFieldsKeysEnum, Object>(AuditingFieldsKeysEnum.class);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID, instanceIdHeader);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL, url);
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE, componentType.getValue());
- additionalParam.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, uuid);
+
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(componentType.getValue());
+ DistributionData distributionData = new DistributionData(instanceIdHeader, url);
if (instanceIdHeader == null || instanceIdHeader.isEmpty()) {
log.debug("getToscaModel: Missing X-ECOMP-InstanceID header");
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID);
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, distributionData,
+ resourceCommonInfo, requestId, uuid);
return buildErrorResponse(responseFormat);
}
try {
ComponentBusinessLogic componentBL = getComponentBL(componentType, context);
- Either<ImmutablePair<String, byte[]>, ResponseFormat> csarArtifact = componentBL.getToscaModelByComponentUuid(componentType, uuid, additionalParam);
+
+ Either<ImmutablePair<String, byte[]>, ResponseFormat> csarArtifact = componentBL.getToscaModelByComponentUuid(componentType, uuid, resourceCommonInfo);
if (csarArtifact.isRight()) {
responseFormat = csarArtifact.right().value();
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, distributionData,
+ resourceCommonInfo, requestId, uuid);
response = buildErrorResponse(responseFormat);
} else {
byte[] value = csarArtifact.left().value().getRight();
@@ -357,7 +346,8 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
headers.put(Constants.CONTENT_DISPOSITION_HEADER, getContentDispositionValue(csarArtifact.left().value().getLeft()));
headers.put(Constants.MD5_HEADER, contenetMD5);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.OK);
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, distributionData,
+ resourceCommonInfo, requestId, uuid);
response = buildOkResponse(responseFormat, is, headers);
}
return response;
@@ -367,7 +357,8 @@ public class AssetsDataServlet extends AbstractValidationsServlet {
log.debug("falied to get asset tosca model", e);
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
response = buildErrorResponse(responseFormat);
- getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, additionalParam);
+ getComponentsUtils().auditExternalGetAsset(responseFormat, auditingActionEnum, distributionData,
+ resourceCommonInfo, requestId, uuid);
return response;
}
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java
index bf8ad6d682..36c274c8fc 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/CrudExternalServlet.java
@@ -20,33 +20,18 @@
package org.openecomp.sdc.be.externalapi.servlet;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import javax.inject.Singleton;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.jcabi.aspects.Loggable;
+import fj.data.Either;
+import io.swagger.annotations.*;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.common.Strings;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
import org.openecomp.sdc.be.components.impl.ElementBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ImportUtils;
import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic;
+import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoBase;
import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction;
@@ -61,34 +46,34 @@ import org.openecomp.sdc.be.ecomp.converters.AssetMetadataConverter;
import org.openecomp.sdc.be.externalapi.servlet.representation.AssetMetadata;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.LifeCycleTransitionEnum;
-import org.openecomp.sdc.be.model.LifecycleStateEnum;
import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.category.CategoryDefinition;
import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
+import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData;
+import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo;
import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
import org.openecomp.sdc.be.servlets.RepresentationUtils;
import org.openecomp.sdc.be.utils.CommonBeUtils;
import org.openecomp.sdc.common.api.Constants;
-import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
import org.openecomp.sdc.common.datastructure.Wrapper;
+import org.openecomp.sdc.common.log.wrappers.Logger;
import org.openecomp.sdc.common.util.ValidationUtils;
import org.openecomp.sdc.exception.ResponseFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.jcabi.aspects.Loggable;
-
-import fj.data.Either;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import javax.inject.Singleton;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
@Loggable(prepend = true, value = Loggable.DEBUG, trim = false)
@Path("/v1/catalog")
@@ -99,7 +84,7 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
@Context
private HttpServletRequest request;
- private static final Logger log = LoggerFactory.getLogger(CrudExternalServlet.class);
+ private static final Logger log = Logger.getLogger(CrudExternalServlet.class);
/**
* Creates a new Resource
@@ -148,7 +133,7 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
@ApiParam(value = "The requested asset type", required = true, allowableValues = "resources, services")@PathParam("assetType") final String assetType,
@ApiParam( hidden = true) String data) {
- init(log);
+ init();
Wrapper<ResponseFormat> responseWrapper = new Wrapper<>();
String requestURI = request.getRequestURI();
@@ -156,7 +141,8 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
log.debug("Start handle request of {}", url);
Resource resource = null;
User modifier = null;
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
+ ResourceCommonInfo resourceCommonInfo = new ResourceCommonInfo(ComponentTypeEnum.RESOURCE.getValue());
+
ServletContext context = request.getSession().getServletContext();
ResourceBusinessLogic resourceBL = getResourceBL(context);
try {
@@ -180,7 +166,7 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
JSONObject jsonObj = (JSONObject) parser.parse(data);
String resourceType = (String) jsonObj.get(FilterKeyEnum.RESOURCE_TYPE.getName());
if( StringUtils.isEmpty(resourceType) || !ResourceTypeEnum.containsName(resourceType) ){
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, (String) jsonObj.get("name"));
+ resourceCommonInfo.setResourceName((String) jsonObj.get("name"));
responseWrapper.setInnerElement(getComponentsUtils().getResponseFormat(ActionStatus.INVALID_CONTENT));
}
}
@@ -217,36 +203,25 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
}
// Create the resource in the dataModel
if (responseWrapper.isEmpty()) {
- Either<Resource, ResponseFormat> eitherCreateResponse = resourceBL.createResource(resource, null,
+ resource = resourceBL.createResource(resource, null,
modifier, null, null);
- if (eitherCreateResponse.isRight()) {
- responseWrapper.setInnerElement(eitherCreateResponse.right().value());
- } else {
- resource = eitherCreateResponse.left().value();
- }
- }
- Response response;
- //Build Response and store it in the response Wrapper
- if (responseWrapper.isEmpty()) {
- response = buildCreatedResourceResponse(resource, context, responseWrapper);
- }
- else{
- response = buildErrorResponse(responseWrapper.getInnerElement());
+ return buildCreatedResourceResponse(resource, context, responseWrapper);
+ } else {
+ return buildErrorResponse(responseWrapper.getInnerElement());
}
- return response;
-
- } catch (Exception e) {
+ } catch (IOException|ParseException e) {
final String message = "failed to create vfc monitoring template resource";
BeEcompErrorManager.getInstance().logBeRestApiGeneralError(message);
log.debug(message, e);
- return buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
+ responseWrapper.setInnerElement(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
+ return buildErrorResponse(responseWrapper.getInnerElement());
+ } catch (ComponentException e){
+ ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(e);
+ responseWrapper.setInnerElement(responseFormat);
+ return buildErrorResponse(responseFormat);
}
finally{
- prepareAdditionalAudit(resource, additionalParams);
-
- getComponentsUtils().auditExternalCrudApi(responseWrapper.getInnerElement(),
- ComponentTypeEnum.RESOURCE.getValue(), AuditingActionEnum.CREATE_RESOURCE_BY_API.getName(), request,
- additionalParams);
+ getComponentsUtils().auditCreateResourceExternalApi(responseWrapper.getInnerElement(), resourceCommonInfo, request, resource);
}
}
@@ -288,9 +263,8 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
@ApiParam( hidden = true) String jsonChangeInfo) {
Response response = null;
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- init(log);
+ init();
String requestURI = request.getRequestURI();
String url = request.getMethod() + " " + requestURI;
@@ -349,7 +323,7 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
changeInfo = new LifecycleChangeInfoWithAction(mapper.readValue(jsonChangeInfo, LifecycleChangeInfoBase.class).getUserRemarks());
}
}
- catch (Exception e) {
+ catch (IOException e) {
BeEcompErrorManager.getInstance().logBeInvalidJsonInput("convertJsonToObject");
log.debug("failed to convert from json {}", jsonChangeInfo, e);
ResponseFormat responseFormat = getComponentsUtils().getInvalidContentErrorAndAudit(modifier, componentId, AuditingActionEnum.CHECKOUT_RESOURCE);
@@ -374,32 +348,20 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
}
return response;
- } catch (Exception e) {
+ } catch (IOException e) {
BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Change Lifecycle State");
log.debug("change lifecycle state failed with exception", e);
ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
responseWrapper.setInnerElement(responseFormat);
return buildErrorResponse(responseFormat);
- } finally{
- auditChnageLifecycleAction(additionalParams, responseWrapper, componentType, component, responseObject, modifier, userId);
+ } catch (ComponentException e){
+ ResponseFormat responseFormat = getComponentsUtils().getResponseFormat(e);
+ responseWrapper.setInnerElement(responseFormat);
+ return buildErrorResponse(responseFormat);
}
- }
-
- private void prepareAdditionalAudit(Resource resource, EnumMap<AuditingFieldsKeysEnum, Object> additionalParams) {
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_PREV_VERSION, StringUtils.EMPTY);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_PREV_STATE, StringUtils.EMPTY);
-
- if( resource != null ){
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_VERSION, ImportUtils.Constants.FIRST_NON_CERTIFIED_VERSION);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resource.getName());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, resource.getUUID());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_INVARIANT_UUID, resource.getInvariantUUID());
- } else {
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_VERSION, StringUtils.EMPTY);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_STATE, StringUtils.EMPTY);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, StringUtils.EMPTY);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_INVARIANT_UUID, StringUtils.EMPTY);
+ finally{
+ getComponentsUtils().auditChangeLifecycleAction(responseWrapper.getInnerElement(), componentType, requestId,
+ component, responseObject, new DistributionData(instanceIdHeader, requestURI), modifier);
}
}
@@ -455,7 +417,7 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
addCategories(resource, category, subcategory, allResourceCategories, responseWrapper);
}
}
- } catch (Exception e) {
+ } catch (ParseException e) {
log.debug("Exception occured in addCategories: {}", e.getMessage(), e);
responseWrapper.setInnerElement(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
}
@@ -502,50 +464,7 @@ public class CrudExternalServlet extends AbstractValidationsServlet {
- private void auditChnageLifecycleAction(EnumMap<AuditingFieldsKeysEnum, Object> additionalParams,
- Wrapper<ResponseFormat> responseWrapper, ComponentTypeEnum componentType, Component component,
- Component responseObject, User modifier, String userId) {
- if (modifier!=null){
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_MODIFIER_NAME, modifier.getFullName());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_MODIFIER_UID, modifier.getUserId());
- } else {
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_MODIFIER_NAME, "");
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_MODIFIER_UID, userId);
- }
-
- if (component!=null){
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, component.getName());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_PREV_VERSION, component.getVersion());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_PREV_STATE, component.getLifecycleState().name());
- } else {
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, "");
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_PREV_VERSION, "");
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_PREV_STATE, "");
- }
-
- if (responseObject!=null){
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_VERSION, responseObject.getVersion());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, responseObject.getUUID());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_INVARIANT_UUID, responseObject.getInvariantUUID());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_STATE,responseObject.getLifecycleState().name());
- } else {
- if (component!=null){
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_VERSION, component.getVersion());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, component.getUUID());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_INVARIANT_UUID, component.getInvariantUUID());
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_STATE,component.getLifecycleState().name());
- } else {
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_VERSION, "");
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, "");
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_INVARIANT_UUID, "");
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_STATE,"");
- }
- }
- getComponentsUtils().auditExternalCrudApi(responseWrapper.getInnerElement(),
- componentType.getValue(), AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName(), request,
- additionalParams);
- }
private Wrapper<ResponseFormat> runValidations(final String assetType) {
Wrapper<ResponseFormat> responseWrapper = new Wrapper<>();
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefsServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefsServlet.java
index a459e3d7e0..cede761386 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefsServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefsServlet.java
@@ -1,45 +1,29 @@
package org.openecomp.sdc.be.externalapi.servlet;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
+import fj.data.Either;
import org.openecomp.sdc.be.components.impl.ExternalRefsBusinessLogic;
import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.dto.ExternalRefDTO;
import org.openecomp.sdc.be.impl.ComponentsUtils;
-import org.openecomp.sdc.be.model.User;
-import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
-import org.openecomp.sdc.common.api.Constants;
+import org.openecomp.sdc.be.servlets.BeGenericServlet;
import org.openecomp.sdc.common.datastructure.Wrapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.openecomp.sdc.common.log.wrappers.Logger;
import org.springframework.stereotype.Controller;
-import fj.data.Either;
-
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.util.List;
+import java.util.Map;
@Path("/v1/catalog")
@Controller
-public class ExternalRefsServlet extends AbstractValidationsServlet {
+public class ExternalRefsServlet extends BeGenericServlet {
- private static final Logger log = LoggerFactory.getLogger(ExternalRefsServlet.class);
-
- private ExternalRefsBusinessLogic businessLogic;
+ private static final Logger log = Logger.getLogger(ExternalRefsServlet.class);
+ private final ComponentsUtils componentsUtils;
+ private final ExternalRefsBusinessLogic businessLogic;
public ExternalRefsServlet(ExternalRefsBusinessLogic businessLogic, ComponentsUtils componentsUtils){
this.businessLogic = businessLogic;
@@ -50,16 +34,15 @@ public class ExternalRefsServlet extends AbstractValidationsServlet {
@Path("/{assetType}/{uuid}/version/{version}/resourceInstances/{componentInstanceName}/externalReferences/{objectType}")
@Produces(MediaType.APPLICATION_JSON)
public Response getComponentInstanceExternalRef(
- @Context final HttpServletRequest request,
@PathParam("assetType") String assetType,
@PathParam("uuid") String uuid,
@PathParam("version") String version,
@PathParam("componentInstanceName") String componentInstanceName,
- @PathParam("objectType") String objectType, @HeaderParam("USER_ID") String userId) {
+ @PathParam("objectType") String objectType, @HeaderParam("USER_ID") String userId, @HeaderParam("X-ECOMP-InstanceID") String xEcompInstanceId) {
log.debug("GET component instance external interfaces {} {} {} {}", assetType, uuid, componentInstanceName, objectType);
- Response r = authorizeAndValidateRequest(request, userId);
+ Response r = validateRequest(xEcompInstanceId);
if (r != null){
return r;
}
@@ -76,15 +59,14 @@ public class ExternalRefsServlet extends AbstractValidationsServlet {
@Path("/{assetType}/{uuid}/version/{version}/externalReferences/{objectType}")
@Produces(MediaType.APPLICATION_JSON)
public Map<String, List<String>> getAssetExternalRefByObjectType(
- @Context final HttpServletRequest request,
@PathParam("assetType") String assetType,
@PathParam("uuid") String uuid,
@PathParam("version") String version,
- @PathParam("objectType") String objectType, @HeaderParam("USER_ID") String userId) {
+ @PathParam("objectType") String objectType, @HeaderParam("USER_ID") String userId, @HeaderParam("X-ECOMP-InstanceID") String xEcompInstanceId) {
log.debug("GET asset external references {} {} {}", assetType, uuid, objectType);
- Response r = authorizeAndValidateRequest(request, userId);
+ Response r = validateRequest(xEcompInstanceId);
if (r != null){
throw new WebApplicationException(r);
}
@@ -102,20 +84,19 @@ public class ExternalRefsServlet extends AbstractValidationsServlet {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response addComponentInstanceExternalRef(
- @Context final HttpServletRequest request,
@PathParam("assetType") String assetType,
@PathParam("uuid") String uuid,
@PathParam("componentInstanceName") String componentInstanceName,
- @PathParam("objectType") String objectType, ExternalRefDTO ref, @HeaderParam("USER_ID") String userId) {
+ @PathParam("objectType") String objectType, ExternalRefDTO ref, @HeaderParam("USER_ID") String userId, @HeaderParam("X-ECOMP-InstanceID") String xEcompInstanceId) {
log.debug("POST component instance external interfaces {} {} {} {} {}", assetType, uuid, componentInstanceName, objectType, ref);
- Response r = authorizeAndValidateRequest(request, userId);
+ Response r = validateRequest(xEcompInstanceId);
if (r != null){
return r;
}
- Either<String, ActionStatus> addResult = this.businessLogic.addExternalReference(uuid, componentInstanceName, objectType, ref);
+ Either<String, ActionStatus> addResult = this.businessLogic.addExternalReference(ComponentTypeEnum.findByParamName(assetType), userId, uuid, componentInstanceName, objectType, ref);
if (addResult.isLeft()) {
return Response.status(Response.Status.CREATED)
.entity(ref)
@@ -130,21 +111,20 @@ public class ExternalRefsServlet extends AbstractValidationsServlet {
@Path("/{assetType}/{uuid}/resourceInstances/{componentInstanceName}/externalReferences/{objectType}/{reference}")
@Produces(MediaType.APPLICATION_JSON)
public Response deleteComponentInstanceReference(
- @Context final HttpServletRequest request,
@PathParam("assetType") String assetType,
@PathParam("uuid") String uuid,
@PathParam("componentInstanceName") String componentInstanceName,
@PathParam("objectType") String objectType,
- @PathParam("reference") String reference, @HeaderParam("USER_ID") String userId) {
+ @PathParam("reference") String reference, @HeaderParam("USER_ID") String userId, @HeaderParam("X-ECOMP-InstanceID") String xEcompInstanceId) {
log.debug("DELETE component instance external interfaces {} {} {} {}", assetType, uuid, componentInstanceName, objectType);
- Response r = authorizeAndValidateRequest(request, userId);
+ Response r = validateRequest(xEcompInstanceId);
if (r != null){
return r;
}
- Either<String, ActionStatus> deleteStatus = this.businessLogic.deleteExternalReference(uuid, componentInstanceName, objectType, reference);
+ Either<String, ActionStatus> deleteStatus = this.businessLogic.deleteExternalReference(ComponentTypeEnum.findByParamName(assetType), userId, uuid, componentInstanceName, objectType, reference);
if (deleteStatus.isLeft()){
return this.buildOkResponse(new ExternalRefDTO(reference));
} else {
@@ -157,23 +137,22 @@ public class ExternalRefsServlet extends AbstractValidationsServlet {
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response updateComponentInstanceReference(
- @Context final HttpServletRequest request,
@PathParam("assetType") String assetType,
@PathParam("uuid") String uuid,
@PathParam("componentInstanceName") String componentInstanceName,
@PathParam("objectType") String objectType,
@PathParam("oldRefValue") String oldRefValue,
- ExternalRefDTO newRefValueDTO, @HeaderParam("USER_ID") String userId) {
+ ExternalRefDTO newRefValueDTO, @HeaderParam("USER_ID") String userId, @HeaderParam("X-ECOMP-InstanceID") String xEcompInstanceId) {
log.debug("PUT component instance external interfaces {} {} {} {}", assetType, uuid, componentInstanceName, objectType);
- Response r = authorizeAndValidateRequest(request, userId);
+ Response r = validateRequest(xEcompInstanceId);
if (r != null){
return r;
}
String newRefValue = newRefValueDTO.getReferenceUUID();
- Either<String, ActionStatus> updateResult = this.businessLogic.updateExternalReference(uuid, componentInstanceName, objectType, oldRefValue, newRefValue);
+ Either<String, ActionStatus> updateResult = this.businessLogic.updateExternalReference(ComponentTypeEnum.findByParamName(assetType), userId, uuid, componentInstanceName, objectType, oldRefValue, newRefValue);
if (updateResult.isLeft()){
return this.buildOkResponse(new ExternalRefDTO(newRefValue));
} else {
@@ -182,23 +161,14 @@ public class ExternalRefsServlet extends AbstractValidationsServlet {
}
- private Response authorizeAndValidateRequest(final HttpServletRequest request, String userId) {
- init(log);
-
+ private Response validateRequest(String xEcompInstanceIdHeader) {
Wrapper<Response> responseWrapper = new Wrapper<>();
- Wrapper<User> userWrapper = new Wrapper<>();
//Validate X-ECOMP_INSTANCE_ID_HEADER
- if (request.getHeader(Constants.X_ECOMP_INSTANCE_ID_HEADER) == null || request.getHeader(Constants.X_ECOMP_INSTANCE_ID_HEADER).isEmpty()){
+ if (xEcompInstanceIdHeader == null || xEcompInstanceIdHeader.isEmpty()){
return this.buildExtRefErrorResponse(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID, "", "", "", "", "");
}
- String method = request.getMethod();
- if (responseWrapper.isEmpty() && !"GET".equals(method)) {
- validateUserExist(responseWrapper, userWrapper, userId);
- validateUserRole(responseWrapper, userWrapper.getInnerElement());
- }
-
return responseWrapper.getInnerElement();
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ServiceActivationServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ServiceActivationServlet.java
index e5f6dcd126..559854c9b4 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ServiceActivationServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/externalapi/servlet/ServiceActivationServlet.java
@@ -1,47 +1,32 @@
package org.openecomp.sdc.be.externalapi.servlet;
-import java.io.IOException;
-import java.util.EnumMap;
-
-import javax.inject.Singleton;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.jcabi.aspects.Loggable;
+import fj.data.Either;
+import io.swagger.annotations.*;
import org.apache.commons.lang3.StringUtils;
import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.externalapi.servlet.representation.ServiceDistributionReqInfo;
import org.openecomp.sdc.be.externalapi.servlet.representation.ServiceDistributionRespInfo;
import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData;
import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
import org.openecomp.sdc.be.servlets.RepresentationUtils;
import org.openecomp.sdc.common.api.Constants;
-import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
import org.openecomp.sdc.common.datastructure.Wrapper;
+import org.openecomp.sdc.common.log.wrappers.Logger;
import org.openecomp.sdc.exception.ResponseFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.jcabi.aspects.Loggable;
-
-import fj.data.Either;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import javax.inject.Singleton;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.IOException;
/**
* Created by chaya on 10/17/2017.
@@ -55,7 +40,7 @@ public class ServiceActivationServlet extends AbstractValidationsServlet {
@Context
private HttpServletRequest request;
- private static final Logger log = LoggerFactory.getLogger(ServiceActivationServlet.class);
+ private static final Logger log = Logger.getLogger(ServiceActivationServlet.class);
/**
* Activates a service on a specific environment
@@ -95,23 +80,21 @@ public class ServiceActivationServlet extends AbstractValidationsServlet {
@ApiParam(value = "The operational environment on which to activate the service on", required = true) @PathParam("opEnvId") final String opEnvId,
String data) {
- init(log);
+ init();
ResponseFormat responseFormat = null;
String requestURI = request.getRequestURI();
String url = request.getMethod() + " " + requestURI;
- EnumMap<AuditingFieldsKeysEnum, Object> additionalParams = new EnumMap<>(AuditingFieldsKeysEnum.class);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID, serviceUUID);
- additionalParams.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID, instanceIdHeader);
log.debug("Start handle request of {}", url);
ServletContext context = request.getSession().getServletContext();
+ User modifier = new User();
+
try {
Wrapper<ResponseFormat> responseWrapper = validateRequestHeaders(instanceIdHeader, userId);
if (responseWrapper.isEmpty()) {
- User modifier = new User();
modifier.setUserId(userId);
log.debug("modifier id is {}", userId);
@@ -139,7 +122,8 @@ public class ServiceActivationServlet extends AbstractValidationsServlet {
responseFormat = getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR);
return buildErrorResponse(responseFormat);
} finally {
- getComponentsUtils().auditExternalActivateService(responseFormat, ComponentTypeEnum.SERVICE.name(), request, additionalParams);
+ getComponentsUtils().auditExternalActivateService(responseFormat,
+ new DistributionData(instanceIdHeader, requestURI), requestId, serviceUUID, modifier);
}
}