X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Fclds%2Fsdc%2Fcontroller%2Finstaller%2FCsarInstallerImpl.java;h=3a6bef8d88f4830ad42bcd3661f671ad09843c69;hb=350b41105138242190f0dd42396721a0195e04d2;hp=c56eed517b813fdd03af86973a0003400eade37f;hpb=f319e58261ac33b4c08d72b428ee3a9b8da82e79;p=clamp.git diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java index c56eed51..3a6bef8d 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java @@ -35,7 +35,8 @@ import java.util.Map; import javax.annotation.PostConstruct; -import org.onap.clamp.clds.config.ClampProperties; +import org.json.simple.parser.ParseException; +import org.onap.clamp.clds.client.DcaeInventoryServices; import org.onap.clamp.clds.config.sdc.BlueprintParserFilesConfiguration; import org.onap.clamp.clds.config.sdc.BlueprintParserMappingConfiguration; import org.onap.clamp.clds.dao.CldsDao; @@ -55,8 +56,8 @@ public class CsarInstallerImpl implements CsarInstaller { private static final EELFLogger logger = EELFManager.getInstance().getLogger(CsarInstallerImpl.class); private Map bpmnMapping = new HashMap<>(); - public static final String TEMPLATE_NAME_SUFFIX = "-template-dcae-designer"; - public static final String MODEL_NAME_SUFFIX = "-model-dcae-designer"; + public static final String TEMPLATE_NAME_PREFIX = "DCAE-Designer-ClosedLoopTemplate-"; + public static final String MODEL_NAME_PREFIX = "DCAE-Designer-ClosedLoopInstance-"; /** * The file name that will be loaded by Spring. */ @@ -67,11 +68,11 @@ public class CsarInstallerImpl implements CsarInstaller { @Autowired private CldsDao cldsDao; @Autowired - private ClampProperties refProp; - @Autowired CldsTemplateService cldsTemplateService; @Autowired CldsService cldsService; + @Autowired + DcaeInventoryServices dcaeInventoryService; @PostConstruct public void loadConfiguration() throws IOException { @@ -88,10 +89,15 @@ public class CsarInstallerImpl implements CsarInstaller { @Override public void installTheCsar(CsarHandler csar) throws SdcArtifactInstallerException { try { - BlueprintParserFilesConfiguration configFiles = this.searchForRightMapping(csar); - createFakeCldsModel(csar, configFiles, createFakeCldsTemplate(csar, configFiles)); + String serviceTypeId = queryDcaeToGetServiceTypeId(csar); + String policyName = searchForPolicyName(csar); + if (policyName.contains("*")) { + } + createFakeCldsModel(csar, createFakeCldsTemplate(csar, this.searchForRightMapping(csar)), serviceTypeId); } catch (IOException e) { throw new SdcArtifactInstallerException("Exception caught during the Csar installation in database", e); + } catch (ParseException e) { + throw new SdcArtifactInstallerException("Exception caught during the Dcae query to get ServiceTypeId", e); } } @@ -115,12 +121,38 @@ public class CsarInstallerImpl implements CsarInstaller { return listConfig.get(0); } - private String createTemplateName(CsarHandler csar) { - return csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + TEMPLATE_NAME_SUFFIX; + private String searchForPolicyName(CsarHandler csar) throws SdcArtifactInstallerException { + String policyName = null; + Yaml yaml = new Yaml(); + List policyNameList = new ArrayList<>(); + Map templateNodes = ((Map) ((Map) yaml + .load(csar.getDcaeBlueprint())).get("node_templates")); + templateNodes.entrySet().stream().filter(e -> e.getKey().contains("policy_")).forEach(ef -> { + String filteredPolicyName = (String) ((Map) ((Map) ef.getValue()) + .get("properties")).get("policy_filter"); + if (policyName != null) { + policyNameList.add(filteredPolicyName); + } else { + String inputPolicyName = (String) ((Map) ((Map) ((Map) ef + .getValue()).get("properties")).get("policy_id")).get("get_input"); + if (inputPolicyName != null) { + policyNameList.add("get_input"); + } + } + }); + if (policyNameList.size() > 1) { + throw new SdcArtifactInstallerException( + "The code does not currently support multiple Policy MicroServices in the blueprint"); + } else if (policyNameList.isEmpty()) { + throw new SdcArtifactInstallerException( + "There is no recognized Policy MicroService found in the blueprint"); + } + return policyNameList.get(0); } - private String createModelName(CsarHandler csar) { - return csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + MODEL_NAME_SUFFIX; + private String queryDcaeToGetServiceTypeId(CsarHandler csar) throws IOException, ParseException { + return dcaeInventoryService.getDcaeInformation(csar.getBlueprintArtifactName(), + csar.getBlueprintInvariantServiceUuid(), csar.getBlueprintInvariantResourceUuid()); } private CldsTemplate createFakeCldsTemplate(CsarHandler csar, BlueprintParserFilesConfiguration configFiles) @@ -129,19 +161,26 @@ public class CsarInstallerImpl implements CsarInstaller { template.setBpmnId("Sdc-Generated"); template.setBpmnText( IOUtils.toString(appContext.getResource(configFiles.getBpmnXmlFilePath()).getInputStream())); - // ((ObjectNode)refProp.getJsonTemplate(CldsService.GLOBAL_PROPERTIES_KEY)); template.setPropText(csar.getDcaeBlueprint()); template.setImageText( IOUtils.toString(appContext.getResource(configFiles.getSvgXmlFilePath()).getInputStream())); - return cldsTemplateService.putTemplate(createTemplateName(csar), template); + template.setName(TEMPLATE_NAME_PREFIX + csar.getSdcCsarHelper().getServiceMetadata().getValue("name")); + template.save(cldsDao, null); + return template; } - private CldsModel createFakeCldsModel(CsarHandler csar, BlueprintParserFilesConfiguration configFiles, - CldsTemplate cldsTemplate) { + private CldsModel createFakeCldsModel(CsarHandler csar, CldsTemplate cldsTemplate, String serviceTypeId) { CldsModel cldsModel = new CldsModel(); + cldsModel.setControlNamePrefix(MODEL_NAME_PREFIX); + cldsModel.setName(csar.getSdcCsarHelper().getServiceMetadata().getValue("name")); cldsModel.setBlueprintText(csar.getDcaeBlueprint()); cldsModel.setTemplateName(cldsTemplate.getName()); - // cldsModel.set - return cldsService.putModel(createModelName(csar), cldsModel); + cldsModel.setTemplateId(cldsTemplate.getId()); + cldsModel.setDocText(cldsTemplate.getPropText()); + cldsModel.setPropText("{}"); + cldsModel.setBpmnText(cldsTemplate.getBpmnText()); + cldsModel.setTypeId(serviceTypeId); + cldsModel.save(cldsDao, null); + return cldsModel; } }