diff options
Diffstat (limited to '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/OrchestrationTemplateCandidateDaoZusammenImpl.java')
1 files changed, 134 insertions, 0 deletions
diff --git a/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/OrchestrationTemplateCandidateDaoZusammenImpl.java b/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/OrchestrationTemplateCandidateDaoZusammenImpl.java new file mode 100644 index 0000000000..c101955292 --- /dev/null +++ b/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/OrchestrationTemplateCandidateDaoZusammenImpl.java @@ -0,0 +1,134 @@ +package org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen; + +import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement; +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 com.amdocs.zusammen.utils.fileutils.FileUtils; +import org.openecomp.core.utilities.json.JsonUtil; +import org.openecomp.core.zusammen.api.ZusammenAdaptor; +import org.openecomp.core.zusammen.api.ZusammenUtil; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.OrchestrationTemplateCandidateData; +import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStructure; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.dao.types.VersionStatus; + +import java.io.ByteArrayInputStream; +import java.nio.ByteBuffer; +import java.util.Optional; + +public class OrchestrationTemplateCandidateDaoZusammenImpl + implements OrchestrationTemplateCandidateDao { + private static final Logger logger = + LoggerFactory.getLogger(OrchestrationTemplateCandidateDaoZusammenImpl.class); + + private ZusammenAdaptor zusammenAdaptor; + + public OrchestrationTemplateCandidateDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) { + this.zusammenAdaptor = zusammenAdaptor; + } + + @Override + public void registerVersioning(String versionableEntityType) { + + } + + @Override + public OrchestrationTemplateCandidateData get(String vspId, Version version) { + logger.info("Getting orchestration template for vsp id -> " + vspId); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(vspId); + Id versionId = VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor); + ElementContext elementContext = new ElementContext(itemId, versionId, + VspZusammenUtil.getVersionTag(version)); + + Optional<Element> candidateElement = + zusammenAdaptor.getElementByName(context, elementContext, null, + StructureElement.OrchestrationTemplateCandidate.name()); + if (candidateElement.isPresent()) { + OrchestrationTemplateCandidateData candidateData = new OrchestrationTemplateCandidateData(); + candidateData.setFilesDataStructure( + new String(FileUtils.toByteArray(candidateElement.get().getData()))); + + zusammenAdaptor + .getElementByName(context, elementContext, candidateElement.get().getElementId(), + StructureElement.OrchestrationTemplateCandidateContent.name()) + .ifPresent(candidateContentElement -> candidateData.setContentData( + ByteBuffer.wrap(FileUtils.toByteArray(candidateContentElement.getData())))); + logger.info("Finished getting orchestration template for vsp id -> " + vspId); + return candidateData; + } + logger.info(String.format("Orchestration template for vsp id %s does not exist", vspId)); + return null; + } + + @Override + public void update(String vspId, OrchestrationTemplateCandidateData candidateData) { + logger.info("Uploading candidate data entity for vsp id -> " + vspId); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(vspId); + Id versionId = VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor); + ElementContext elementContext = new ElementContext(itemId, versionId); + + ZusammenElement candidateElement = VspZusammenUtil + .buildStructuralElement(StructureElement.OrchestrationTemplateCandidate, Action.UPDATE); + candidateElement + .setData(new ByteArrayInputStream(candidateData.getFilesDataStructure().getBytes())); + ZusammenElement candidateContentElement = VspZusammenUtil + .buildStructuralElement(StructureElement.OrchestrationTemplateCandidateContent, Action.UPDATE); + candidateContentElement + .setData(new ByteArrayInputStream(candidateData.getContentData().array())); + candidateElement.addSubElement(candidateContentElement); + + zusammenAdaptor.saveElement(context, elementContext, candidateElement, + "Update Orchestration Template Candidate"); + logger.info("Finished uploading candidate data entity for vsp id -> " + vspId); + } + + @Override + public void updateStructure(String vspId, Version version, FilesDataStructure fileDataStructure) { + logger.info("Updating orchestration template for VSP id -> " + vspId); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(vspId); + Id versionId = VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor); + ElementContext elementContext = new ElementContext(itemId, versionId); + + ZusammenElement candidateElement = VspZusammenUtil + .buildStructuralElement(StructureElement.OrchestrationTemplateCandidate, Action.UPDATE); + candidateElement + .setData(new ByteArrayInputStream(JsonUtil.object2Json(fileDataStructure).getBytes())); + zusammenAdaptor.saveElement(context, elementContext, candidateElement, + "Update Orchestration Template Candidate structure"); + logger.info("Finished uploading candidate data entity for vsp id -> " + vspId); + } + + + @Override + public Optional<String> getStructure(String vspId, Version version) { + logger.info("Getting orchestration template structure for vsp id -> " + vspId); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(vspId); + Id versionId = VspZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor); + ElementContext elementContext = new ElementContext(itemId, versionId, + VspZusammenUtil.getVersionTag(version)); + + logger.info("Finished getting orchestration template structure for vsp id -> " + vspId); + Optional<Element> element = zusammenAdaptor.getElementByName(context, elementContext, null, + StructureElement.OrchestrationTemplateCandidate.name()); + if (element.isPresent()) { + return Optional.of(new String(FileUtils.toByteArray(element.get().getData()))); + } else { + return Optional.empty(); + } + + } +} |