[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-be / lib / openecomp-sdc-vendor-software-product-lib / openecomp-sdc-vendor-software-product-core / src / main / java / org / openecomp / sdc / vendorsoftwareproduct / dao / impl / zusammen / ComponentArtifactDaoZusammenImpl.java
@@ -7,12 +7,12 @@ import com.amdocs.zusammen.datatypes.Id;
 import com.amdocs.zusammen.datatypes.SessionContext;
 import com.amdocs.zusammen.datatypes.item.Action;
 import com.amdocs.zusammen.datatypes.item.ElementContext;
-import org.openecomp.core.enrichment.types.ArtifactType;
+import org.openecomp.core.enrichment.types.MonitoringUploadType;
 import org.openecomp.core.utilities.file.FileUtils;
 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
 import org.openecomp.core.zusammen.api.ZusammenUtil;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.MibDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.MibEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentArtifactDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentMonitoringUploadEntity;
 import org.openecomp.sdc.versioning.dao.types.Version;
 
 import java.io.ByteArrayInputStream;
@@ -25,13 +25,13 @@ import java.util.stream.Collectors;
  * @author Avrahamg.
  * @since March 21, 2017
  */
-public class MibDaoZusammenImpl implements MibDao {
+public class ComponentArtifactDaoZusammenImpl implements ComponentArtifactDao {
 
   private static final String ARTIFACT_NAME = "name";
 
   private ZusammenAdaptor zusammenAdaptor;
 
-  public MibDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
+  public ComponentArtifactDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
     this.zusammenAdaptor = zusammenAdaptor;
   }
 
@@ -41,25 +41,30 @@ public class MibDaoZusammenImpl implements MibDao {
   }
 
   @Override
-  public Optional<MibEntity> getByType(MibEntity mibEntity) {
+  public Optional<ComponentMonitoringUploadEntity> getByType(
+      ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
     SessionContext context = ZusammenUtil.createSessionContext();
-    Id itemId = new Id(mibEntity.getVspId());
+    Id itemId = new Id(componentMonitoringUploadEntity.getVspId());
     ElementContext elementContext = new ElementContext(itemId,
         VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
-        VspZusammenUtil.getVersionTag(mibEntity.getVersion()));
-
+        VspZusammenUtil.getVersionTag(componentMonitoringUploadEntity.getVersion()));
     Optional<Element> mibsElement =
-        zusammenAdaptor.getElementByName(context, elementContext, new Id(mibEntity
+        zusammenAdaptor.getElementByName(context, elementContext, new Id(
+            componentMonitoringUploadEntity
             .getComponentId()), StructureElement.Mibs.toString());
     if (mibsElement.isPresent()) {
-      Optional<Element> mibElement = zusammenAdaptor
+      Optional<Element> monitoringElement = zusammenAdaptor
           .getElementByName(context, elementContext, mibsElement.get().getElementId(),
-              getMibStructuralElement(mibEntity.getType()).toString());
-      if (mibElement.isPresent()) {
-        mibEntity.setId(mibElement.get().getElementId().getValue());
-        mibEntity.setArtifactName((String) mibElement.get().getInfo().getProperties().get(ARTIFACT_NAME));
-        mibEntity.setArtifact(ByteBuffer.wrap(FileUtils.toByteArray(mibElement.get().getData())));
-        return Optional.of(mibEntity);
+              getMonitoringStructuralElement(componentMonitoringUploadEntity.getType())
+                  .toString());
+      if (monitoringElement.isPresent()) {
+        componentMonitoringUploadEntity.setId(monitoringElement.get().getElementId().getValue());
+        componentMonitoringUploadEntity
+            .setArtifactName(
+                (String) monitoringElement.get().getInfo().getProperties().get(ARTIFACT_NAME));
+        componentMonitoringUploadEntity
+            .setArtifact(ByteBuffer.wrap(FileUtils.toByteArray(monitoringElement.get().getData())));
+        return Optional.of(componentMonitoringUploadEntity);
       }
     }
 
@@ -67,44 +72,44 @@ public class MibDaoZusammenImpl implements MibDao {
   }
 
   @Override
-  public void create(MibEntity mibEntity) {
-    ZusammenElement mibElement = buildMibElement(mibEntity);
+  public void create(ComponentMonitoringUploadEntity entity) {
+    ZusammenElement mibElement = buildMibElement(entity);
 
     ZusammenElement mibsElement =
         VspZusammenUtil.buildStructuralElement(StructureElement.Mibs, null);
 
-    ZusammenElement componentElement = buildComponentElement(mibEntity);
+    ZusammenElement componentElement = buildComponentElement(entity);
 
     SessionContext context = ZusammenUtil.createSessionContext();
-    Id itemId = new Id(mibEntity.getVspId());
+    Id itemId = new Id(entity.getVspId());
     ElementContext elementContext = new ElementContext(itemId,
         VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
 
     Optional<Element> savedElement = zusammenAdaptor.saveElement(context, elementContext,
         VspZusammenUtil.aggregateElements(componentElement, mibsElement, mibElement),
-        "Create mib");
+        "Create monitoring upload");
     savedElement.ifPresent(element ->
-        mibEntity.setId(element.getSubElements().iterator().next()
+        entity.setId(element.getSubElements().iterator().next()
             .getSubElements().iterator().next().getElementId().getValue()));
   }
 
   @Override
-  public void delete(MibEntity mibEntity) {
+  public void delete(ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
     ZusammenElement mibElement = new ZusammenElement();
-    mibElement.setElementId(new Id(mibEntity.getId()));
+    mibElement.setElementId(new Id(componentMonitoringUploadEntity.getId()));
     mibElement.setAction(Action.DELETE);
 
     SessionContext context = ZusammenUtil.createSessionContext();
-    Id itemId = new Id(mibEntity.getVspId());
+    Id itemId = new Id(componentMonitoringUploadEntity.getVspId());
     ElementContext elementContext = new ElementContext(itemId,
         VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
 
     zusammenAdaptor.saveElement(context, elementContext, mibElement,
-        String.format("Delete mib with id %s", mibEntity.getId()));
+        String.format("Delete mib with id %s", componentMonitoringUploadEntity.getId()));
   }
 
   @Override
-  public Collection<MibEntity> list(MibEntity mib) {
+  public Collection<ComponentMonitoringUploadEntity> list(ComponentMonitoringUploadEntity mib) {
     SessionContext context = ZusammenUtil.createSessionContext();
     Id itemId = new Id(mib.getVspId());
     ElementContext elementContext = new ElementContext(itemId,
@@ -120,14 +125,14 @@ public class MibDaoZusammenImpl implements MibDao {
   }
 
   @Override
-  public void deleteAll(MibEntity mibEntity) {
+  public void deleteAll(ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
     ZusammenElement mibsElement =
         VspZusammenUtil.buildStructuralElement(StructureElement.Mibs, Action.DELETE);
 
-    ZusammenElement componentElement = buildComponentElement(mibEntity);
+    ZusammenElement componentElement = buildComponentElement(componentMonitoringUploadEntity);
 
     SessionContext context = ZusammenUtil.createSessionContext();
-    Id itemId = new Id(mibEntity.getVspId());
+    Id itemId = new Id(componentMonitoringUploadEntity.getVspId());
     ElementContext elementContext = new ElementContext(itemId,
         VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor));
 
@@ -136,15 +141,17 @@ public class MibDaoZusammenImpl implements MibDao {
   }
 
   @Override
-  public Collection<MibEntity> listArtifacts(MibEntity mib) {
+  public Collection<ComponentMonitoringUploadEntity> listArtifacts(
+      ComponentMonitoringUploadEntity monitoringUploadEntity) {
     SessionContext context = ZusammenUtil.createSessionContext();
-    Id itemId = new Id(mib.getVspId());
+    Id itemId = new Id(monitoringUploadEntity.getVspId());
     ElementContext elementContext = new ElementContext(itemId,
         VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor),
-        VspZusammenUtil.getVersionTag(mib.getVersion()));
+        VspZusammenUtil.getVersionTag(monitoringUploadEntity.getVersion()));
 
     final Optional<Element> elementByName =
-        zusammenAdaptor.getElementByName(context, elementContext, new Id(mib.getComponentId()
+        zusammenAdaptor.getElementByName(context, elementContext,
+            new Id(monitoringUploadEntity.getComponentId()
         ), StructureElement.Mibs.name());
 
     if(!elementByName.isPresent())
@@ -153,49 +160,65 @@ public class MibDaoZusammenImpl implements MibDao {
       final Id elementId = elementByName.get().getElementId();
       return zusammenAdaptor.listElementData(context, elementContext, elementId).stream()
           .map(element ->
-              buildMibEntity(element,mib)
+              buildMibEntity(element, monitoringUploadEntity)
           ).collect(Collectors.toList());
     }
   }
 
-  private MibEntity buildMibEntity (Element element, MibEntity mib) {
-    MibEntity createdMib = new MibEntity(mib.getVspId(), mib.getVersion(), mib.getComponentId(),
+  private ComponentMonitoringUploadEntity buildMibEntity(Element element,
+                                                         ComponentMonitoringUploadEntity monitoringUploadEntity) {
+    final String componentId = monitoringUploadEntity.getComponentId();
+    ComponentMonitoringUploadEntity
+        createdMib = new ComponentMonitoringUploadEntity(monitoringUploadEntity.getVspId(),
+        monitoringUploadEntity.getVersion(),
+        componentId,
         null);
     createdMib.setArtifactName((String) element.getInfo().getProperties().get(ARTIFACT_NAME));
     createdMib.setArtifact(ByteBuffer.wrap(FileUtils.toByteArray(element.getData())));
-    createdMib.setType( ArtifactType.valueOf(element.getInfo().getName()));
+    createdMib.setType(MonitoringUploadType.valueOf(element.getInfo().getName()));
     return createdMib;
   }
 
-  private ZusammenElement buildComponentElement(MibEntity mibEntity) {
+  private ZusammenElement buildComponentElement(
+      ComponentMonitoringUploadEntity componentMonitoringUploadEntity) {
     ZusammenElement componentElement = new ZusammenElement();
-    componentElement.setElementId(new Id(mibEntity.getComponentId()));
+    componentElement.setElementId(new Id(componentMonitoringUploadEntity.getComponentId()));
     componentElement.setAction(Action.IGNORE);
     return componentElement;
   }
 
-  private ZusammenElement buildMibElement(MibEntity mib) {
-    ZusammenElement mibElement = VspZusammenUtil
-        .buildStructuralElement(getMibStructuralElement(mib.getType()), Action.UPDATE);
-    mibElement.getInfo().getProperties().put(ARTIFACT_NAME, mib.getArtifactName());
-    mibElement.setData(new ByteArrayInputStream(mib.getArtifact().array()));
-    return mibElement;
+  private ZusammenElement buildMibElement(ComponentMonitoringUploadEntity monitoringUploadEntity) {
+    ZusammenElement monitoringElement = VspZusammenUtil
+        .buildStructuralElement(getMonitoringStructuralElement(monitoringUploadEntity.getType()),
+            Action.UPDATE);
+    monitoringElement.getInfo().getProperties()
+        .put(ARTIFACT_NAME, monitoringUploadEntity.getArtifactName());
+    monitoringElement
+        .setData(new ByteArrayInputStream(monitoringUploadEntity.getArtifact().array()));
+    return monitoringElement;
   }
 
-  private MibEntity mapElementInfoToMib(String vspId, Version version, String componentId,
-                                        ElementInfo elementInfo) {
-    MibEntity mib = new MibEntity(vspId, version, componentId, elementInfo.getId().getValue());
-    mib.setArtifactName((String) elementInfo.getInfo().getProperties().get(ARTIFACT_NAME));
-    mib.setType(ArtifactType.valueOf(elementInfo.getInfo().getName()));
-    return mib;
+  private ComponentMonitoringUploadEntity mapElementInfoToMib(String vspId, Version version,
+                                                              String componentId,
+                                                              ElementInfo elementInfo) {
+    ComponentMonitoringUploadEntity
+        monitoringUploadEntity = new ComponentMonitoringUploadEntity(vspId, version, componentId,
+        elementInfo.getId().getValue());
+    monitoringUploadEntity
+        .setArtifactName((String) elementInfo.getInfo().getProperties().get(ARTIFACT_NAME));
+    monitoringUploadEntity.setType(MonitoringUploadType.valueOf(elementInfo.getInfo().getName()));
+    return monitoringUploadEntity;
   }
 
-  private StructureElement getMibStructuralElement(ArtifactType type) {
+  private StructureElement getMonitoringStructuralElement(MonitoringUploadType type)
+      throws IllegalArgumentException {
     switch (type) {
       case SNMP_POLL:
         return StructureElement.SNMP_POLL;
       case SNMP_TRAP:
         return StructureElement.SNMP_TRAP;
+      case VES_EVENTS:
+        return StructureElement.VES_EVENTS;
       default:
         throw new IllegalArgumentException();
     }