diff options
author | AviZi <avi.ziv@amdocs.com> | 2017-06-09 02:39:56 +0300 |
---|---|---|
committer | AviZi <avi.ziv@amdocs.com> | 2017-06-09 02:39:56 +0300 |
commit | 280f8015d06af1f41a3ef12e8300801c7a5e0d54 (patch) | |
tree | 9c1d3978c04cd28068f02073038c936bb49ca9e0 /openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/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/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services')
9 files changed, 767 insertions, 273 deletions
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentDependencyModelsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentDependencyModelsImpl.java new file mode 100644 index 0000000000..4a23140c88 --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentDependencyModelsImpl.java @@ -0,0 +1,78 @@ +package org.openecomp.sdcrests.vsp.rest.services; + +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.types.LoggerServiceName; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManager; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.types.VersionableEntityAction; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentDependencyModel; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentDependencyModelRequestDto; +import org.openecomp.sdcrests.vsp.rest.ComponentDependencyModels; +import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentDependencyModelEntityToDto; +import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentDependencyModelRequestToEntity; + +import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import javax.inject.Named; +import javax.ws.rs.core.Response; + +@Named +@Service("componentDependencyModel") +@Scope(value = "prototype") +public class ComponentDependencyModelsImpl implements ComponentDependencyModels { + + private ComponentDependencyModelManager componentDependencyModelManager = + ComponentDependencyModelManagerFactory.getInstance().createInterface(); + + @Override + public Response create(ComponentDependencyModelRequestDto request, String vspId, + String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.CREATE_COMPONENT_DEPENDENCY_MODEL.toString()); + List<ComponentDependencyModelEntity> modelEntities = new + ArrayList<ComponentDependencyModelEntity>(); + + final Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + + if (request.getComponentDependencyModels() != null) { + for(ComponentDependencyModel model : request.getComponentDependencyModels()) { + ComponentDependencyModelEntity modelEntity = + new MapComponentDependencyModelRequestToEntity().applyMapping(model, + ComponentDependencyModelEntity.class); + + modelEntity.setVspId(vspId); + modelEntity.setVersion(version); + modelEntities.add(modelEntity); + } + } + + componentDependencyModelManager + .createComponentDependencyModel(modelEntities, vspId, version, user); + + return Response.ok().build(); + } + + @Override + public Response list(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.GET_COMPONENT_DEPENDENCY_MODEL.toString()); + Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read); + + Collection<ComponentDependencyModelEntity> componentDependencies = + componentDependencyModelManager.list(vspId, vspVersion, user); + + MapComponentDependencyModelEntityToDto mapper = new MapComponentDependencyModelEntityToDto(); + GenericCollectionWrapper<ComponentDependencyModel> results = new GenericCollectionWrapper + <ComponentDependencyModel>(); + for (ComponentDependencyModelEntity entity : componentDependencies) { + results.add(mapper.applyMapping(entity, ComponentDependencyModel.class)); + } + + return Response.ok(results).build(); + } +} diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentProcessesImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentProcessesImpl.java index 2b16fea6c0..abcb3c5322 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentProcessesImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentProcessesImpl.java @@ -21,9 +21,19 @@ package org.openecomp.sdcrests.vsp.rest.services; import org.apache.cxf.jaxrs.ext.multipart.Attachment; -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.messages.AuditMessages; +import org.openecomp.sdc.logging.types.LoggerServiceName; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.ProcessManager; +import org.openecomp.sdc.vendorsoftwareproduct.ProcessManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity; import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.types.VersionableEntityAction; import org.openecomp.sdcrests.vendorsoftwareproducts.types.ProcessEntityDto; import org.openecomp.sdcrests.vendorsoftwareproducts.types.ProcessRequestDto; import org.openecomp.sdcrests.vsp.rest.ComponentProcesses; @@ -31,29 +41,40 @@ import org.openecomp.sdcrests.vsp.rest.mapping.MapProcessEntityToProcessEntityDt import org.openecomp.sdcrests.vsp.rest.mapping.MapProcessRequestDtoToProcessEntity; import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper; import org.openecomp.sdcrests.wrappers.StringWrapperResponse; - -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; +import javax.inject.Named; +import javax.ws.rs.core.Response; import java.io.File; import java.io.InputStream; import java.util.Collection; -import javax.inject.Named; -import javax.ws.rs.core.Response; +import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID; @Named @Service("componentProcesses") @Scope(value = "prototype") public class ComponentProcessesImpl implements ComponentProcesses { - @Autowired - private VendorSoftwareProductManager vendorSoftwareProductManager; + + private ProcessManager processManager = ProcessManagerFactory.getInstance().createInterface(); + private ComponentManager componentManager = + ComponentManagerFactory.getInstance().createInterface(); + private static final Logger logger = + LoggerFactory.getLogger(ComponentProcessesImpl.class); @Override - public Response list(String vspId, String componentId, String version, String user) { - Collection<ProcessEntity> processes = vendorSoftwareProductManager - .listProcesses(vspId, Version.valueOf(version), componentId, user); + public Response list(String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.List_Component_Processes.toString()); + Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read); + validateComponentExistence(vspId, vspVersion, componentId, user); + Collection<ProcessEntity> processes; + if (componentId.equals(VendorSoftwareProductConstants.GENERAL_COMPONENT_ID)) { + processes = processManager.listProcesses(vspId, vspVersion, null, user); + } else { + processes = processManager.listProcesses(vspId, vspVersion, componentId, user); + } + MapProcessEntityToProcessEntityDto mapper = new MapProcessEntityToProcessEntityDto(); GenericCollectionWrapper<ProcessEntityDto> results = new GenericCollectionWrapper<>(); @@ -65,58 +86,81 @@ public class ComponentProcessesImpl implements ComponentProcesses { } @Override - public Response deleteList(String vspId, String componentId, String user) { - vendorSoftwareProductManager.deleteProcesses(vspId, componentId, user); + public Response deleteList(String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_List_Component_Processes.toString()); + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + validateComponentExistence(vspId, version, componentId, user); + processManager.deleteProcesses(vspId, version, componentId, user); + return Response.ok().build(); } @Override - public Response create(ProcessRequestDto request, String vspId, String componentId, String user) { + public Response create(ProcessRequestDto request, String vspId, String versionId, + String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.Create_Component_Processes.toString()); ProcessEntity process = new MapProcessRequestDtoToProcessEntity().applyMapping(request, ProcessEntity.class); process.setVspId(vspId); - process.setComponentId(componentId); + process.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); + if (!componentId.equals(VendorSoftwareProductConstants.GENERAL_COMPONENT_ID)) { + process.setComponentId(componentId); + } + + validateComponentExistence(vspId, process.getVersion(), componentId, user); + ProcessEntity createdProcess = processManager.createProcess(process, user); - ProcessEntity createdProcess = vendorSoftwareProductManager.createProcess(process, user); return Response .ok(createdProcess != null ? new StringWrapperResponse(createdProcess.getId()) : null) .build(); } @Override - public Response get(String vspId, String componentId, String processId, String version, + public Response get(String vspId, String versionId, String componentId, String processId, String user) { - ProcessEntity process = vendorSoftwareProductManager - .getProcess(vspId, Version.valueOf(version), componentId, processId, user); + MdcUtil.initMdc(LoggerServiceName.Get_Component_Processes.toString()); + Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read); + validateComponentExistence(vspId, vspVersion, componentId, user); + ProcessEntity process = + processManager.getProcess(vspId, vspVersion, componentId, processId, user); ProcessEntityDto result = new MapProcessEntityToProcessEntityDto().applyMapping(process, ProcessEntityDto.class); return Response.ok(result).build(); } @Override - public Response delete(String vspId, String componentId, String processId, String user) { - vendorSoftwareProductManager.deleteProcess(vspId, componentId, processId, user); + public Response delete(String vspId, String versionId, String componentId, String processId, + String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_Component_Processes.toString()); + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + validateComponentExistence(vspId, version, componentId, user); + processManager.deleteProcess(vspId, version, componentId, processId, user); return Response.ok().build(); } @Override - public Response update(ProcessRequestDto request, String vspId, String componentId, + public Response update(ProcessRequestDto request, String vspId, String versionId, + String componentId, String processId, String user) { - ProcessEntity processEntity = + MdcUtil.initMdc(LoggerServiceName.Update_Component_Processes.toString()); + ProcessEntity process = new MapProcessRequestDtoToProcessEntity().applyMapping(request, ProcessEntity.class); - processEntity.setVspId(vspId); - processEntity.setComponentId(componentId); - processEntity.setId(processId); - - vendorSoftwareProductManager.updateProcess(processEntity, user); + process.setVspId(vspId); + process.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); + process.setComponentId(componentId); + process.setId(processId); + validateComponentExistence(vspId, process.getVersion(), componentId, user); + processManager.updateProcess(process, user); return Response.ok().build(); } @Override - public Response getUploadedFile(String vspId, String componentId, String processId, - String version, String user) { - File file = vendorSoftwareProductManager - .getProcessArtifact(vspId, Version.valueOf(version), componentId, processId, user); + public Response getUploadedFile(String vspId, String versionId, String componentId, + String processId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Uploaded_File_Component_Processes.toString()); + Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read); + validateComponentExistence(vspId, vspVersion, componentId, user); + File file = processManager.getProcessArtifact(vspId, vspVersion, componentId, processId, user); Response.ResponseBuilder response = Response.ok(file); if (file == null) { @@ -127,18 +171,36 @@ public class ComponentProcessesImpl implements ComponentProcesses { } @Override - public Response deleteUploadedFile(String vspId, String componentId, String processId, + public Response deleteUploadedFile(String vspId, String versionId, String componentId, + String processId, String user) { - vendorSoftwareProductManager.deleteProcessArtifact(vspId, componentId, processId, user); + MdcUtil.initMdc(LoggerServiceName.Delete_Uploaded_File_Component_Processes.toString()); + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + validateComponentExistence(vspId, version, componentId, user); + processManager.deleteProcessArtifact(vspId, version, componentId, processId, user); return Response.ok().build(); } @Override - public Response uploadFile(Attachment attachment, String vspId, String componentId, + public Response uploadFile(Attachment attachment, String vspId, String versionId, + String componentId, String processId, String user) { - vendorSoftwareProductManager.uploadProcessArtifact(attachment.getObject(InputStream.class), - attachment.getContentDisposition().getParameter("filename"), vspId, componentId, processId, - user); + MdcUtil.initMdc(LoggerServiceName.Upload_File_Component_Processes.toString()); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_PROCESS_ARTIFACT + vspId); + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + validateComponentExistence(vspId, version, componentId, user); + processManager.uploadProcessArtifact(attachment.getObject(InputStream.class), + attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId, + processId, user); return Response.ok().build(); } + + + private void validateComponentExistence(String vspId, Version version, String componentId, + String user) { + if (GENERAL_COMPONENT_ID.equals(componentId)) { + return; + } + componentManager.validateComponentExistence(vspId, version, componentId, user); + } } diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentUploadsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentUploadsImpl.java index 3cd384d7e7..7a2a1578b6 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentUploadsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentUploadsImpl.java @@ -21,63 +21,113 @@ package org.openecomp.sdcrests.vsp.rest.services; import org.apache.cxf.jaxrs.ext.multipart.Attachment; -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; +import org.openecomp.core.enrichment.types.ArtifactType; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; +import org.openecomp.sdc.logging.messages.AuditMessages; +import org.openecomp.sdc.logging.types.LoggerServiceName; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.MibManager; +import org.openecomp.sdc.vendorsoftwareproduct.MibManagerFactory; import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.types.VersionableEntityAction; import org.openecomp.sdcrests.vendorsoftwareproducts.types.MibUploadStatusDto; import org.openecomp.sdcrests.vsp.rest.ComponentUploads; import org.openecomp.sdcrests.vsp.rest.mapping.MapMibUploadStatusToDto; - -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import java.io.InputStream; import javax.inject.Named; import javax.ws.rs.core.Response; +import java.io.InputStream; @Named @Service("componentUploads") @Scope(value = "prototype") @Validated public class ComponentUploadsImpl implements ComponentUploads { - @Autowired - private VendorSoftwareProductManager vendorSoftwareProductManager; + private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); + private MibManager mibManager = MibManagerFactory.getInstance().createInterface(); + private ComponentManager componentManager = + ComponentManagerFactory.getInstance().createInterface(); + private static final Logger logger = + LoggerFactory.getLogger(ComponentUploadsImpl.class); @Override - public Response uploadTrapMibFile(Attachment attachment, String vspId, String componentId, + public Response uploadTrapMibFile(Attachment attachment, String vspId, String versionId, String componentId, String user) { - vendorSoftwareProductManager.uploadComponentMib(attachment.getObject(InputStream.class), - attachment.getContentDisposition().getParameter("filename"), vspId, componentId, true, - user); + mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId); + MdcUtil.initMdc(LoggerServiceName.Upload_MIB_File.toString()); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_ARTIFACT_MIB_TRAP + vspId); + + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.validateComponentExistence(vspId, version, componentId, user); + mibManager.upload(attachment.getObject(InputStream.class), + attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId, + ArtifactType.SNMP_TRAP, user); + + mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId); return Response.ok().build(); } @Override - public Response deleteTrapMibFile(String vspId, String componentId, String user) { - vendorSoftwareProductManager.deleteComponentMib(vspId, componentId, true, user); + public Response deleteTrapMibFile(String vspId, String versionId, String componentId, String user) { + mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId); + MdcUtil.initMdc(LoggerServiceName.Delete_MIB_File.toString()); + + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.validateComponentExistence(vspId, version, componentId, user); + mibManager.delete(vspId, version, componentId, ArtifactType.SNMP_TRAP, user); + + mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId); return Response.ok().build(); } @Override - public Response uploadPollMibFile(Attachment attachment, String vspId, String componentId, + public Response uploadPollMibFile(Attachment attachment, String vspId, String versionId, String componentId, String user) { - vendorSoftwareProductManager.uploadComponentMib(attachment.getObject(InputStream.class), - attachment.getContentDisposition().getParameter("filename"), vspId, componentId, false, - user); + + mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_ARTIFACT_MIB_POLL + vspId); + MdcUtil.initMdc(LoggerServiceName.Upload_MIB_File.toString()); + + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.validateComponentExistence(vspId, version, componentId, user); + mibManager.upload(attachment.getObject(InputStream.class), + attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId, + ArtifactType.SNMP_POLL, user); + + mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId); return Response.ok().build(); } @Override - public Response deletePollMibFile(String vspId, String componentId, String user) { - vendorSoftwareProductManager.deleteComponentMib(vspId, componentId, false, user); + public Response deletePollMibFile(String vspId, String versionId, String componentId, String + user) { + mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId); + MdcUtil.initMdc(LoggerServiceName.Delete_MIB_File.toString()); + + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.validateComponentExistence(vspId, version, componentId, user); + mibManager.delete(vspId, version, componentId, ArtifactType.SNMP_POLL, user); + + mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId); return Response.ok().build(); } @Override - public Response list(String vspId, String componentId, String user) { - MibUploadStatus response = - vendorSoftwareProductManager.listMibFilenames(vspId, componentId, user); + public Response list(String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.List_MIB_Files.toString()); + + Version version = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read); + componentManager.validateComponentExistence(vspId, version, componentId, user); + + MibUploadStatus response = mibManager.listFilenames(vspId, version, componentId, user); MibUploadStatusDto returnEntity = new MapMibUploadStatusToDto().applyMapping(response, MibUploadStatusDto.class); diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentsImpl.java index cba9abbdbc..a36534ae4f 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ComponentsImpl.java @@ -21,13 +21,17 @@ package org.openecomp.sdcrests.vsp.rest.services; import org.apache.commons.collections4.CollectionUtils; -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.types.LoggerServiceName; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity; import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData; import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse; import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.types.VersionableEntityAction; import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentDto; import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentRequestDto; import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto; @@ -42,27 +46,26 @@ import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityValidationDat import org.openecomp.sdcrests.vsp.rest.mapping.MapQuestionnaireResponseToQuestionnaireResponseDto; import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper; import org.openecomp.sdcrests.wrappers.StringWrapperResponse; - -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; -import java.util.Collection; import javax.inject.Named; import javax.ws.rs.core.Response; - +import java.util.Collection; @Named @Service("components") @Scope(value = "prototype") public class ComponentsImpl implements Components { - @Autowired - private VendorSoftwareProductManager vendorSoftwareProductManager; + private ComponentManager componentManager = + ComponentManagerFactory.getInstance().createInterface(); @Override - public Response list(String vspId, String version, String user) { + public Response list(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.List_Components.toString()); Collection<ComponentEntity> components = - vendorSoftwareProductManager.listComponents(vspId, Version.valueOf(version), user); + componentManager.listComponents(vspId, resolveVspVersion(vspId, versionId, user, + VersionableEntityAction.Read), user); MapComponentEntityToComponentDto mapper = new MapComponentEntityToComponentDto(); GenericCollectionWrapper<ComponentDto> results = new GenericCollectionWrapper<>(); @@ -74,27 +77,33 @@ public class ComponentsImpl implements Components { } @Override - public Response deleteList(String vspId, String user) { - vendorSoftwareProductManager.deleteComponents(vspId, user); + public Response deleteList(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_List_Components.toString()); + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.deleteComponents(vspId, version, user); return Response.ok().build(); } @Override - public Response create(ComponentRequestDto request, String vspId, String user) { + public Response create(ComponentRequestDto request, String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Create_Component.toString()); ComponentEntity component = new MapComponentRequestDtoToComponentEntity().applyMapping(request, ComponentEntity.class); component.setVspId(vspId); - ComponentEntity createdComponent = - vendorSoftwareProductManager.createComponent(component, user); + component.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); + + ComponentEntity createdComponent = componentManager.createComponent(component, user); return Response .ok(createdComponent != null ? new StringWrapperResponse(createdComponent.getId()) : null) .build(); } @Override - public Response get(String vspId, String componentId, String version, String user) { - CompositionEntityResponse<ComponentData> response = vendorSoftwareProductManager - .getComponent(vspId, Version.valueOf(version), componentId, user); + public Response get(String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Component.toString()); + CompositionEntityResponse<ComponentData> response = componentManager + .getComponent(vspId, resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), + componentId, user); CompositionEntityResponseDto<ComponentDto> responseDto = new CompositionEntityResponseDto<>(); new MapCompositionEntityResponseToDto<>(new MapComponentDataToComponentDto(), @@ -103,32 +112,38 @@ public class ComponentsImpl implements Components { } @Override - public Response delete(String vspId, String componentId, String user) { - vendorSoftwareProductManager.deleteComponent(vspId, componentId, user); + public Response delete(String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_Component.toString()); + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.deleteComponent(vspId, version, componentId, user); return Response.ok().build(); } @Override - public Response update(ComponentRequestDto request, String vspId, String componentId, + public Response update(ComponentRequestDto request, String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.Update_Component.toString()); ComponentEntity componentEntity = new MapComponentRequestDtoToComponentEntity().applyMapping(request, ComponentEntity.class); componentEntity.setVspId(vspId); + componentEntity.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); componentEntity.setId(componentId); CompositionEntityValidationData validationData = - vendorSoftwareProductManager.updateComponent(componentEntity, user); + componentManager.updateComponent(componentEntity, user); return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors()) ? Response.status(Response.Status.EXPECTATION_FAILED).entity( - new MapCompositionEntityValidationDataToDto() - .applyMapping(validationData, CompositionEntityValidationDataDto.class)).build() : - Response.ok().build(); + new MapCompositionEntityValidationDataToDto().applyMapping(validationData, + CompositionEntityValidationDataDto.class)).build() : Response.ok().build(); } @Override - public Response getQuestionnaire(String vspId, String componentId, String version, String user) { - QuestionnaireResponse questionnaireResponse = vendorSoftwareProductManager - .getComponentQuestionnaire(vspId, Version.valueOf(version), componentId, user); + public Response getQuestionnaire(String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Questionnaire_Component.toString()); + QuestionnaireResponse questionnaireResponse = componentManager + .getQuestionnaire(vspId, + resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), componentId, + user); QuestionnaireResponseDto result = new MapQuestionnaireResponseToQuestionnaireResponseDto() .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class); @@ -136,10 +151,11 @@ public class ComponentsImpl implements Components { } @Override - public Response updateQuestionnaire(String questionnaireData, String vspId, String componentId, + public Response updateQuestionnaire(String questionnaireData, String vspId, String versionId, String componentId, String user) { - vendorSoftwareProductManager - .updateComponentQuestionnaire(vspId, componentId, questionnaireData, user); + MdcUtil.initMdc(LoggerServiceName.Update_Questionnaire_Component.toString()); + Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.updateQuestionnaire(vspId, version, componentId, questionnaireData, user); return Response.ok().build(); } } diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/NetworksImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/NetworksImpl.java index afc25ab4b0..471138f23c 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/NetworksImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/NetworksImpl.java @@ -21,12 +21,15 @@ package org.openecomp.sdcrests.vsp.rest.services; import org.apache.commons.collections4.CollectionUtils; -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.types.LoggerServiceName; +import org.openecomp.sdc.vendorsoftwareproduct.NetworkManager; +import org.openecomp.sdc.vendorsoftwareproduct.NetworkManagerFactory; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity; import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network; -import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.types.VersionableEntityAction; import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto; import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityValidationDataDto; import org.openecomp.sdcrests.vendorsoftwareproducts.types.NetworkDto; @@ -39,26 +42,27 @@ import org.openecomp.sdcrests.vsp.rest.mapping.MapNetworkRequestDtoToNetworkEnti import org.openecomp.sdcrests.vsp.rest.mapping.MapNetworkToNetworkDto; import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper; import org.openecomp.sdcrests.wrappers.StringWrapperResponse; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; -import java.util.Collection; import javax.inject.Named; import javax.ws.rs.core.Response; - +import java.util.Collection; @Named @Service("networks") @Scope(value = "prototype") public class NetworksImpl implements Networks { - @Autowired - private VendorSoftwareProductManager vendorSoftwareProductManager; + + private NetworkManager networkManager = + NetworkManagerFactory.getInstance().createInterface(); @Override - public Response list(String vspId, String version, String user) { + public Response list(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.List_Network.toString()); Collection<NetworkEntity> networks = - vendorSoftwareProductManager.listNetworks(vspId, Version.valueOf(version), user); + networkManager.listNetworks(vspId, + resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), user); MapNetworkEntityToNetworkDto mapper = new MapNetworkEntityToNetworkDto(); GenericCollectionWrapper<NetworkDto> results = new GenericCollectionWrapper<>(); @@ -70,20 +74,25 @@ public class NetworksImpl implements Networks { } @Override - public Response create(NetworkRequestDto request, String vspId, String user) { + public Response create(NetworkRequestDto request, String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Create_Network.toString()); NetworkEntity network = new MapNetworkRequestDtoToNetworkEntity().applyMapping(request, NetworkEntity.class); network.setVspId(vspId); - NetworkEntity createdNetwork = vendorSoftwareProductManager.createNetwork(network, user); + network.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); + NetworkEntity createdNetwork = networkManager.createNetwork(network, user); return Response .ok(createdNetwork != null ? new StringWrapperResponse(createdNetwork.getId()) : null) .build(); } @Override - public Response get(String vspId, String networkId, String version, String user) { + public Response get(String vspId, String versionId, String networkId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Network.toString()); CompositionEntityResponse<Network> response = - vendorSoftwareProductManager.getNetwork(vspId, Version.valueOf(version), networkId, user); + networkManager.getNetwork(vspId, + resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), networkId, + user); CompositionEntityResponseDto<NetworkDto> responseDto = new CompositionEntityResponseDto<>(); new MapCompositionEntityResponseToDto<>(new MapNetworkToNetworkDto(), NetworkDto.class) @@ -92,24 +101,29 @@ public class NetworksImpl implements Networks { } @Override - public Response delete(String vspId, String networkId, String user) { - vendorSoftwareProductManager.deleteNetwork(vspId, networkId, user); + public Response delete(String vspId, String versionId, String networkId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_Network.toString()); + networkManager + .deleteNetwork(vspId, resolveVspVersion(vspId, null, user, VersionableEntityAction.Write), + networkId, user); return Response.ok().build(); } @Override - public Response update(NetworkRequestDto request, String vspId, String networkId, String user) { + public Response update(NetworkRequestDto request, String vspId, String versionId, String networkId, String user) { + MdcUtil.initMdc(LoggerServiceName.Update_Network.toString()); NetworkEntity networkEntity = new MapNetworkRequestDtoToNetworkEntity().applyMapping(request, NetworkEntity.class); networkEntity.setVspId(vspId); + networkEntity.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); networkEntity.setId(networkId); CompositionEntityValidationData validationData = - vendorSoftwareProductManager.updateNetwork(networkEntity, user); + networkManager.updateNetwork(networkEntity, user); return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors()) ? Response.status(Response.Status.EXPECTATION_FAILED).entity( - new MapCompositionEntityValidationDataToDto() - .applyMapping(validationData, CompositionEntityValidationDataDto.class)).build() : + new MapCompositionEntityValidationDataToDto() + .applyMapping(validationData, CompositionEntityValidationDataDto.class)).build() : Response.ok().build(); } } diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/NicsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/NicsImpl.java index ce601ec999..922700671c 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/NicsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/NicsImpl.java @@ -21,14 +21,19 @@ package org.openecomp.sdcrests.vsp.rest.services; import org.apache.commons.collections4.CollectionUtils; -import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.types.LoggerServiceName; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager; +import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.NicManager; +import org.openecomp.sdc.vendorsoftwareproduct.NicManagerFactory; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity; import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData; import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic; import org.openecomp.sdc.versioning.dao.types.Version; - +import org.openecomp.sdc.versioning.types.VersionableEntityAction; import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto; import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityValidationDataDto; import org.openecomp.sdcrests.vendorsoftwareproducts.types.NicDto; @@ -43,27 +48,27 @@ import org.openecomp.sdcrests.vsp.rest.mapping.MapNicToNicDto; import org.openecomp.sdcrests.vsp.rest.mapping.MapQuestionnaireResponseToQuestionnaireResponseDto; import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper; import org.openecomp.sdcrests.wrappers.StringWrapperResponse; - -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; -import java.util.Collection; import javax.inject.Named; import javax.ws.rs.core.Response; - +import java.util.Collection; @Named @Service("nics") @Scope(value = "prototype") public class NicsImpl implements Nics { - @Autowired - private VendorSoftwareProductManager vendorSoftwareProductManager; + private NicManager nicManager = NicManagerFactory.getInstance().createInterface(); + private ComponentManager componentManager = + ComponentManagerFactory.getInstance().createInterface(); @Override - public Response list(String vspId, String componentId, String version, String user) { - Collection<NicEntity> nics = - vendorSoftwareProductManager.listNics(vspId, Version.valueOf(version), componentId, user); + public Response list(String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.List_nics.toString()); + Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read); + componentManager.validateComponentExistence(vspId, vspVersion, componentId, user); + Collection<NicEntity> nics = nicManager.listNics(vspId, vspVersion, componentId, user); MapNicEntityToNicDto mapper = new MapNicEntityToNicDto(); GenericCollectionWrapper<NicDto> results = new GenericCollectionWrapper<>(); @@ -75,20 +80,26 @@ public class NicsImpl implements Nics { } @Override - public Response create(NicRequestDto request, String vspId, String componentId, String user) { + public Response create(NicRequestDto request, String vspId, String versionId, String componentId, String user) { + MdcUtil.initMdc(LoggerServiceName.Create_nic.toString()); NicEntity nic = new MapNicRequestDtoToNicEntity().applyMapping(request, NicEntity.class); nic.setVspId(vspId); + nic.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); nic.setComponentId(componentId); + componentManager.validateComponentExistence(vspId, nic.getVersion(), componentId, user); - NicEntity createdNic = vendorSoftwareProductManager.createNic(nic, user); + NicEntity createdNic = nicManager.createNic(nic, user); return Response.ok(createdNic != null ? new StringWrapperResponse(createdNic.getId()) : null) .build(); } @Override - public Response get(String vspId, String componentId, String nicId, String version, String user) { - CompositionEntityResponse<Nic> response = vendorSoftwareProductManager - .getNic(vspId, Version.valueOf(version), componentId, nicId, user); + public Response get(String vspId, String versionId, String componentId, String nicId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_nic.toString()); + Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read); + componentManager.validateComponentExistence(vspId, vspVersion, componentId, user); + CompositionEntityResponse<Nic> response = + nicManager.getNic(vspId, vspVersion, componentId, nicId, user); CompositionEntityResponseDto<NicDto> responseDto = new CompositionEntityResponseDto<>(); new MapCompositionEntityResponseToDto<>(new MapNicToNicDto(), NicDto.class) @@ -97,33 +108,42 @@ public class NicsImpl implements Nics { } @Override - public Response delete(String vspId, String componentId, String nicId, String user) { - vendorSoftwareProductManager.deleteNic(vspId, componentId, nicId, user); + public Response delete(String vspId, String versionId, String componentId, String nicId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_nic.toString()); + Version vspVersion = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.validateComponentExistence(vspId, vspVersion, componentId, user); + nicManager.deleteNic(vspId, vspVersion, componentId, nicId, user); return Response.ok().build(); } @Override - public Response update(NicRequestDto request, String vspId, String componentId, String nicId, + public Response update(NicRequestDto request, String vspId, String versionId, String componentId, String nicId, String user) { + MdcUtil.initMdc(LoggerServiceName.Update_nic.toString()); NicEntity nicEntity = new MapNicRequestDtoToNicEntity().applyMapping(request, NicEntity.class); nicEntity.setVspId(vspId); + nicEntity.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); nicEntity.setComponentId(componentId); nicEntity.setId(nicId); + componentManager.validateComponentExistence(vspId, nicEntity.getVersion(), componentId, user); CompositionEntityValidationData validationData = - vendorSoftwareProductManager.updateNic(nicEntity, user); + nicManager.updateNic(nicEntity, user); return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors()) ? Response.status(Response.Status.EXPECTATION_FAILED).entity( - new MapCompositionEntityValidationDataToDto() - .applyMapping(validationData, CompositionEntityValidationDataDto.class)).build() : + new MapCompositionEntityValidationDataToDto() + .applyMapping(validationData, CompositionEntityValidationDataDto.class)).build() : Response.ok().build(); } @Override - public Response getQuestionnaire(String vspId, String componentId, String nicId, String version, + public Response getQuestionnaire(String vspId, String versionId, String componentId, String nicId, String user) { - QuestionnaireResponse questionnaireResponse = vendorSoftwareProductManager - .getNicQuestionnaire(vspId, Version.valueOf(version), componentId, nicId, user); + MdcUtil.initMdc(LoggerServiceName.Get_Questionnaire_nic.toString()); + Version vspVersion = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read); + componentManager.validateComponentExistence(vspId, vspVersion, componentId, user); + QuestionnaireResponse questionnaireResponse = + nicManager.getNicQuestionnaire(vspId, vspVersion, componentId, nicId, user); QuestionnaireResponseDto result = new MapQuestionnaireResponseToQuestionnaireResponseDto() .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class); @@ -131,10 +151,13 @@ public class NicsImpl implements Nics { } @Override - public Response updateQuestionnaire(String questionnaireData, String vspId, String componentId, + public Response updateQuestionnaire(String questionnaireData, String vspId, String versionId, String componentId, String nicId, String user) { - vendorSoftwareProductManager - .updateNicQuestionnaire(vspId, componentId, nicId, questionnaireData, user); + MdcUtil.initMdc(LoggerServiceName.Update_Questionnaire_nic.toString()); + Version vspVersion = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write); + componentManager.validateComponentExistence(vspId, vspVersion, componentId, user); + nicManager + .updateNicQuestionnaire(vspId, vspVersion, componentId, nicId, questionnaireData, user); return Response.ok().build(); } } diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java new file mode 100644 index 0000000000..d5eb961285 --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java @@ -0,0 +1,134 @@ +package org.openecomp.sdcrests.vsp.rest.services; + +import org.apache.commons.beanutils.BeanUtils; +import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder; +import org.openecomp.sdc.common.errors.Messages; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.messages.AuditMessages; +import org.openecomp.sdc.logging.types.LoggerServiceName; +import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManager; +import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.types.FileDataStructureDto; +import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStructure; +import org.openecomp.sdc.versioning.types.VersionableEntityAction; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.OrchestrationTemplateActionResponseDto; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.UploadFileResponseDto; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.ValidationResponseDto; +import org.openecomp.sdcrests.vsp.rest.OrchestrationTemplateCandidate; +import org.openecomp.sdcrests.vsp.rest.mapping.MapUploadFileResponseToUploadFileResponseDto; +import org.openecomp.sdcrests.vsp.rest.mapping.MapValidationResponseToDto; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +import javax.inject.Named; +import javax.ws.rs.core.Response; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.util.Optional; + +@Named +@Service("orchestrationTemplateCandidate") +@Scope(value = "prototype") +public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplateCandidate { + + private OrchestrationTemplateCandidateManager candidateManager = + OrchestrationTemplateCandidateManagerFactory.getInstance().createInterface(); + private static final Logger logger = + LoggerFactory.getLogger(OrchestrationTemplateCandidateImpl.class); + + @Override + public Response upload(String vspId, String versionId, InputStream heatFileToUpload, + String user) { + MdcUtil.initMdc(LoggerServiceName.Upload_File.toString()); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_HEAT + vspId); + + UploadFileResponse uploadFileResponse = candidateManager + .upload(vspId, resolveVspVersion(vspId, null, user, VersionableEntityAction + .Write), heatFileToUpload, user); + UploadFileResponseDto uploadFileResponseDto = new MapUploadFileResponseToUploadFileResponseDto() + .applyMapping(uploadFileResponse, UploadFileResponseDto.class); + + return Response.ok(uploadFileResponseDto).build(); + } + + @Override + public Response get(String vspId, String versionId, String user) throws IOException { + Optional<byte[]> zipFile = + candidateManager + .get(vspId, resolveVspVersion(vspId, null, user, VersionableEntityAction.Read), user); + + if (!zipFile.isPresent()) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + Response.ResponseBuilder response = Response.ok(zipFile.get()); + response.header("Content-Disposition", "attachment; filename=HeatCandidate.zip"); + return response.build(); + } + + @Override + public Response process(String vspId, String versionId, String user) + throws InvocationTargetException, IllegalAccessException { + + OrchestrationTemplateActionResponse response = + candidateManager + .process(vspId, resolveVspVersion(vspId, null, user, VersionableEntityAction.Write), + user); + OrchestrationTemplateActionResponseDto responseDto = + new OrchestrationTemplateActionResponseDto(); + BeanUtils.copyProperties(responseDto, response); + return Response.ok(responseDto).build(); + } + + @Override + public Response updateFilesDataStructure( + String vspId, String versionId, FileDataStructureDto fileDataStructureDto, String user) + throws Exception { + + FilesDataStructure fileDataStructure = new FilesDataStructure(); + try { + BeanUtils.copyProperties(fileDataStructure, fileDataStructureDto); + } catch (IllegalAccessException | InvocationTargetException exception) { + String errorWithParameters = ErrorMessagesFormatBuilder + .getErrorWithParameters(Messages.MAPPING_OBJECTS_FAILURE.getErrorMessage(), + fileDataStructureDto.toString(), fileDataStructure.toString()); + throw new Exception(errorWithParameters, exception); + } + ValidationResponse response = candidateManager + .updateFilesDataStructure(vspId, + resolveVspVersion(vspId, null, user, VersionableEntityAction + .Write), user, fileDataStructure); + + if (!response.isValid()) { + return Response.status(Response.Status.EXPECTATION_FAILED).entity( + new MapValidationResponseToDto() + .applyMapping(response, ValidationResponseDto.class)).build(); + } + return Response.ok(fileDataStructureDto).build(); + } + + @Override + public Response getFilesDataStructure(String vspId, String versionId, String user) + throws Exception { + Optional<FilesDataStructure> filesDataStructure = candidateManager + .getFilesDataStructure(vspId, resolveVspVersion(vspId, null, user, VersionableEntityAction + .Read), user); + FileDataStructureDto fileDataStructureDto = new FileDataStructureDto(); + if (filesDataStructure.isPresent()) { + try { + BeanUtils.copyProperties(fileDataStructureDto, filesDataStructure.get()); + } catch (IllegalAccessException | InvocationTargetException exception) { + String errorWithParameters = ErrorMessagesFormatBuilder + .getErrorWithParameters(Messages.MAPPING_OBJECTS_FAILURE.getErrorMessage(), + filesDataStructure.toString(), fileDataStructureDto.toString()); + throw new Exception(errorWithParameters, exception); + } + } + return Response.ok(fileDataStructureDto).build(); + } +} diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ProcessesImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ProcessesImpl.java index 004d84591a..a175908cd1 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ProcessesImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/ProcessesImpl.java @@ -20,9 +20,12 @@ package org.openecomp.sdcrests.vsp.rest.services; -import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID; - import org.apache.cxf.jaxrs.ext.multipart.Attachment; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.messages.AuditMessages; +import org.openecomp.sdc.logging.types.LoggerServiceName; import org.openecomp.sdcrests.vendorsoftwareproducts.types.ProcessRequestDto; import org.openecomp.sdcrests.vsp.rest.ComponentProcesses; import org.openecomp.sdcrests.vsp.rest.Processes; @@ -33,6 +36,8 @@ import org.springframework.stereotype.Service; import javax.inject.Named; import javax.ws.rs.core.Response; +import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID; + @Named @Service("processes") @Scope(value = "prototype") @@ -40,50 +45,65 @@ public class ProcessesImpl implements Processes { @Autowired private ComponentProcesses componentProcesses; + private static final Logger logger = + LoggerFactory.getLogger(ProcessesImpl.class); @Override - public Response list(String vspId, String version, String user) { - return componentProcesses.list(vspId, GENERAL_COMPONENT_ID, version, user); + public Response list(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.List_Processes.toString()); + return componentProcesses.list(vspId, versionId, GENERAL_COMPONENT_ID, user); } @Override - public Response deleteList(String vspId, String user) { - return componentProcesses.deleteList(vspId, GENERAL_COMPONENT_ID, user); + public Response deleteList(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_List_Processes.toString()); + return componentProcesses.deleteList(vspId,versionId, GENERAL_COMPONENT_ID, user); } @Override - public Response create(ProcessRequestDto request, String vspId, String user) { - return componentProcesses.create(request, vspId, GENERAL_COMPONENT_ID, user); + public Response create(ProcessRequestDto request, String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Create_Process.toString()); + return componentProcesses.create(request, vspId, versionId, GENERAL_COMPONENT_ID, user); } @Override - public Response get(String vspId, String processId, String version, String user) { - return componentProcesses.get(vspId, GENERAL_COMPONENT_ID, processId, version, user); + public Response get(String vspId, String versionId, String processId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Processes.toString()); + return componentProcesses.get(vspId, versionId, GENERAL_COMPONENT_ID, processId, user); } @Override - public Response delete(String vspId, String processId, String user) { - return componentProcesses.delete(vspId, GENERAL_COMPONENT_ID, processId, user); + public Response delete(String vspId, String versionId, String processId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_Processes.toString()); + return componentProcesses.delete(vspId, versionId, GENERAL_COMPONENT_ID, processId, user); } @Override - public Response update(ProcessRequestDto request, String vspId, String processId, String user) { - return componentProcesses.update(request, vspId, GENERAL_COMPONENT_ID, processId, user); + public Response update(ProcessRequestDto request, String vspId, String versionId, String processId, String user) { + MdcUtil.initMdc(LoggerServiceName.Update_Process.toString()); + return componentProcesses.update(request, vspId, versionId, GENERAL_COMPONENT_ID, processId, user); } @Override - public Response getUploadedFile(String vspId, String processId, String version, String user) { + public Response getUploadedFile(String vspId, String versionId, String processId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Uploaded_File_Processes.toString()); return componentProcesses - .getUploadedFile(vspId, GENERAL_COMPONENT_ID, processId, version, user); + .getUploadedFile(vspId, versionId, GENERAL_COMPONENT_ID, processId, user); } @Override - public Response deleteUploadedFile(String vspId, String processId, String user) { - return componentProcesses.deleteUploadedFile(vspId, GENERAL_COMPONENT_ID, processId, user); + public Response deleteUploadedFile(String vspId, String versionId, String processId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_Uploaded_File_Processes.toString()); + return componentProcesses.deleteUploadedFile(vspId, versionId, GENERAL_COMPONENT_ID, + processId, user); } @Override - public Response uploadFile(Attachment attachment, String vspId, String processId, String user) { - return componentProcesses.uploadFile(attachment, vspId, GENERAL_COMPONENT_ID, processId, user); + public Response uploadFile(Attachment attachment, String vspId, String versionId, String processId, String user) { + MdcUtil.initMdc(LoggerServiceName.Upload_File_Processes.toString()); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_PROCESS_ARTIFACT + vspId); + return componentProcesses.uploadFile(attachment, vspId, versionId, GENERAL_COMPONENT_ID, + processId, + user); } } diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java index 1c13f172f1..9f8f3d366f 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java @@ -20,126 +20,171 @@ package org.openecomp.sdcrests.vsp.rest.services; +import org.openecomp.sdc.activityLog.ActivityLogManager; +import org.openecomp.sdc.activityLog.ActivityLogManagerFactory; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.logging.context.MdcUtil; +import org.openecomp.sdc.logging.messages.AuditMessages; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerServiceName; import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; +import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.PackageInfo; import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails; import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse; -import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse; import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo; import org.openecomp.sdc.versioning.dao.types.Version; -import org.openecomp.sdcrests.vendorsoftwareproducts.types.PackageInfoDto; -import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto; -import org.openecomp.sdcrests.vendorsoftwareproducts.types.UploadFileResponseDto; -import org.openecomp.sdcrests.vendorsoftwareproducts.types.ValidationResponseDto; -import org.openecomp.sdcrests.vendorsoftwareproducts.types.VersionSoftwareProductActionRequestDto; -import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspCreationDto; -import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspDescriptionDto; -import org.openecomp.sdcrests.vendorsoftwareproducts.types.VspDetailsDto; +import org.openecomp.sdc.versioning.types.VersionInfo; +import org.openecomp.sdc.versioning.types.VersionableEntityAction; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.*; import org.openecomp.sdcrests.vsp.rest.VendorSoftwareProducts; -import org.openecomp.sdcrests.vsp.rest.mapping.MapPackageInfoToPackageInfoDto; -import org.openecomp.sdcrests.vsp.rest.mapping.MapQuestionnaireResponseToQuestionnaireResponseDto; -import org.openecomp.sdcrests.vsp.rest.mapping.MapUploadFileResponseToUploadFileResponseDto; -import org.openecomp.sdcrests.vsp.rest.mapping.MapValidationResponseToDto; -import org.openecomp.sdcrests.vsp.rest.mapping.MapVersionedVendorSoftwareProductInfoToVspDetailsDto; -import org.openecomp.sdcrests.vsp.rest.mapping.MapVspDescriptionDtoToVspDetails; -import org.openecomp.sdcrests.vsp.rest.mapping.MspVspDetailsToVspCreationDto; +import org.openecomp.sdcrests.vsp.rest.mapping.*; import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper; - -import org.springframework.beans.factory.annotation.Autowired; +import org.openecomp.sdcrests.wrappers.StringWrapperResponse; +import org.slf4j.MDC; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; +import javax.inject.Named; +import javax.ws.rs.core.Response; import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.util.List; -import javax.inject.Named; -import javax.ws.rs.core.Response; + @Named @Service("vendorSoftwareProducts") @Scope(value = "prototype") public class VendorSoftwareProductsImpl implements VendorSoftwareProducts { - @Autowired - private VendorSoftwareProductManager vendorSoftwareProductManager; + private VendorSoftwareProductManager vendorSoftwareProductManager = + VspManagerFactory.getInstance().createInterface(); - @Override - public Response createNewVsp(VspDescriptionDto vspDescriptionDto, String user) { - VspDetails vspDetails = - new MapVspDescriptionDtoToVspDetails().applyMapping(vspDescriptionDto, VspDetails.class); + private static final Logger logger = + LoggerFactory.getLogger(VendorSoftwareProductsImpl.class); - vspDetails = vendorSoftwareProductManager.createNewVsp(vspDetails, user); + private ActivityLogManager activityLogManager = + ActivityLogManagerFactory.getInstance().createInterface(); - MspVspDetailsToVspCreationDto mapping = new MspVspDetailsToVspCreationDto(); - VspCreationDto vspCreationDto = mapping.applyMapping(vspDetails, VspCreationDto.class); + @Override + public Response createVsp(VspDescriptionDto vspDescriptionDto, String user) { + MdcUtil.initMdc(LoggerServiceName.Create_VSP.toString()); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CREATE_VSP + vspDescriptionDto.getName()); - return Response.ok(vspCreationDto).build(); - } + VspDetails vspDetails = + new MapVspDescriptionDtoToVspDetails().applyMapping(vspDescriptionDto, VspDetails.class); - @Override - public Response getVspList(String versionFilter, String user) { - List<VersionedVendorSoftwareProductInfo> vspList = - vendorSoftwareProductManager.getVspList(versionFilter, user); - - GenericCollectionWrapper<VspDetailsDto> results = new GenericCollectionWrapper<>(); - if (!vspList.isEmpty()) { - MapVersionedVendorSoftwareProductInfoToVspDetailsDto mapper = - new MapVersionedVendorSoftwareProductInfoToVspDetailsDto(); - for (VersionedVendorSoftwareProductInfo versionedVsp : vspList) { - results.add(mapper.applyMapping(versionedVsp, VspDetailsDto.class)); - } + vspDetails = vendorSoftwareProductManager.createVsp(vspDetails, user); + + MspVspDetailsToVspCreationDto mapping = new MspVspDetailsToVspCreationDto(); + VspCreationDto vspCreationDto = mapping.applyMapping(vspDetails, VspCreationDto.class); + + return Response.ok(vspCreationDto).build(); } - return Response.ok(results).build(); - } + @Override + public Response listVsps(String versionFilter, String user) { + MdcUtil.initMdc(LoggerServiceName.List_VSP.toString()); + List<VersionedVendorSoftwareProductInfo> vspList = + vendorSoftwareProductManager.listVsps(versionFilter, user); + + GenericCollectionWrapper<VspDetailsDto> results = new GenericCollectionWrapper<>(); + if (!vspList.isEmpty()) { + MapVersionedVendorSoftwareProductInfoToVspDetailsDto mapper = + new MapVersionedVendorSoftwareProductInfoToVspDetailsDto(); + for (VersionedVendorSoftwareProductInfo versionedVsp : vspList) { + results.add(mapper.applyMapping(versionedVsp, VspDetailsDto.class)); + } + } + + return Response.ok(results).build(); + } @Override - public Response getVspDetails(String vspId, String version, String user) { - VersionedVendorSoftwareProductInfo vspDetails = - vendorSoftwareProductManager.getVspDetails(vspId, Version.valueOf(version), user); + public Response getVsp(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_VSP.toString()); + + + VspDetails vspDetails = + vendorSoftwareProductManager + .getVsp(vspId, resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), + user); + + VersionInfo versionInfo = getVersionInfo(vspId, VersionableEntityAction.Read, user); + + // + if(vspDetails.getOldVersion()!=null && !"".equals(vspDetails.getOldVersion())) { + if (Version.valueOf(versionId).equals(versionInfo.getActiveVersion())) { + try { + Version healedVersion = vendorSoftwareProductManager.callAutoHeal(vspId, versionInfo, + vspDetails , user); + vspDetails = + vendorSoftwareProductManager + .getVsp(vspId, resolveVspVersion(vspId, healedVersion.toString(), user, + VersionableEntityAction.Read),user); + versionInfo = getVersionInfo(vspId, VersionableEntityAction.Read, user); + } catch (Exception e) { + //to do + } + } + } - VspDetailsDto vspDetailsDto = vspDetails == null ? null + VspDetailsDto vspDetailsDto = vspDetails == null + ? null : new MapVersionedVendorSoftwareProductInfoToVspDetailsDto() - .applyMapping(vspDetails, VspDetailsDto.class); + .applyMapping(new VersionedVendorSoftwareProductInfo(vspDetails, versionInfo), + VspDetailsDto.class); - return Response.ok(vspDetailsDto).build(); - } + return Response.ok(vspDetailsDto).build(); + } @Override - public Response updateVsp(String vspId, VspDescriptionDto vspDescriptionDto, String user) { + public Response updateVsp(String vspId, String versionId, VspDescriptionDto vspDescriptionDto, + String user) { + MdcUtil.initMdc(LoggerServiceName.Update_VSP.toString()); VspDetails vspDetails = new MapVspDescriptionDtoToVspDetails().applyMapping(vspDescriptionDto, VspDetails.class); vspDetails.setId(vspId); + vspDetails.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write)); - vendorSoftwareProductManager.updateVsp(vspDetails, user); + vendorSoftwareProductManager.updateVsp(vspDetails, user); - return Response.ok().build(); - } + return Response.ok().build(); + } - @Override - public Response deleteVsp(String vspId, String user) { - vendorSoftwareProductManager.deleteVsp(vspId, user); + @Override + public Response deleteVsp(String vspId, String user) { + MdcUtil.initMdc(LoggerServiceName.Delete_VSP.toString()); + vendorSoftwareProductManager.deleteVsp(vspId, user); - return Response.ok().build(); - } + return Response.ok().build(); + } + + @Override + public Response actOnVendorSoftwareProduct(String vspId, String versionId, + VersionSoftwareProductActionRequestDto request, + String user) throws IOException { - @Override - public Response actOnVendorSoftwareProduct(String vspId, - VersionSoftwareProductActionRequestDto request, - String user) throws IOException { switch (request.getAction()) { case Checkout: + MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Checkout_VSP.toString()); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CHECK_OUT_VSP + vspId); vendorSoftwareProductManager.checkout(vspId, user); break; case Undo_Checkout: + MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Undo_Checkout_VSP.toString()); vendorSoftwareProductManager.undoCheckout(vspId, user); break; case Checkin: + MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Checkin_VSP.toString()); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CHECK_IN_VSP + vspId); vendorSoftwareProductManager.checkin(vspId, user); break; case Submit: + MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Submit_VSP.toString()); + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.SUBMIT_VSP + vspId); ValidationResponse validationResponse = vendorSoftwareProductManager.submit(vspId, user); if (!validationResponse.isValid()) { return Response.status(Response.Status.EXPECTATION_FAILED).entity( @@ -148,8 +193,12 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts { } break; case Create_Package: - PackageInfo packageInfo = vendorSoftwareProductManager.createPackage(vspId, user); - return Response.ok(packageInfo == null ? null + MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Create_Package.toString()); + + PackageInfo packageInfo = vendorSoftwareProductManager.createPackage(vspId, + resolveVspVersion(vspId, null, user, VersionableEntityAction.Read), user); + return Response.ok(packageInfo == null + ? null : new MapPackageInfoToPackageInfoDto().applyMapping(packageInfo, PackageInfoDto.class)) .build(); default: @@ -158,71 +207,119 @@ public class VendorSoftwareProductsImpl implements VendorSoftwareProducts { return Response.ok().build(); } - @Override - public Response uploadFile(String uploadVspId, InputStream heatFileToUpload, String user) { - UploadFileResponse uploadFileResponse = - vendorSoftwareProductManager.uploadFile(uploadVspId, heatFileToUpload, user); - - UploadFileResponseDto uploadFileResponseDto = new MapUploadFileResponseToUploadFileResponseDto() - .applyMapping(uploadFileResponse, UploadFileResponseDto.class); + @Override + public Response getValidationVsp(String user) + throws Exception { + String validationVspId = vendorSoftwareProductManager.fetchValidationVsp(user); + StringWrapperResponse response = new StringWrapperResponse(validationVspId); + return Response.ok(response).build(); + } - return Response.ok(uploadFileResponseDto).build(); - } - @Override - public Response getLatestHeatPackage(String vspId, String user) { - File zipFile = vendorSoftwareProductManager.getLatestHeatPackage(vspId, user); + @Override + public Response getOrchestrationTemplate(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Uploaded_File.toString()); + byte[] orchestrationTemplateFile = + vendorSoftwareProductManager + .getOrchestrationTemplateFile(vspId, + resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), user); - if (zipFile == null) { - return Response.status(Response.Status.NOT_FOUND).build(); + if (orchestrationTemplateFile == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + Response.ResponseBuilder response = Response.ok(orchestrationTemplateFile); + response.header("Content-Disposition", "attachment; filename=LatestHeatPackage.zip"); + return response.build(); } - Response.ResponseBuilder response = Response.ok(zipFile); - response.header("Content-Disposition", "attachment; filename=" + zipFile.getName()); - return response.build(); - } - @Override - public Response listPackages(String category, String subCategory, String user) { - List<PackageInfo> packageInfoList = - vendorSoftwareProductManager.listPackages(category, subCategory); + @Override + public Response listPackages(String category, String subCategory, String user) { + MdcUtil.initMdc(LoggerServiceName.List_Packages.toString()); + List<PackageInfo> packageInfoList = + vendorSoftwareProductManager.listPackages(category, subCategory); - GenericCollectionWrapper<PackageInfoDto> results = new GenericCollectionWrapper<>(); - MapPackageInfoToPackageInfoDto mapper = new MapPackageInfoToPackageInfoDto(); + GenericCollectionWrapper<PackageInfoDto> results = new GenericCollectionWrapper<>(); + MapPackageInfoToPackageInfoDto mapper = new MapPackageInfoToPackageInfoDto(); - if (packageInfoList != null) { - for (PackageInfo packageInfo : packageInfoList) { - results.add(mapper.applyMapping(packageInfo, PackageInfoDto.class)); - } + if (packageInfoList != null) { + for (PackageInfo packageInfo : packageInfoList) { + results.add(mapper.applyMapping(packageInfo, PackageInfoDto.class)); + } + } + return Response.ok(results).build(); } - return Response.ok(results).build(); - } @Override public Response getTranslatedFile(String vspId, String version, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Translated_File.toString()); File zipFile = - vendorSoftwareProductManager.getTranslatedFile(vspId, Version.valueOf(version), user); + vendorSoftwareProductManager.getTranslatedFile(vspId,Version.valueOf(version), user); + + Version versionObj = Version.valueOf(version); + Version resolvedVersion = versionObj == null + ? getVersionInfo(vspId, VersionableEntityAction.Read, user).getLatestFinalVersion() + : versionObj; - Response.ResponseBuilder response = Response.ok(zipFile); - if (zipFile == null) { - return Response.status(Response.Status.NOT_FOUND).build(); + + Response.ResponseBuilder response = Response.ok(zipFile); + if (zipFile == null) { + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.IMPORT_FAIL + vspId); + return Response.status(Response.Status.NOT_FOUND).build(); + } + response.header("Content-Disposition", "attachment; filename=" + zipFile.getName()); + + logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.IMPORT_SUCCESS + vspId); + return response.build(); } - response.header("Content-Disposition", "attachment; filename=" + zipFile.getName()); - return response.build(); - } - @Override - public Response getQuestionnaire(String vspId, String version, String user) { - QuestionnaireResponse questionnaireResponse = - vendorSoftwareProductManager.getVspQuestionnaire(vspId, Version.valueOf(version), user); + @Override + public Response getQuestionnaire(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Questionnaire_VSP.toString()); + QuestionnaireResponse questionnaireResponse = + vendorSoftwareProductManager.getVspQuestionnaire(vspId, + resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), user); + + if (questionnaireResponse.getErrorMessage() != null) { + return Response.status(Response.Status.EXPECTATION_FAILED).entity( + new MapQuestionnaireResponseToQuestionnaireResponseDto() + .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class)).build(); + } - QuestionnaireResponseDto result = new MapQuestionnaireResponseToQuestionnaireResponseDto() - .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class); - return Response.ok(result).build(); - } + QuestionnaireResponseDto result = new MapQuestionnaireResponseToQuestionnaireResponseDto() + .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class); + return Response.ok(result).build(); + } @Override - public Response updateQuestionnaire(String questionnaireData, String vspId, String user) { - vendorSoftwareProductManager.updateVspQuestionnaire(vspId, questionnaireData, user); + public Response updateQuestionnaire(String questionnaireData, String vspId, String + versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Update_Questionnaire_VSP.toString()); + vendorSoftwareProductManager.updateVspQuestionnaire(vspId, + resolveVspVersion(vspId, null, user, VersionableEntityAction.Write), + questionnaireData, user); return Response.ok().build(); } + + @Override + public Response heal(String vspId, String versionId, String user) { + vendorSoftwareProductManager.heal(vspId, Version.valueOf(versionId), user); + + return Response.ok().build(); + } + + @Override + public Response getVspInformationArtifact(String vspId, String versionId, String user) { + MdcUtil.initMdc(LoggerServiceName.Get_Information_Artifact.toString()); + File textInformationArtifact = + vendorSoftwareProductManager.getInformationArtifact(vspId, + resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read), user); + + Response.ResponseBuilder response = Response.ok(textInformationArtifact); + if (textInformationArtifact == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + response + .header("Content-Disposition", "attachment; filename=" + textInformationArtifact.getName()); + return response.build(); + } } |