List<NodeTemplate> vfNodeTemplatesList = toscaResourceStruct.getSdcCsarHelper().getServiceVfList();\r
int outerLoop = 0;\r
logger.debug("**vfMondeTEmplatesList.size()=" + vfNodeTemplatesList.size());\r
- for (NodeTemplate nodeTemplate : vfNodeTemplatesList) {\r
- logger.debug("nodeTemplate outerLoop=" + outerLoop++);\r
- // extract VF metadata\r
- \r
- Metadata metadata = nodeTemplate.getMetaData();\r
+ for(NodeTemplate nodeTemplate : vfNodeTemplatesList) {\r
+ logger.debug("nodeTemplate outerLoop=" + outerLoop++);\r
+ // extract VF metadata\r
\r
- String vfCustomizationUUID = toscaResourceStruct.getSdcCsarHelper().getMetadataPropertyValue(metadata, SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID);\r
- logger.debug("vfCustomizationUUID=" + vfCustomizationUUID);\r
+ Metadata metadata = nodeTemplate.getMetaData();\r
\r
- \r
- /* HEAT TABLE POPULATION\r
- * *******************************************************************************************************\r
- */\r
- \r
- int nextLoop = 0;\r
- for (VfModuleStructure vfModuleStructure : vfResourceStructure.getVfModuleStructure()) {\r
- logger.debug("vfResourceStructure.getVfMOduleStructure() loop, nextLoop = " + nextLoop++);\r
- logger.debug("vfModuleStructure:" + vfModuleStructure.toString());\r
- \r
- // Here we set the right db structure according to the Catalog\r
- // DB\r
+ String vfCustomizationUUID = toscaResourceStruct.getSdcCsarHelper().getMetadataPropertyValue(metadata,\r
+ SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID);\r
+ logger.debug("vfCustomizationUUID=" + vfCustomizationUUID);\r
\r
- // We expect only one MAIN HEAT per VFMODULE\r
- // we can also obtain from it the Env ArtifactInfo, that's why\r
- // we\r
- // get the Main IArtifactInfo\r
+ // extract VF metadata\r
+ createVnfResource(nodeTemplate, toscaResourceStruct);\r
\r
- HeatTemplate heatMainTemplate = null;\r
- HeatEnvironment heatEnv;\r
- \r
- HeatTemplate heatVolumeTemplate = null;\r
- HeatEnvironment heatVolumeEnv;\r
- \r
- \r
- IVfModuleData vfMetadata = vfModuleStructure.getVfModuleMetadata();\r
- \r
- \r
- if (vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT)) {\r
- \r
- List<VfModuleArtifact> artifacts = vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT);\r
- logger.debug("there are " + artifacts.size() + " artifacts");\r
- IArtifactInfo mainEnvArtifactInfo = null;\r
- for (VfModuleArtifact vfma : artifacts) {\r
- logger.debug("vmfa=" + vfma.toString());\r
- mainEnvArtifactInfo = \r
- vfma.getArtifactInfo().getGeneratedArtifact();\r
- \r
- // MAIN HEAT\r
- heatMainTemplate = (HeatTemplate) vfma.getCatalogObject(); \r
- \r
- // Set HeatTemplateArtifactUUID to use later when setting the VfModule and NetworkResource\r
- toscaResourceStruct.setHeatTemplateUUID(heatMainTemplate.getArtifactUuid());\r
+ // check for duplicate record already in the database\r
+ VnfResource vnfResource =\r
+ catalogDB.getVnfResource(toscaResourceStruct.getCatalogVnfResource().getModelName(),\r
+ BigDecimalVersion.castAndCheckNotificationVersionToString(\r
+ toscaResourceStruct.getCatalogVnfResource().getVersion()));\r
\r
- // Add this one for logging\r
- artifactListForLogging.add(ASDCElementInfo\r
- .createElementFromVfArtifactInfo(vfma.getArtifactInfo()));\r
- \r
- catalogDB.saveHeatTemplate(heatMainTemplate, heatMainTemplate.getParameters());\r
- // Indicate we have deployed it in the DB\r
- vfma.incrementDeployedInDB();\r
- }\r
- \r
- \r
- // VOLUME HEAT\r
- // We expect only one VOL HEAT per VFMODULE\r
- // we can also obtain from it the Env ArtifactInfo, that's why\r
- // we get the Volume IArtifactInfo\r
- \r
- if (vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_VOL)) {\r
- IArtifactInfo volEnvArtifactInfo = vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0)\r
- .getArtifactInfo().getGeneratedArtifact();\r
- \r
- heatVolumeTemplate = (HeatTemplate) vfModuleStructure.getArtifactsMap()\r
- .get(ASDCConfiguration.HEAT_VOL).get(0).getCatalogObject();\r
- \r
- // Set VolHeatTemplate ArtifactUUID to use later when setting the VfModule \r
- toscaResourceStruct.setVolHeatTemplateUUID(heatVolumeTemplate.getArtifactUuid());\r
- \r
- \r
- // Add this one for logging\r
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0).getArtifactInfo()));\r
+ if(vnfResource != null) {\r
+ toscaResourceStruct.setVnfAlreadyInstalled(true);\r
+ }\r
\r
- catalogDB.saveHeatTemplate(heatVolumeTemplate, heatVolumeTemplate.getParameters());\r
- // Indicate we have deployed it in the DB\r
- vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0).incrementDeployedInDB();\r
- \r
- if (volEnvArtifactInfo != null) {\r
- heatVolumeEnv = (HeatEnvironment) vfResourceStructure.getArtifactsMapByUUID()\r
- .get(volEnvArtifactInfo.getArtifactUUID()).getCatalogObject();\r
- \r
- // Set VolHeatTemplate ArtifactUUID to use later when setting the VfModule \r
- toscaResourceStruct.setVolHeatEnvTemplateUUID(heatVolumeEnv.getArtifactUuid());\r
-\r
- // Add this one for logging\r
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(volEnvArtifactInfo));\r
- \r
- catalogDB.saveHeatEnvironment(heatVolumeEnv);\r
- // Indicate we have deployed it in the DB\r
- vfResourceStructure.getArtifactsMapByUUID().get(volEnvArtifactInfo.getArtifactUUID()).incrementDeployedInDB();\r
- }\r
- \r
- }\r
- \r
- // NESTED HEAT\r
- // Here we expect many HEAT_NESTED template to be there\r
- // XXX FIX BY PCLO: Defect# -36643 -US666034 - check first if we really have nested heat templates\r
- if (vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_NESTED)) {\r
- for (VfModuleArtifact heatNestedArtifact : vfModuleStructure.getArtifactsMap()\r
- .get(ASDCConfiguration.HEAT_NESTED)) {\r
- \r
- // Check if this nested is well referenced by the MAIN HEAT\r
- String parentArtifactType = ToscaResourceInstaller.identifyParentOfNestedTemplate(vfModuleStructure,heatNestedArtifact);\r
- HeatTemplate heatNestedTemplate = (HeatTemplate) heatNestedArtifact.getCatalogObject();\r
- \r
- if (parentArtifactType != null) {\r
- \r
- switch (parentArtifactType) {\r
- case ASDCConfiguration.HEAT:\r
- \r
- // Add this one for logging\r
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(heatNestedArtifact.getArtifactInfo()));\r
- \r
- catalogDB.saveNestedHeatTemplate (heatMainTemplate.getArtifactUuid(), heatNestedTemplate, heatNestedTemplate.getTemplateName());\r
- // Indicate we have deployed it in the DB\r
- heatNestedArtifact.incrementDeployedInDB();\r
- break;\r
- case ASDCConfiguration.HEAT_VOL:\r
- \r
- // Add this one for logging\r
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(heatNestedArtifact.getArtifactInfo()));\r
- catalogDB.saveNestedHeatTemplate (heatVolumeTemplate.getArtifactUuid(), heatNestedTemplate, heatNestedTemplate.getTemplateName());\r
- // Indicate we have deployed it in the DB\r
- heatNestedArtifact.incrementDeployedInDB();\r
- break;\r
- \r
- default:\r
- break;\r
+ if(!toscaResourceStruct.isVnfAlreadyInstalled()) {\r
\r
- }\r
- } else { // Assume it belongs to HEAT MAIN\r
- // Add this one for logging\r
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(heatNestedArtifact.getArtifactInfo()));\r
- \r
- catalogDB.saveNestedHeatTemplate (heatMainTemplate.getArtifactUuid(), heatNestedTemplate, heatNestedTemplate.getTemplateName());\r
- // Indicate we have deployed it in the DB\r
- heatNestedArtifact.incrementDeployedInDB();\r
- }\r
- }\r
- }\r
- \r
- if (mainEnvArtifactInfo != null) {\r
- heatEnv = (HeatEnvironment) vfResourceStructure.getArtifactsMapByUUID()\r
- .get(mainEnvArtifactInfo.getArtifactUUID()).getCatalogObject();\r
- \r
- // Set HeatEnvironmentArtifactUUID to use later when setting the VfModule \r
- toscaResourceStruct.setEnvHeatTemplateUUID(heatEnv.getArtifactUuid());\r
+ catalogDB.saveOrUpdateVnfResource(toscaResourceStruct.getCatalogVnfResource());\r
\r
- // Add this one for logging\r
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(mainEnvArtifactInfo));\r
- \r
- catalogDB.saveHeatEnvironment(heatEnv);\r
- // Indicate we have deployed it in the DB\r
- vfResourceStructure.getArtifactsMapByUUID().get(mainEnvArtifactInfo.getArtifactUUID()).incrementDeployedInDB();\r
- }\r
- \r
- // here we expect one VFModule to be there\r
- //VfResourceInstaller.createVfModule(vfModuleStructure,heatMainTemplate, heatVolumeTemplate, heatEnv, heatVolumeEnv);\r
- //VfModule vfModule = vfModuleStructure.getCatalogVfModule();\r
+ }\r
\r
- // Add this one for logging\r
- //artifactListForLogging.add(ASDCElementInfo.createElementFromVfModuleStructure(vfModuleStructure));\r
- \r
- //catalogDB.saveOrUpdateVfModule(vfModule);\r
- \r
- \r
- // extract VF metadata \r
- createVnfResource(nodeTemplate, toscaResourceStruct);\r
- \r
- // check for duplicate record already in the database\r
- VnfResource vnfResource = catalogDB.getVnfResource(toscaResourceStruct.getCatalogVnfResource().getModelName(),\r
- BigDecimalVersion.castAndCheckNotificationVersionToString(\r
- toscaResourceStruct.getCatalogVnfResource().getVersion()));\r
+ boolean saveVnfCustomization = catalogDB\r
+ .saveVnfResourceCustomization(toscaResourceStruct.getCatalogVnfResourceCustomization());\r
\r
- if (vnfResource != null) {\r
- toscaResourceStruct.setVnfAlreadyInstalled(true);\r
- }\r
- \r
- \r
- if(!toscaResourceStruct.isVnfAlreadyInstalled()) {\r
- \r
- catalogDB.saveOrUpdateVnfResource(toscaResourceStruct.getCatalogVnfResource());\r
- \r
- }\r
- \r
- \r
- boolean saveVnfCustomization = catalogDB.saveVnfResourceCustomization(toscaResourceStruct.getCatalogVnfResourceCustomization());\r
- \r
- if(saveVnfCustomization){\r
- catalogDB.saveServiceToResourceCustomization(toscaResourceStruct.getCatalogVfServiceToResourceCustomization());\r
- }\r
- \r
- List<org.openecomp.sdc.toscaparser.api.Group> vfGroups = toscaResourceStruct.getSdcCsarHelper().getVfModulesByVf(vfCustomizationUUID);\r
- logger.debug("vfGroups:" + vfGroups.toString());\r
- \r
- Collections.sort(vfGroups, new Comparator<org.openecomp.sdc.toscaparser.api.Group>() {\r
- @Override\r
- public int compare(org.openecomp.sdc.toscaparser.api.Group group1, org.openecomp.sdc.toscaparser.api.Group group2) {\r
- \r
- //Field name1Field = group1.class.getDeclaredField("name");\r
- //name1Field.setAccessible(true);\r
- String thisName = group1.getName(); //(String) name1Field.get(group1);\r
- String thatName = group2.getName(); // (String) name1Field.get(group2);\r
- \r
- Matcher m = lastDigit.matcher(thisName);\r
- Matcher m2 = lastDigit.matcher(thatName);\r
- \r
- String thisDigit = "0";\r
- String thatDigit = "0";\r
- if (m.find()) {\r
- thisDigit = m.group();\r
- } else {\r
- return -1;\r
- }\r
- if (m2.find()) {\r
- thatDigit = m2.group();\r
- } else {\r
- return 1;\r
- }\r
- \r
- return new Integer(thisDigit).compareTo(new Integer(thatDigit));\r
+ if(saveVnfCustomization) {\r
+ catalogDB.saveServiceToResourceCustomization(\r
+ toscaResourceStruct.getCatalogVfServiceToResourceCustomization());\r
+ }\r
\r
- }\r
- });\r
- \r
- logger.debug("vfGroupsAfter:" + vfGroups.toString());\r
+ /*\r
+ * HEAT TABLE POPULATION\r
+ * *********************************************************************************\r
+ * **********************\r
+ */\r
\r
- \r
- for(Group group : vfGroups){\r
- \r
- \r
- //boolean saveVFModule = createVFModule(group, nodeTemplate, toscaResourceStruct, vfMetadata);\r
- if (vfMetadata.getVfModuleModelCustomizationUUID() == null) {\r
- logger.debug("NULL 1");\r
- } else {\r
- logger.debug("vfMetadata.getMCU=" + vfMetadata.getVfModuleModelCustomizationUUID());\r
- }\r
- if (group.getMetadata() == null) {\r
- logger.debug("NULL 3");\r
- } else {\r
- logger.debug("group.getMetadata().getValue() = " + group.getMetadata().getValue("vfModuleModelCustomizationUUID"));\r
- }\r
- if (vfMetadata.getVfModuleModelCustomizationUUID().equals(group.getMetadata().getValue("vfModuleModelCustomizationUUID"))) {\r
- logger.debug("Found a match at " + vfMetadata.getVfModuleModelCustomizationUUID());\r
- createVFModule(group, nodeTemplate, toscaResourceStruct, vfResourceStructure, vfMetadata);\r
- \r
- catalogDB.saveOrUpdateVfModule(toscaResourceStruct.getCatalogVfModule());\r
- \r
- catalogDB.saveOrUpdateVfModuleCustomization(toscaResourceStruct.getCatalogVfModuleCustomization());\r
- \r
- catalogDB.saveVnfResourceToVfModuleCustomization(toscaResourceStruct.getCatalogVnfResourceCustomization(), toscaResourceStruct.getCatalogVfModuleCustomization());\r
- \r
+ int nextLoop = 0;\r
+ for(VfModuleStructure vfModuleStructure : vfResourceStructure.getVfModuleStructure()) {\r
+ logger.debug("vfResourceStructure.getVfMOduleStructure() loop, nextLoop = " + nextLoop++);\r
+ logger.debug("vfModuleStructure:" + vfModuleStructure.toString());\r
\r
- } else {\r
- if(toscaResourceStruct.getCatalogVfModuleCustomization() != null){\r
- logger.debug("No match for " + toscaResourceStruct.getCatalogVfModuleCustomization().getModelCustomizationUuid());\r
- } else {\r
- logger.debug("No match for vfModuleModelCustomizationUUID");\r
- }\r
- }\r
- \r
- }\r
- \r
- } //Commented out to process VFModules each time \r
- \r
+ // Here we set the right db structure according to the Catalog\r
+ // DB\r
\r
- \r
- // Here we expect many HEAT_TEMPLATE files to be there\r
- if (vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_ARTIFACT)) {\r
- for (VfModuleArtifact heatArtifact : vfModuleStructure.getArtifactsMap()\r
- .get(ASDCConfiguration.HEAT_ARTIFACT)) {\r
- \r
- HeatFiles heatFile = (HeatFiles) heatArtifact.getCatalogObject();\r
- \r
- // Add this one for logging\r
- artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(heatArtifact.getArtifactInfo()));\r
- \r
- if(toscaResourceStruct.getCatalogVfModule() != null && heatFile != null){\r
- catalogDB.saveVfModuleToHeatFiles (toscaResourceStruct.getCatalogVfModule().getModelUUID(), heatFile);\r
- }\r
- // Indicate we will deploy it in the DB\r
- heatArtifact.incrementDeployedInDB();\r
- }\r
- }\r
- \r
- }\r
+ // We expect only one MAIN HEAT per VFMODULE\r
+ // we can also obtain from it the Env ArtifactInfo, that's why\r
+ // we\r
+ // get the Main IArtifactInfo\r
\r
- }\r
+ HeatTemplate heatMainTemplate = null;\r
+ HeatEnvironment heatEnv;\r
+\r
+ HeatTemplate heatVolumeTemplate = null;\r
+ HeatEnvironment heatVolumeEnv;\r
+\r
+ IVfModuleData vfMetadata = vfModuleStructure.getVfModuleMetadata();\r
+\r
+ if(vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT)) {\r
+\r
+ List<VfModuleArtifact> artifacts =\r
+ vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT);\r
+ logger.debug("there are " + artifacts.size() + " artifacts");\r
+ IArtifactInfo mainEnvArtifactInfo = null;\r
+ for(VfModuleArtifact vfma : artifacts) {\r
+ logger.debug("vmfa=" + vfma.toString());\r
+ mainEnvArtifactInfo = vfma.getArtifactInfo().getGeneratedArtifact();\r
+\r
+ // MAIN HEAT\r
+ heatMainTemplate = (HeatTemplate)vfma.getCatalogObject();\r
+\r
+ // Set HeatTemplateArtifactUUID to use later when setting the VfModule\r
+ // and NetworkResource\r
+ toscaResourceStruct.setHeatTemplateUUID(heatMainTemplate.getArtifactUuid());\r
+\r
+ // Add this one for logging\r
+ artifactListForLogging\r
+ .add(ASDCElementInfo.createElementFromVfArtifactInfo(vfma.getArtifactInfo()));\r
+\r
+ catalogDB.saveHeatTemplate(heatMainTemplate, heatMainTemplate.getParameters());\r
+ // Indicate we have deployed it in the DB\r
+ vfma.incrementDeployedInDB();\r
+ }\r
+\r
+ // VOLUME HEAT\r
+ // We expect only one VOL HEAT per VFMODULE\r
+ // we can also obtain from it the Env ArtifactInfo, that's why\r
+ // we get the Volume IArtifactInfo\r
+\r
+ if(vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_VOL)) {\r
+ IArtifactInfo volEnvArtifactInfo = vfModuleStructure.getArtifactsMap()\r
+ .get(ASDCConfiguration.HEAT_VOL).get(0).getArtifactInfo().getGeneratedArtifact();\r
+\r
+ heatVolumeTemplate = (HeatTemplate)vfModuleStructure.getArtifactsMap()\r
+ .get(ASDCConfiguration.HEAT_VOL).get(0).getCatalogObject();\r
+\r
+ // Set VolHeatTemplate ArtifactUUID to use later when setting the\r
+ // VfModule\r
+ toscaResourceStruct.setVolHeatTemplateUUID(heatVolumeTemplate.getArtifactUuid());\r
+\r
+ // Add this one for logging\r
+ artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(vfModuleStructure\r
+ .getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0).getArtifactInfo()));\r
+\r
+ catalogDB.saveHeatTemplate(heatVolumeTemplate, heatVolumeTemplate.getParameters());\r
+ // Indicate we have deployed it in the DB\r
+ vfModuleStructure.getArtifactsMap().get(ASDCConfiguration.HEAT_VOL).get(0)\r
+ .incrementDeployedInDB();\r
+\r
+ if(volEnvArtifactInfo != null) {\r
+ heatVolumeEnv = (HeatEnvironment)vfResourceStructure.getArtifactsMapByUUID()\r
+ .get(volEnvArtifactInfo.getArtifactUUID()).getCatalogObject();\r
+\r
+ // Set VolHeatTemplate ArtifactUUID to use later when setting the\r
+ // VfModule\r
+ toscaResourceStruct.setVolHeatEnvTemplateUUID(heatVolumeEnv.getArtifactUuid());\r
+\r
+ // Add this one for logging\r
+ artifactListForLogging\r
+ .add(ASDCElementInfo.createElementFromVfArtifactInfo(volEnvArtifactInfo));\r
+\r
+ catalogDB.saveHeatEnvironment(heatVolumeEnv);\r
+ // Indicate we have deployed it in the DB\r
+ vfResourceStructure.getArtifactsMapByUUID().get(volEnvArtifactInfo.getArtifactUUID())\r
+ .incrementDeployedInDB();\r
+ }\r
+\r
+ }\r
+\r
+ // NESTED HEAT\r
+ // Here we expect many HEAT_NESTED template to be there\r
+ // XXX FIX BY PCLO: Defect# -36643 -US666034 - check first if we really have\r
+ // nested heat templates\r
+ if(vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_NESTED)) {\r
+ for(VfModuleArtifact heatNestedArtifact : vfModuleStructure.getArtifactsMap()\r
+ .get(ASDCConfiguration.HEAT_NESTED)) {\r
+\r
+ // Check if this nested is well referenced by the MAIN HEAT\r
+ String parentArtifactType = ToscaResourceInstaller\r
+ .identifyParentOfNestedTemplate(vfModuleStructure, heatNestedArtifact);\r
+ HeatTemplate heatNestedTemplate = (HeatTemplate)heatNestedArtifact.getCatalogObject();\r
+\r
+ if(parentArtifactType != null) {\r
+\r
+ switch(parentArtifactType) {\r
+ case ASDCConfiguration.HEAT:\r
+\r
+ // Add this one for logging\r
+ artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(\r
+ heatNestedArtifact.getArtifactInfo()));\r
+\r
+ catalogDB.saveNestedHeatTemplate(heatMainTemplate.getArtifactUuid(),\r
+ heatNestedTemplate, heatNestedTemplate.getTemplateName());\r
+ // Indicate we have deployed it in the DB\r
+ heatNestedArtifact.incrementDeployedInDB();\r
+ break;\r
+ case ASDCConfiguration.HEAT_VOL:\r
+\r
+ // Add this one for logging\r
+ artifactListForLogging.add(ASDCElementInfo.createElementFromVfArtifactInfo(\r
+ heatNestedArtifact.getArtifactInfo()));\r
+ catalogDB.saveNestedHeatTemplate(heatVolumeTemplate.getArtifactUuid(),\r
+ heatNestedTemplate, heatNestedTemplate.getTemplateName());\r
+ // Indicate we have deployed it in the DB\r
+ heatNestedArtifact.incrementDeployedInDB();\r
+ break;\r
+\r
+ default:\r
+ break;\r
+\r
+ }\r
+ } else { // Assume it belongs to HEAT MAIN\r
+ // Add this one for logging\r
+ artifactListForLogging.add(ASDCElementInfo\r
+ .createElementFromVfArtifactInfo(heatNestedArtifact.getArtifactInfo()));\r
+\r
+ catalogDB.saveNestedHeatTemplate(heatMainTemplate.getArtifactUuid(),\r
+ heatNestedTemplate, heatNestedTemplate.getTemplateName());\r
+ // Indicate we have deployed it in the DB\r
+ heatNestedArtifact.incrementDeployedInDB();\r
+ }\r
+ }\r
+ }\r
+\r
+ if(mainEnvArtifactInfo != null) {\r
+ heatEnv = (HeatEnvironment)vfResourceStructure.getArtifactsMapByUUID()\r
+ .get(mainEnvArtifactInfo.getArtifactUUID()).getCatalogObject();\r
+\r
+ // Set HeatEnvironmentArtifactUUID to use later when setting the\r
+ // VfModule\r
+ toscaResourceStruct.setEnvHeatTemplateUUID(heatEnv.getArtifactUuid());\r
+\r
+ // Add this one for logging\r
+ artifactListForLogging\r
+ .add(ASDCElementInfo.createElementFromVfArtifactInfo(mainEnvArtifactInfo));\r
+\r
+ catalogDB.saveHeatEnvironment(heatEnv);\r
+ // Indicate we have deployed it in the DB\r
+ vfResourceStructure.getArtifactsMapByUUID().get(mainEnvArtifactInfo.getArtifactUUID())\r
+ .incrementDeployedInDB();\r
+ }\r
+\r
+ // here we expect one VFModule to be there\r
+ // VfResourceInstaller.createVfModule(vfModuleStructure,heatMainTemplate,\r
+ // heatVolumeTemplate, heatEnv, heatVolumeEnv);\r
+ // VfModule vfModule = vfModuleStructure.getCatalogVfModule();\r
+\r
+ // Add this one for logging\r
+ // artifactListForLogging.add(ASDCElementInfo.createElementFromVfModuleStructure(vfModuleStructure));\r
+\r
+ // catalogDB.saveOrUpdateVfModule(vfModule);\r
+\r
+ List<org.openecomp.sdc.toscaparser.api.Group> vfGroups =\r
+ toscaResourceStruct.getSdcCsarHelper().getVfModulesByVf(vfCustomizationUUID);\r
+ logger.debug("vfGroups:" + vfGroups.toString());\r
+\r
+ Collections.sort(vfGroups, new Comparator<org.openecomp.sdc.toscaparser.api.Group>() {\r
+\r
+ @Override\r
+ public int compare(org.openecomp.sdc.toscaparser.api.Group group1,\r
+ org.openecomp.sdc.toscaparser.api.Group group2) {\r
+\r
+ // Field name1Field = group1.class.getDeclaredField("name");\r
+ // name1Field.setAccessible(true);\r
+ String thisName = group1.getName(); // (String)\r
+ // name1Field.get(group1);\r
+ String thatName = group2.getName(); // (String)\r
+ // name1Field.get(group2);\r
+\r
+ Matcher m = lastDigit.matcher(thisName);\r
+ Matcher m2 = lastDigit.matcher(thatName);\r
+\r
+ String thisDigit = "0";\r
+ String thatDigit = "0";\r
+ if(m.find()) {\r
+ thisDigit = m.group();\r
+ } else {\r
+ return -1;\r
+ }\r
+ if(m2.find()) {\r
+ thatDigit = m2.group();\r
+ } else {\r
+ return 1;\r
+ }\r
+\r
+ return new Integer(thisDigit).compareTo(new Integer(thatDigit));\r
+\r
+ }\r
+ });\r
+\r
+ logger.debug("vfGroupsAfter:" + vfGroups.toString());\r
+\r
+ for(Group group : vfGroups) {\r
+\r
+ // boolean saveVFModule = createVFModule(group, nodeTemplate,\r
+ // toscaResourceStruct, vfMetadata);\r
+ if(vfMetadata.getVfModuleModelCustomizationUUID() == null) {\r
+ logger.debug("NULL 1");\r
+ } else {\r
+ logger.debug("vfMetadata.getMCU=" + vfMetadata.getVfModuleModelCustomizationUUID());\r
+ }\r
+ if(group.getMetadata() == null) {\r
+ logger.debug("NULL 3");\r
+ } else {\r
+ logger.debug("group.getMetadata().getValue() = "\r
+ + group.getMetadata().getValue("vfModuleModelCustomizationUUID"));\r
+ }\r
+ if(vfMetadata.getVfModuleModelCustomizationUUID()\r
+ .equals(group.getMetadata().getValue("vfModuleModelCustomizationUUID"))) {\r
+ logger.debug("Found a match at " + vfMetadata.getVfModuleModelCustomizationUUID());\r
+ createVFModule(group, nodeTemplate, toscaResourceStruct, vfResourceStructure,\r
+ vfMetadata);\r
+\r
+ catalogDB.saveOrUpdateVfModule(toscaResourceStruct.getCatalogVfModule());\r
+\r
+ catalogDB.saveOrUpdateVfModuleCustomization(\r
+ toscaResourceStruct.getCatalogVfModuleCustomization());\r
+\r
+ catalogDB.saveVnfResourceToVfModuleCustomization(\r
+ toscaResourceStruct.getCatalogVnfResourceCustomization(),\r
+ toscaResourceStruct.getCatalogVfModuleCustomization());\r
+\r
+ } else {\r
+ if(toscaResourceStruct.getCatalogVfModuleCustomization() != null) {\r
+ logger.debug("No match for " + toscaResourceStruct.getCatalogVfModuleCustomization()\r
+ .getModelCustomizationUuid());\r
+ } else {\r
+ logger.debug("No match for vfModuleModelCustomizationUUID");\r
+ }\r
+ }\r
+\r
+ }\r
+\r
+ } // Commented out to process VFModules each time\r
+\r
+ // Here we expect many HEAT_TEMPLATE files to be there\r
+ if(vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT_ARTIFACT)) {\r
+ for(VfModuleArtifact heatArtifact : vfModuleStructure.getArtifactsMap()\r
+ .get(ASDCConfiguration.HEAT_ARTIFACT)) {\r
+\r
+ HeatFiles heatFile = (HeatFiles)heatArtifact.getCatalogObject();\r
+\r
+ // Add this one for logging\r
+ artifactListForLogging.add(\r
+ ASDCElementInfo.createElementFromVfArtifactInfo(heatArtifact.getArtifactInfo()));\r
+\r
+ if(toscaResourceStruct.getCatalogVfModule() != null && heatFile != null) {\r
+ catalogDB.saveVfModuleToHeatFiles(\r
+ toscaResourceStruct.getCatalogVfModule().getModelUUID(), heatFile);\r
+ }\r
+ // Indicate we will deploy it in the DB\r
+ heatArtifact.incrementDeployedInDB();\r
+ }\r
+ }\r
+\r
+ }\r
+\r
+ }\r
\r
/* END OF HEAT TABLE POPULATION\r
* ***************************************************************************************************\r