2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 
   6  * ================================================================================
 
   7  * Licensed under the Apache License, Version 2.0 (the "License");
 
   8  * you may not use this file except in compliance with the License.
 
   9  * You may obtain a copy of the License at
 
  11  *      http://www.apache.org/licenses/LICENSE-2.0
 
  13  * Unless required by applicable law or agreed to in writing, software
 
  14  * distributed under the License is distributed on an "AS IS" BASIS,
 
  15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  16  * See the License for the specific language governing permissions and
 
  17  * limitations under the License.
 
  18  * ============LICENSE_END=========================================================
 
  21 package org.openecomp.sdcrests.vsp.rest.services;
 
  23 import org.apache.cxf.jaxrs.ext.multipart.Attachment;
 
  24 import org.openecomp.core.enrichment.types.ArtifactType;
 
  25 import org.openecomp.sdc.logging.api.Logger;
 
  26 import org.openecomp.sdc.logging.api.LoggerFactory;
 
  27 import org.openecomp.sdc.logging.context.MdcUtil;
 
  28 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
 
  29 import org.openecomp.sdc.logging.messages.AuditMessages;
 
  30 import org.openecomp.sdc.logging.types.LoggerServiceName;
 
  31 import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
 
  32 import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
 
  33 import org.openecomp.sdc.vendorsoftwareproduct.MibManager;
 
  34 import org.openecomp.sdc.vendorsoftwareproduct.MibManagerFactory;
 
  35 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.MibUploadStatus;
 
  36 import org.openecomp.sdc.versioning.dao.types.Version;
 
  37 import org.openecomp.sdc.versioning.types.VersionableEntityAction;
 
  38 import org.openecomp.sdcrests.vendorsoftwareproducts.types.MibUploadStatusDto;
 
  39 import org.openecomp.sdcrests.vsp.rest.ComponentUploads;
 
  40 import org.openecomp.sdcrests.vsp.rest.mapping.MapMibUploadStatusToDto;
 
  41 import org.springframework.context.annotation.Scope;
 
  42 import org.springframework.stereotype.Service;
 
  43 import org.springframework.validation.annotation.Validated;
 
  45 import javax.inject.Named;
 
  46 import javax.ws.rs.core.Response;
 
  47 import java.io.InputStream;
 
  50 @Service("componentUploads")
 
  51 @Scope(value = "prototype")
 
  53 public class ComponentUploadsImpl implements ComponentUploads {
 
  54   private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
 
  55   private MibManager mibManager = MibManagerFactory.getInstance().createInterface();
 
  56   private ComponentManager componentManager =
 
  57       ComponentManagerFactory.getInstance().createInterface();
 
  58   private static final Logger logger =
 
  59           LoggerFactory.getLogger(ComponentUploadsImpl.class);
 
  62   public Response uploadTrapMibFile(Attachment attachment, String vspId, String versionId, String componentId,
 
  64     mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
 
  65     MdcUtil.initMdc(LoggerServiceName.Upload_MIB_File.toString());
 
  66     logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_ARTIFACT_MIB_TRAP + vspId);
 
  68     Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
 
  69     componentManager.validateComponentExistence(vspId, version, componentId, user);
 
  70     mibManager.upload(attachment.getObject(InputStream.class),
 
  71         attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId,
 
  72         ArtifactType.SNMP_TRAP, user);
 
  74     mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
 
  75     return Response.ok().build();
 
  79   public Response deleteTrapMibFile(String vspId, String versionId, String componentId, String user) {
 
  80     mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
 
  81     MdcUtil.initMdc(LoggerServiceName.Delete_MIB_File.toString());
 
  83     Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
 
  84     componentManager.validateComponentExistence(vspId, version, componentId, user);
 
  85     mibManager.delete(vspId, version, componentId, ArtifactType.SNMP_TRAP, user);
 
  87     mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
 
  88     return Response.ok().build();
 
  92   public Response uploadPollMibFile(Attachment attachment, String vspId, String versionId, String componentId,
 
  95     mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
 
  96     logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.UPLOAD_ARTIFACT_MIB_POLL + vspId);
 
  97     MdcUtil.initMdc(LoggerServiceName.Upload_MIB_File.toString());
 
  99     Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
 
 100     componentManager.validateComponentExistence(vspId, version, componentId, user);
 
 101     mibManager.upload(attachment.getObject(InputStream.class),
 
 102         attachment.getContentDisposition().getParameter("filename"), vspId, version, componentId,
 
 103         ArtifactType.SNMP_POLL, user);
 
 105     mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
 
 106     return Response.ok().build();
 
 110   public Response deletePollMibFile(String vspId, String versionId, String componentId, String
 
 112     mdcDataDebugMessage.debugEntryMessage("VSP id, component id", vspId + "," + componentId);
 
 113     MdcUtil.initMdc(LoggerServiceName.Delete_MIB_File.toString());
 
 115     Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
 
 116     componentManager.validateComponentExistence(vspId, version, componentId, user);
 
 117     mibManager.delete(vspId, version, componentId, ArtifactType.SNMP_POLL, user);
 
 119     mdcDataDebugMessage.debugExitMessage("VSP id, component id", vspId + "," + componentId);
 
 120     return Response.ok().build();
 
 124   public Response list(String vspId, String versionId, String componentId, String user) {
 
 125     MdcUtil.initMdc(LoggerServiceName.List_MIB_Files.toString());
 
 127     Version version = resolveVspVersion(vspId, versionId, user, VersionableEntityAction.Read);
 
 128     componentManager.validateComponentExistence(vspId, version, componentId, user);
 
 130     MibUploadStatus response = mibManager.listFilenames(vspId, version, componentId, user);
 
 132     MibUploadStatusDto returnEntity =
 
 133         new MapMibUploadStatusToDto().applyMapping(response, MibUploadStatusDto.class);
 
 134     return Response.status(Response.Status.OK).entity(returnEntity).build();