[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / 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 3cd384d..7a2a157 100644 (file)
 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);