\r
package org.openecomp.mso.asdc.installer.heat;\r
\r
+import java.sql.SQLIntegrityConstraintViolationException;\r
import java.sql.Timestamp;\r
import java.text.SimpleDateFormat;\r
import java.util.ArrayList;\r
import java.util.Map;\r
import java.util.Set;\r
import java.util.regex.Pattern;\r
-import java.util.Collections;\r
import java.util.regex.Matcher;\r
import java.util.Comparator;\r
\r
import org.hibernate.exception.ConstraintViolationException;\r
import org.hibernate.exception.LockAcquisitionException;\r
+import org.openecomp.sdc.api.consumer.IComponentDoneStatusMessage;\r
//import org.openecomp.generic.tosca.parser.model.Metadata;\r
//import org.openecomp.generic.tosca.parser.model.NodeTemplate;\r
import org.openecomp.sdc.api.notification.IArtifactInfo;\r
+import org.openecomp.sdc.api.notification.IStatusData;\r
import org.openecomp.sdc.api.notification.IVfModuleMetadata;\r
+import org.openecomp.sdc.api.results.IDistributionClientResult;\r
import org.openecomp.sdc.tosca.parser.impl.SdcPropertyNames;\r
import org.openecomp.sdc.toscaparser.api.Group;\r
import org.openecomp.sdc.toscaparser.api.NodeTemplate;\r
import org.openecomp.sdc.toscaparser.api.Property;\r
import org.openecomp.sdc.toscaparser.api.elements.Metadata;\r
import org.openecomp.sdc.toscaparser.api.parameters.Input;\r
+import org.openecomp.sdc.utils.DistributionStatusEnum;\r
import org.openecomp.mso.asdc.client.ASDCConfiguration;\r
import org.openecomp.mso.asdc.client.exceptions.ArtifactInstallerException;\r
import org.openecomp.mso.asdc.installer.ASDCElementInfo;\r
import org.openecomp.mso.asdc.installer.VfModuleArtifact;\r
import org.openecomp.mso.asdc.installer.VfModuleStructure;\r
import org.openecomp.mso.asdc.installer.VfResourceStructure;\r
+import org.openecomp.mso.asdc.tenantIsolation.DistributionStatus;\r
+import org.openecomp.mso.asdc.tenantIsolation.WatchdogDistribution;\r
+import org.openecomp.mso.asdc.util.ASDCNotificationLogging;\r
import org.openecomp.mso.asdc.util.YamlEditor;\r
import org.openecomp.mso.db.catalog.CatalogDatabase;\r
import org.openecomp.mso.db.catalog.beans.AllottedResource;\r
import org.openecomp.mso.db.catalog.beans.VnfResourceCustomization;\r
import org.openecomp.mso.logger.MessageEnum;\r
import org.openecomp.mso.logger.MsoLogger;\r
+import org.openecomp.mso.requestsdb.WatchdogComponentDistributionStatusDb;\r
+import org.openecomp.mso.requestsdb.WatchdogDistributionStatusDb;\r
+import org.openecomp.mso.requestsdb.WatchdogServiceModVerIdLookupDb;\r
\r
public class ToscaResourceInstaller {// implements IVfResourceInstaller {\r
\r
throw new ArtifactInstallerException("Exception caught during checking existence of the VNF Resource.", e);\r
}\r
}\r
+ \r
+ public void installTheComponentStatus(IStatusData iStatus) throws ArtifactInstallerException {\r
+ \r
+ logger.debug("Entering installTheComponentStatus for distributionId " + iStatus.getDistributionID() + " and ComponentName " + iStatus.getComponentName());\r
+ \r
+ WatchdogComponentDistributionStatusDb wdComponentDistributionStatus = WatchdogComponentDistributionStatusDb.getInstance();\r
+ \r
+ WatchdogDistributionStatusDb wdDistributionStatus = WatchdogDistributionStatusDb.getInstance();\r
+ \r
+ \r
+ try{\r
+ //Check to make sure the distributionId exists in the Distribution Status table first. If not then we'll need to add it\r
+ String distributionId = wdDistributionStatus.getWatchdogDistributionId(iStatus.getDistributionID());\r
+ \r
+ if(distributionId == null){\r
+ // Insert the record into the parent table first - WatchDogDistributionStatus\r
+ wdDistributionStatus.insertWatchdogDistributionId(iStatus.getDistributionID()); \r
+ }\r
+ \r
+ wdComponentDistributionStatus.insertWatchdogComponentDistributionStatus(iStatus.getDistributionID(), iStatus.getComponentName(), iStatus.getStatus().toString());\r
+ \r
+ \r
+ WatchdogDistribution wd = new WatchdogDistribution();\r
+\r
+ String distributionStatus = wd.getOverallDistributionStatus(iStatus.getDistributionID());\r
+ \r
+ logger.debug("Distribution status in installTheComponentStatus is : " + distributionStatus); \r
+ \r
+ }catch (Exception e){\r
+ logger.debug("Exception caught in installTheComponentStatus " + e.getMessage());\r
+ throw new ArtifactInstallerException("Exception caught in installTheComponentStatus " + e.getMessage());\r
+ }\r
+\r
+ } \r
+ \r
\r
- //@Override\r
public void installTheResource(ToscaResourceStructure toscaResourceStruct, VfResourceStructure vfResourceStruct) throws ArtifactInstallerException {\r
\r
logger.debug("installTheResource is called");\r
List<ASDCElementInfo> artifactListForLogging = new ArrayList<>();\r
\r
CatalogDatabase catalogDB = CatalogDatabase.getInstance();\r
+ \r
+ WatchdogServiceModVerIdLookupDb wdLookupDB = WatchdogServiceModVerIdLookupDb.getInstance();\r
+ \r
+ WatchdogDistributionStatusDb wdDistributionStatus = WatchdogDistributionStatusDb.getInstance();\r
+ \r
+ WatchdogComponentDistributionStatusDb wdComponentDistributionStatus = WatchdogComponentDistributionStatusDb.getInstance();\r
// 2. Create the VFModules/VNFResource objects by linking them to the\r
// objects created before and store them in Resource/module structure\r
// Opening a DB transaction, starting from here\r
\r
catalogDB.saveToscaCsar(toscaResourceStruct.getCatalogToscaCsar());\r
\r
- ToscaResourceInstaller.createService(toscaResourceStruct);\r
+ ToscaResourceInstaller.createService(toscaResourceStruct, vfResourceStruct);\r
\r
catalogDB.saveService(toscaResourceStruct.getCatalogService());\r
+ \r
+ wdLookupDB.insertWatchdogServiceModVerIdLookup(vfResourceStructure.getNotification().getDistributionID(), vfResourceStructure.getNotification().getServiceUUID());\r
+ \r
+ wdDistributionStatus.insertWatchdogDistributionId(vfResourceStructure.getNotification().getDistributionID());\r
\r
\r
/* VNF POPULATION\r
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
-\r
- String vfCustomizationUUID = toscaResourceStruct.getSdcCsarHelper().getMetadataPropertyValue(metadata,\r
- SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID);\r
- logger.debug("vfCustomizationUUID=" + vfCustomizationUUID);\r
-\r
- // extract VF metadata\r
- createVnfResource(nodeTemplate, toscaResourceStruct);\r
-\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
- if(vnfResource != null) {\r
- toscaResourceStruct.setVnfAlreadyInstalled(true);\r
- }\r
+ for (NodeTemplate nodeTemplate : vfNodeTemplatesList) {\r
+ logger.debug("nodeTemplate outerLoop=" + outerLoop++);\r
+ // extract VF metadata\r
+ \r
+ Metadata metadata = nodeTemplate.getMetaData();\r
+ \r
+ \r
+ \r
+ //************************Flexware code*******************************************\r
+ \r
+ String serviceType = toscaResourceStruct.getCatalogService().getServiceType();\r
+ \r
+ \r
+ if(serviceType != null && serviceType.equalsIgnoreCase("Flexware")){\r
+ \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
\r
- if(!toscaResourceStruct.isVnfAlreadyInstalled()) {\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
\r
- catalogDB.saveOrUpdateVnfResource(toscaResourceStruct.getCatalogVnfResource());\r
+ }\r
+ \r
+ \r
+ // *************************** END of FLEXWARE CODE ****************************************************\r
+ \r
+ String vfCustomizationCategory = toscaResourceStruct.getSdcCsarHelper().getMetadataPropertyValue(metadata, SdcPropertyNames.PROPERTY_NAME_CATEGORY);\r
+ \r
+ if(!vfCustomizationCategory.equalsIgnoreCase("Allotted Resource")) // Do not treat Allotted Resources as VNF resources\r
+ {\r
\r
- }\r
+ String vfCustomizationUUID = toscaResourceStruct.getSdcCsarHelper().getMetadataPropertyValue(metadata, SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID);\r
+ logger.debug("vfCustomizationUUID=" + vfCustomizationUUID);\r
\r
- boolean saveVnfCustomization = catalogDB\r
- .saveVnfResourceCustomization(toscaResourceStruct.getCatalogVnfResourceCustomization());\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
\r
- if(saveVnfCustomization) {\r
- catalogDB.saveServiceToResourceCustomization(\r
- toscaResourceStruct.getCatalogVfServiceToResourceCustomization());\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
- * HEAT TABLE POPULATION\r
- * *********************************************************************************\r
- * **********************\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
\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
+ // 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
\r
- // Here we set the right db structure according to the Catalog\r
- // DB\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
\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
+ } 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
\r
- HeatTemplate heatMainTemplate = null;\r
- HeatEnvironment heatEnv;\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
- HeatTemplate heatVolumeTemplate = null;\r
- HeatEnvironment heatVolumeEnv;\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
\r
- IVfModuleData vfMetadata = vfModuleStructure.getVfModuleMetadata();\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
+ catalogDB.saveVnfResourceCustomization(toscaResourceStruct.getCatalogVnfResourceCustomization()); \r
\r
- if(vfModuleStructure.getArtifactsMap().containsKey(ASDCConfiguration.HEAT)) {\r
+ catalogDB.saveServiceToResourceCustomization(toscaResourceStruct.getCatalogVfServiceToResourceCustomization());\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
+ List<org.openecomp.sdc.toscaparser.api.Group> vfGroups = toscaResourceStruct.getSdcCsarHelper().getVfModulesByVf(vfCustomizationUUID);\r
+ logger.debug("vfGroups:" + vfGroups.toString());\r
+ \r
vfGroups.sort((group1, group2) -> {\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
+ });\r
+ \r
+ logger.debug("vfGroupsAfter:" + vfGroups.toString());\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
+ \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
- return -1;\r
+ logger.debug("vfMetadata.getMCU=" + vfMetadata.getVfModuleModelCustomizationUUID());\r
}\r
- if (m2.find()) {\r
- thatDigit = m2.group();\r
+ if (group.getMetadata() == null) {\r
+ logger.debug("NULL 3");\r
} else {\r
- return 1;\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
\r
- return new Integer(thisDigit).compareTo(new Integer(thatDigit));\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
+ } 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 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
+ }\r
+ }\r
\r
/* END OF HEAT TABLE POPULATION\r
* ***************************************************************************************************\r
\r
for(NodeTemplate vlNode : nodeTemplatesVLList){\r
\r
- String networkResourceModelName = vlNode.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME).trim();\r
+ String networkResourceModelName = vlNode.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME);\r
\r
List<TempNetworkHeatTemplateLookup> networkHeatTemplateLookup = catalogDB.getTempNetworkHeatTemplateLookup(networkResourceModelName);\r
\r
//createServiceToResourceCustomization(toscaResourceStruct.getCatalogService(), toscaResourceStruct.getCatalogVnfResourceCustomization(), toscaResourceStruct);\r
\r
// catalogDB.saveToscaCsar(toscaResourceStruct.getCatalogToscaCsar());\r
- \r
+ wdComponentDistributionStatus.insertWatchdogComponentDistributionStatus(vfResourceStruct.getNotification().getDistributionID(), "SO", DistributionStatusEnum.COMPONENT_DONE_OK.name()); \r
\r
catalogDB.commit(); \r
- vfResourceStructure.setSuccessfulDeployment();\r
+ toscaResourceStruct.setSuccessfulDeployment();\r
\r
}catch(Exception e){\r
logger.debug("Exception :",e);\r
\r
+ wdDistributionStatus.insertWatchdogDistributionId(vfResourceStructure.getNotification().getDistributionID());\r
+ \r
+ wdComponentDistributionStatus.insertWatchdogComponentDistributionStatus(vfResourceStruct.getNotification().getDistributionID(), "SO", DistributionStatusEnum.COMPONENT_DONE_ERROR.name());\r
+ \r
+ wdDistributionStatus.updateWatchdogDistributionIdStatus(vfResourceStruct.getNotification().getDistributionID(), DistributionStatusEnum.DISTRIBUTION_COMPLETE_ERROR.name()); \r
+ \r
Throwable dbExceptionToCapture = e;\r
while (!(dbExceptionToCapture instanceof ConstraintViolationException || dbExceptionToCapture instanceof LockAcquisitionException)\r
&& (dbExceptionToCapture.getCause() != null)) {\r
logger.warn(MessageEnum.ASDC_ARTIFACT_ALREADY_DEPLOYED, vfResourceStructure.getResourceInstance().getResourceName(),\r
vfResourceStructure.getNotification().getServiceVersion(), "", "", MsoLogger.ErrorCode.DataError, "Exception - ASCDC Artifact already deployed", e);\r
} else {\r
- String elementToLog = (artifactListForLogging.size() > 0 ? artifactListForLogging.get(artifactListForLogging.size()-1).toString() : "No element listed");\r
+ String elementToLog = (artifactListForLogging.size() > 0 ? artifactListForLogging.get(artifactListForLogging.size()-1).toString() : "No element listed");\r
logger.error(MessageEnum.ASDC_ARTIFACT_INSTALL_EXC, elementToLog, "", "", MsoLogger.ErrorCode.DataError, "Exception caught during installation of " + vfResourceStructure.getResourceInstance().getResourceName() + ". Transaction rollback", e);\r
catalogDB.rollback();\r
throw new ArtifactInstallerException(\r
\r
}\r
\r
- private static void createService(ToscaResourceStructure toscaResourceStructure) {\r
+ private static void createService(ToscaResourceStructure toscaResourceStructure, VfResourceStructure vfResourceStructure) {\r
\r
toscaResourceStructure.getServiceMetadata();\r
\r
Service service = new Service();\r
\r
// Service \r
- if(serviceMetadata != null){ \r
+ if(serviceMetadata != null) { \r
\r
if(toscaResourceStructure.getServiceVersion() != null){\r
service.setVersion(toscaResourceStructure.getServiceVersion());\r
}\r
- \r
- service.setServiceType(toscaResourceStructure.getSdcCsarHelper().getMetadataPropertyValue(serviceMetadata, "serviceType"));\r
- service.setServiceRole(toscaResourceStructure.getSdcCsarHelper().getMetadataPropertyValue(serviceMetadata, "serviceRole"));\r
+ \r
+ service.setServiceType(serviceMetadata.getValue("serviceType"));\r
+ service.setServiceRole(serviceMetadata.getValue("serviceRole"));\r
\r
service.setDescription(serviceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));\r
service.setModelName(serviceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME));\r
service.setModelUUID(serviceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_UUID));\r
+ service.setEnvironmentContext(serviceMetadata.getValue("environmentContext"));\r
+ \r
+ \r
+ if(vfResourceStructure != null){\r
+ service.setWorkloadContext(vfResourceStructure.getNotification().getWorkloadContext());\r
+ }\r
//service.setVersion(serviceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_VERSION));\r
service.setModelInvariantUUID(serviceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID));\r
service.setCategory(serviceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_CATEGORY));\r
networkResource.setNeutronNetworkType("BASIC");\r
}\r
\r
- networkResource.setModelName(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME).trim()));\r
+ networkResource.setModelName(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME)));\r
\r
networkResource.setModelInvariantUUID(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID)));\r
networkResource.setModelUUID(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID)));\r
\r
toscaResourceStructure.setCatalogNetworkResource(networkResource); \r
\r
- networkResourceCustomization.setModelInstanceName(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME).trim()));\r
- networkResourceCustomization.setModelCustomizationUuid(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID).trim()));\r
- networkResourceCustomization.setNetworkResourceModelUuid(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID).trim()));\r
+ networkResourceCustomization.setModelInstanceName(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME)));\r
+ networkResourceCustomization.setModelCustomizationUuid(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)));\r
+ networkResourceCustomization.setNetworkResourceModelUuid(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID)));\r
\r
\r
- networkResourceCustomization.setNetworkTechnology(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKTECHNOLOGY)).trim());\r
- networkResourceCustomization.setNetworkType(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKTYPE)).trim());\r
- networkResourceCustomization.setNetworkRole(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKSCOPE)).trim());\r
- networkResourceCustomization.setNetworkScope(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKSCOPE)).trim());\r
+ networkResourceCustomization.setNetworkTechnology(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKTECHNOLOGY)));\r
+ networkResourceCustomization.setNetworkType(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKTYPE)));\r
+ networkResourceCustomization.setNetworkRole(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKSCOPE)));\r
+ networkResourceCustomization.setNetworkScope(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NETWORKSCOPE)));\r
\r
toscaResourceStructure.setCatalogNetworkResourceCustomization(networkResourceCustomization);\r
\r
ServiceToResourceCustomization serviceToResourceCustomization = new ServiceToResourceCustomization();\r
serviceToResourceCustomization.setServiceModelUUID(toscaResourceStructure.getCatalogService().getModelUUID());\r
- serviceToResourceCustomization.setResourceModelCustomizationUUID(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID).trim()));\r
+ serviceToResourceCustomization.setResourceModelCustomizationUUID(testNull(networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)));\r
serviceToResourceCustomization.setModelType("network");\r
\r
toscaResourceStructure.setCatalogVlServiceToResourceCustomization(serviceToResourceCustomization);\r
\r
//toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_AVAILABILITYZONECOUNT)\r
\r
- vnfResource.setModelInvariantUuid(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID).trim()));\r
- vnfResource.setModelName(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME).trim()));\r
- vnfResource.setModelUuid(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID).trim()));\r
+ vnfResource.setModelInvariantUuid(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID)));\r
+ vnfResource.setModelName(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME)));\r
+ vnfResource.setModelUuid(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID)));\r
\r
- vnfResource.setVersion(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION).trim()));\r
- vnfResource.setDescription(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION).trim()));\r
+ vnfResource.setVersion(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION)));\r
+ vnfResource.setDescription(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION)));\r
vnfResource.setOrchestrationMode("HEAT");\r
vnfResource.setToscaNodeType(testNull(vfNodeTemplate.getType()));\r
- vnfResource.setAicVersionMax(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES).trim()));\r
- vnfResource.setAicVersionMin(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MININSTANCES).trim()));\r
- // vnfResource.setHeatTemplateArtifactUUId(toscaResourceStructure.getHeatTemplateUUID());\r
- vnfResource.setCategory(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CATEGORY));\r
- vnfResource.setSubCategory(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_SUBCATEGORY));\r
- // vfNodeTemplate.getProperties()\r
- toscaResourceStructure.setCatalogVnfResource(vnfResource);\r
-\r
+ vnfResource.setAicVersionMax(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES)));\r
+ vnfResource.setAicVersionMin(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MININSTANCES)));\r
+ //vnfResource.setHeatTemplateArtifactUUId(toscaResourceStructure.getHeatTemplateUUID());\r
+ \r
+ // vfNodeTemplate.getProperties()\r
+ toscaResourceStructure.setCatalogVnfResource(vnfResource); \r
+ \r
VnfResourceCustomization vnfResourceCustomization = new VnfResourceCustomization();\r
- vnfResourceCustomization.setModelCustomizationUuid(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID).trim()));\r
+ vnfResourceCustomization.setModelCustomizationUuid(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)));\r
vnfResourceCustomization.setModelInstanceName(vfNodeTemplate.getName());\r
\r
- vnfResourceCustomization.setNfFunction(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFFUNCTION)).trim());\r
- vnfResourceCustomization.setNfNamingCode(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFCODE)).trim());\r
- vnfResourceCustomization.setNfRole(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFROLE)).trim());\r
- vnfResourceCustomization.setNfType(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFTYPE)).trim());\r
+ vnfResourceCustomization.setNfFunction(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFFUNCTION)));\r
+ vnfResourceCustomization.setNfNamingCode(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFCODE)));\r
+ vnfResourceCustomization.setNfRole(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFROLE)));\r
+ vnfResourceCustomization.setNfType(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFTYPE)));\r
\r
\r
- vnfResourceCustomization.setVnfResourceModelUuid(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID).trim()));\r
- vnfResourceCustomization.setAvailabilityZoneMaxCount(Integer.getInteger(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_AVAILABILITYZONECOUNT).trim()));\r
+ vnfResourceCustomization.setMultiStageDesign(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(vfNodeTemplate, "multi_stage_design"));\r
+ \r
+ \r
+ vnfResourceCustomization.setVnfResourceModelUuid(testNull(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID)));\r
+ vnfResourceCustomization.setAvailabilityZoneMaxCount(Integer.getInteger(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_AVAILABILITYZONECOUNT)));\r
+ \r
+ //vnfResourceCustomization.setMultiStageDesign(vfNodeTemplate.getMetaData().getValue("multi_stage_design"));\r
+ //vnfResourceCustomization.setMultiStageDesign(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_AVAILABILITYZONECOUNT).trim());\r
+ \r
\r
- vnfResourceCustomization.setMaxInstances(Integer.getInteger(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES).trim()));\r
- vnfResourceCustomization.setMinInstances(Integer.getInteger(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MININSTANCES).trim()));\r
+ vnfResourceCustomization.setMaxInstances(Integer.getInteger(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES)));\r
+ vnfResourceCustomization.setMinInstances(Integer.getInteger(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MININSTANCES)));\r
\r
\r
\r
\r
ServiceToResourceCustomization serviceToResourceCustomization = new ServiceToResourceCustomization();\r
serviceToResourceCustomization.setServiceModelUUID(toscaResourceStructure.getCatalogService().getModelUUID());\r
- serviceToResourceCustomization.setResourceModelCustomizationUUID(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID).trim());\r
+ serviceToResourceCustomization.setResourceModelCustomizationUUID(vfNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID));\r
serviceToResourceCustomization.setModelType("vnf");\r
\r
toscaResourceStructure.setCatalogVfServiceToResourceCustomization(serviceToResourceCustomization);\r
private static void createAllottedResource(NodeTemplate nodeTemplate, ToscaResourceStructure toscaResourceStructure) {\r
AllottedResource allottedResource = new AllottedResource();\r
\r
- allottedResource.setModelUuid(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID).trim()));\r
- allottedResource.setModelInvariantUuid(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID).trim()));\r
- allottedResource.setModelName(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME).trim()));\r
- allottedResource.setModelVersion(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION).trim()));\r
+ allottedResource.setModelUuid(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID)));\r
+ allottedResource.setModelInvariantUuid(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID)));\r
+ allottedResource.setModelName(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NAME)));\r
+ allottedResource.setModelVersion(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_VERSION)));\r
allottedResource.setToscaNodeType(testNull(nodeTemplate.getType()));\r
+ allottedResource.setSubcategory(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_SUBCATEGORY)));\r
+ allottedResource.setDescription(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION));\r
\r
toscaResourceStructure.setAllottedResource(allottedResource);\r
\r
AllottedResourceCustomization allottedResourceCustomization = new AllottedResourceCustomization();\r
- allottedResourceCustomization.setModelCustomizationUuid(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID).trim()));\r
+ allottedResourceCustomization.setModelCustomizationUuid(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)));\r
allottedResourceCustomization.setModelInstanceName(nodeTemplate.getName());\r
- allottedResourceCustomization.setArModelUuid(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID).trim()));\r
+ allottedResourceCustomization.setArModelUuid(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_UUID)));\r
+ \r
\r
- allottedResourceCustomization.setNfFunction(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFFUNCTION)).trim());\r
- allottedResourceCustomization.setNfNamingCode(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFCODE)).trim());\r
- allottedResourceCustomization.setNfRole(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFROLE)).trim());\r
- allottedResourceCustomization.setNfType(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFTYPE)).trim());\r
+ allottedResourceCustomization.setProvidingServiceModelInvariantUuid(toscaResourceStructure.getCatalogService().getModelInvariantUUID());\r
+ allottedResourceCustomization.setProvidingServiceModelUuid(toscaResourceStructure.getCatalogService().getModelUUID());\r
+ allottedResourceCustomization.setProvidingServiceModelName(toscaResourceStructure.getCatalogService().getModelName());\r
+ allottedResourceCustomization.setNfFunction(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFFUNCTION)));\r
+ allottedResourceCustomization.setNfNamingCode(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFCODE)));\r
+ allottedResourceCustomization.setNfRole(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFROLE)));\r
+ allottedResourceCustomization.setNfType(testNull(toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(nodeTemplate, SdcPropertyNames.PROPERTY_NAME_NFTYPE)));\r
+ allottedResourceCustomization.setMinInstances(Integer.getInteger(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MININSTANCES)));\r
+ allottedResourceCustomization.setMaxInstances(Integer.getInteger(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_MAXINSTANCES)));\r
+ allottedResourceCustomization.setTargetNetworkRole(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_NETWORKROLE));\r
\r
toscaResourceStructure.setCatalogAllottedResourceCustomization(allottedResourceCustomization);\r
\r
ServiceToResourceCustomization serviceToResourceCustomization = new ServiceToResourceCustomization();\r
serviceToResourceCustomization.setServiceModelUUID(toscaResourceStructure.getCatalogService().getModelUUID());\r
- serviceToResourceCustomization.setResourceModelCustomizationUUID(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID).trim()));\r
+ serviceToResourceCustomization.setResourceModelCustomizationUUID(testNull(nodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)));\r
serviceToResourceCustomization.setModelType("allottedResource");\r
\r
toscaResourceStructure.setCatalogAllottedServiceToResourceCustomization(serviceToResourceCustomization);\r
}\r
\r
private static String testNull(Object object) {\r
- if (object == null) {\r
- return "";\r
- } else if ("null".equals(object)) {\r
+ \r
+ \r
+ if(object == null){\r
return null;\r
- }else if (object instanceof Integer) {\r
+ }else if (object != null && object.equals("NULL")) {\r
+ return null;\r
+ }else if (object != null && object instanceof Integer) {\r
return object.toString();\r
- } else if (object instanceof String) {\r
+ } else if (object != null && object instanceof String) {\r
return (String)object;\r
} else {\r
return "Type not recognized";\r
\r
return new Timestamp(new Date().getTime());\r
}\r
-\r
-}
\ No newline at end of file
+}\r