Fix sdc controller
[clamp.git] / src / main / java / org / onap / clamp / clds / sdc / controller / installer / CsarInstallerImpl.java
index 0498ca7..1731244 100644 (file)
@@ -99,12 +99,19 @@ public class CsarInstallerImpl implements CsarInstaller {
 
     @Override
     public boolean isCsarAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException {
-        return (CldsModel.retrieve(cldsDao, buildModelName(csar), true).getId() != null) ? true : false;
+        boolean alreadyInstalled = true;
+        for (Entry<String, BlueprintArtifact> blueprint : csar.getMapOfBlueprints().entrySet()) {
+            alreadyInstalled = alreadyInstalled
+                    && (CldsModel.retrieve(cldsDao, buildModelName(csar, blueprint.getKey()), true).getId() != null)
+                            ? true
+                            : false;
+        }
+        return alreadyInstalled;
     }
 
-    public static String buildModelName(CsarHandler csar) {
+    public static String buildModelName(CsarHandler csar, String resourceInstanceName) {
         return MODEL_NAME_PREFIX + csar.getSdcCsarHelper().getServiceMetadata().getValue("name") + "_v"
-                + csar.getSdcNotification().getServiceVersion().replace('.', '_');
+                + csar.getSdcNotification().getServiceVersion().replace('.', '_') + "_" + resourceInstanceName;
     }
 
     @Override
@@ -154,7 +161,7 @@ public class CsarInstallerImpl implements CsarInstaller {
         List<String> policyNameList = new ArrayList<>();
         Map<String, Object> templateNodes = ((Map<String, Object>) ((Map<String, Object>) yaml
                 .load(blueprintArtifact.getDcaeBlueprint())).get("node_templates"));
-        templateNodes.entrySet().stream().filter(e -> e.getKey().contains("policy_")).forEach(ef -> {
+        templateNodes.entrySet().stream().filter(e -> e.getKey().contains("policy")).forEach(ef -> {
             String filteredPolicyName = (String) ((Map<String, Object>) ((Map<String, Object>) ef.getValue())
                     .get("properties")).get("policy_filter");
             if (policyName != null) {
@@ -196,7 +203,8 @@ public class CsarInstallerImpl implements CsarInstaller {
                 "{\"global\":[{\"name\":\"service\",\"value\":[\"" + blueprintArtifact.getDcaeBlueprint() + "\"]}]}");
         template.setImageText(
                 IOUtils.toString(appContext.getResource(configFiles.getSvgXmlFilePath()).getInputStream()));
-        template.setName(TEMPLATE_NAME_PREFIX + buildModelName(csar));
+        template.setName(TEMPLATE_NAME_PREFIX
+                + buildModelName(csar, blueprintArtifact.getResourceAttached().getResourceInstanceName()));
         template.save(cldsDao, null);
         logger.info("Fake Clds Template created for blueprint " + blueprintArtifact.getBlueprintArtifactName()
                 + " with name " + template.getName());
@@ -207,7 +215,7 @@ public class CsarInstallerImpl implements CsarInstaller {
             CldsTemplate cldsTemplate, String serviceTypeId) throws SdcArtifactInstallerException {
         try {
             CldsModel cldsModel = new CldsModel();
-            cldsModel.setName(buildModelName(csar));
+            cldsModel.setName(buildModelName(csar, blueprintArtifact.getResourceAttached().getResourceInstanceName()));
             cldsModel.setBlueprintText(blueprintArtifact.getDcaeBlueprint());
             cldsModel.setTemplateName(cldsTemplate.getName());
             cldsModel.setTemplateId(cldsTemplate.getId());
@@ -230,7 +238,7 @@ public class CsarInstallerImpl implements CsarInstaller {
                     + blueprintArtifact.getResourceAttached().getResourceInvariantUUID()
                     + "\"]},{\"name\":\"actionSet\",\"value\":[\"vnfRecipe\"]},{\"name\":\"location\",\"value\":[\"DC1\"]},"
                     + inputParams + "]}");
-            cldsModel.save(cldsDao, null);
+            cldsModel = cldsModel.save(cldsDao, null);
             logger.info("Fake Clds Model created for blueprint " + blueprintArtifact.getBlueprintArtifactName()
                     + " with name " + cldsModel.getName());
             return cldsModel;