From d378c37fbd1ecec7b43394926f1ca32a695e07de Mon Sep 17 00:00:00 2001 From: vasraz Date: Mon, 22 Mar 2021 15:33:06 +0000 Subject: Reformat openecomp-be Signed-off-by: Vasyl Razinkov Issue-ID: SDC-3449 Change-Id: I13e02322f8e00820cc5a1d85752caaeda9bf10d1 --- .../services/ManualVspToscaGenerationService.java | 559 ++++++++++----------- .../sdc/generator/core/utils/GeneratorUtils.java | 112 ++--- 2 files changed, 303 insertions(+), 368 deletions(-) (limited to 'openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src') diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java index 5a18155f03..8fd2d090db 100644 --- a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java +++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.openecomp.sdc.generator.core.services; import java.util.ArrayList; @@ -53,344 +52,298 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic; */ public class ManualVspToscaGenerationService { - //Map of the abstract node template id and substitution node type - private Map abstractSubstitutionIdTypes = new HashMap<>(); - //Map of service template name and service template for the generated service templates - private Map generatedServiceTemplates = new HashMap<>(); - + //Map of the abstract node template id and substitution node type + private Map abstractSubstitutionIdTypes = new HashMap<>(); + //Map of service template name and service template for the generated service templates + private Map generatedServiceTemplates = new HashMap<>(); + + /** + * Create manual vsp tosca service model tosca service model. + * + * @param vspModelInfo the vsp model info + * @return the tosca service model + */ + public ToscaServiceModel createManualVspToscaServiceModel(VspModelInfo vspModelInfo) { + ToscaServiceModel toscaServiceModel = new ToscaServiceModel(); + Map serviceTemplates = new HashMap<>(GlobalTypesGenerator.getGlobalTypesServiceTemplate(OnboardingTypesEnum.MANUAL)); + toscaServiceModel.setServiceTemplates(serviceTemplates); + toscaServiceModel + .setEntryDefinitionServiceTemplate(Constants.MAIN_TEMPLATE_NAME + GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX); + createToscaFromVspData(vspModelInfo, toscaServiceModel); + for (Map.Entry serviceTemplateEntry : generatedServiceTemplates.entrySet()) { + ToscaUtil.addServiceTemplateToMapWithKeyFileName(serviceTemplates, serviceTemplateEntry.getValue()); + } + return toscaServiceModel; + } - /** - * Create manual vsp tosca service model tosca service model. - * - * @param vspModelInfo the vsp model info - * @return the tosca service model - */ - public ToscaServiceModel createManualVspToscaServiceModel(VspModelInfo vspModelInfo) { - ToscaServiceModel toscaServiceModel = new ToscaServiceModel(); - Map serviceTemplates = new HashMap<>(GlobalTypesGenerator - .getGlobalTypesServiceTemplate(OnboardingTypesEnum.MANUAL)); - toscaServiceModel.setServiceTemplates(serviceTemplates); - toscaServiceModel.setEntryDefinitionServiceTemplate(Constants.MAIN_TEMPLATE_NAME - + GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX); - createToscaFromVspData(vspModelInfo, toscaServiceModel); - for (Map.Entry serviceTemplateEntry : - generatedServiceTemplates.entrySet()) { - ToscaUtil.addServiceTemplateToMapWithKeyFileName(serviceTemplates, serviceTemplateEntry - .getValue()); + private void createToscaFromVspData(VspModelInfo vspModelInfo, ToscaServiceModel toscaServiceModel) { + //Only one component supported + Optional componentName = getComponentNameFromVspModel(vspModelInfo); + if (componentName.isPresent()) { + //Create main service template + ServiceTemplate mainServiceTemplate = createMainServiceTemplate(vspModelInfo); + generatedServiceTemplates.put(Constants.MAIN_TEMPLATE_NAME, mainServiceTemplate); + //Create substitution service template + for (Map.Entry entry : abstractSubstitutionIdTypes.entrySet()) { + ServiceTemplate substitutionServiceTemplate = createSubstitutionServiceTemplate(componentName.get(), entry.getValue(), vspModelInfo, + toscaServiceModel); + generatedServiceTemplates.put(componentName.get(), substitutionServiceTemplate); + } + } } - return toscaServiceModel; - } - private void createToscaFromVspData(VspModelInfo vspModelInfo, - ToscaServiceModel toscaServiceModel) { - //Only one component supported - Optional componentName = getComponentNameFromVspModel(vspModelInfo); - if (componentName.isPresent()) { - //Create main service template - ServiceTemplate mainServiceTemplate = createMainServiceTemplate(vspModelInfo); - generatedServiceTemplates.put(Constants.MAIN_TEMPLATE_NAME, mainServiceTemplate); - //Create substitution service template - for (Map.Entry entry : abstractSubstitutionIdTypes.entrySet()) { - ServiceTemplate substitutionServiceTemplate = - createSubstitutionServiceTemplate(componentName.get(), entry.getValue(), vspModelInfo, - toscaServiceModel); - generatedServiceTemplates.put(componentName.get(), substitutionServiceTemplate); - } + private Optional getComponentNameFromVspModel(VspModelInfo vspModelInfo) { + String componentName = null; + if (MapUtils.isNotEmpty(vspModelInfo.getComponents())) { + //supported for single component only + componentName = vspModelInfo.getComponents().entrySet().iterator().next().getValue(); + } + return Optional.ofNullable(componentName); } - } + private ServiceTemplate createMainServiceTemplate(VspModelInfo vspModelInfo) { + ServiceTemplate mainServiceTemplate = createInitMainServiceTemplate(vspModelInfo.getReleaseVendor()); + Map components = vspModelInfo.getComponents(); + if (MapUtils.isNotEmpty(components)) { + //Currently since only one component is supported we can fetch the component in this manner. + + // May be need to revisited for supporting multiple components + String componentId = components.entrySet().iterator().next().getKey(); + createVnfConfigurationNodeTemplate(mainServiceTemplate, vspModelInfo); + createVnfNodeTemplate(mainServiceTemplate, vspModelInfo, componentId); + } + return mainServiceTemplate; + } - private Optional getComponentNameFromVspModel(VspModelInfo vspModelInfo) { - String componentName = null; - if (MapUtils.isNotEmpty(vspModelInfo.getComponents())) { - //supported for single component only - componentName = vspModelInfo.getComponents().entrySet().iterator().next().getValue(); + private void createVnfConfigurationNodeTemplate(ServiceTemplate mainServiceTemplate, VspModelInfo vspModelInfo) { + Optional componentName = getComponentNameFromVspModel(vspModelInfo); + if (componentName.isPresent()) { + NodeTemplate vnfConfigurationNodeTemplate = new NodeTemplate(); + vnfConfigurationNodeTemplate.setType(ToscaNodeType.VNF_CONFIG_NODE_TYPE); + if (Objects.nonNull(vspModelInfo.getAllowedFlavors())) { + Map properties = new LinkedHashMap<>(); + properties.put(GeneratorConstants.ALLOWED_FLAVORS_PROPERTY, vspModelInfo.getAllowedFlavors()); + vnfConfigurationNodeTemplate.setProperties(properties); + } + String nodeTemplateId = componentName.get() + GeneratorConstants.VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX; + DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId, vnfConfigurationNodeTemplate); + } } - return Optional.ofNullable(componentName); - } - private ServiceTemplate createMainServiceTemplate(VspModelInfo vspModelInfo) { - ServiceTemplate mainServiceTemplate = createInitMainServiceTemplate(vspModelInfo - .getReleaseVendor()); - Map components = vspModelInfo.getComponents(); - if (MapUtils.isNotEmpty(components)) { - //Currently since only one component is supported we can fetch the component in this manner. - // May be need to revisited for supporting multiple components - String componentId = components.entrySet().iterator().next().getKey(); - createVnfConfigurationNodeTemplate(mainServiceTemplate, vspModelInfo); - createVnfNodeTemplate(mainServiceTemplate, vspModelInfo, componentId); + private void createVnfNodeTemplate(ServiceTemplate mainServiceTemplate, VspModelInfo vspModelInfo, String componentId) { + Optional componentName = getComponentNameFromVspModel(vspModelInfo); + if (componentName.isPresent()) { + NodeTemplate vnfNodeTemplate = new NodeTemplate(); + vnfNodeTemplate.setType(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE); + List directiveList = new ArrayList<>(); + directiveList.add(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE); + vnfNodeTemplate.setDirectives(directiveList); + vnfNodeTemplate.setProperties(getVnfNodeTemplateProperties(vspModelInfo, componentId)); + DataModelUtil.addSubstitutionFilteringProperty(getSubstitutionServiceTemplateFileName(componentName.get()), vnfNodeTemplate, 1); + //Enable below if we need "abstract_" as prefix like we have in Unified model + + //String nodeTemplateId = + + // Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX + componentName + "VNF_NODE_TEMPLATE_ID_SUFFIX"; + String nodeTemplateId = componentName.get() + GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX; + DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId, vnfNodeTemplate); + abstractSubstitutionIdTypes.put(componentName.get(), ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE); + } } - return mainServiceTemplate; - } - private void createVnfConfigurationNodeTemplate(ServiceTemplate mainServiceTemplate, - VspModelInfo vspModelInfo) { - Optional componentName = getComponentNameFromVspModel(vspModelInfo); - if (componentName.isPresent()) { - NodeTemplate vnfConfigurationNodeTemplate = new NodeTemplate(); - vnfConfigurationNodeTemplate.setType(ToscaNodeType.VNF_CONFIG_NODE_TYPE); - if (Objects.nonNull(vspModelInfo.getAllowedFlavors())) { + private Map getVnfNodeTemplateProperties(VspModelInfo vspModelInfo, String componentId) { Map properties = new LinkedHashMap<>(); - properties.put(GeneratorConstants.ALLOWED_FLAVORS_PROPERTY, vspModelInfo.getAllowedFlavors()); - vnfConfigurationNodeTemplate.setProperties(properties); - } - String nodeTemplateId = componentName.get() + GeneratorConstants.VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX; - DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId, - vnfConfigurationNodeTemplate); + if (MapUtils.isNotEmpty(vspModelInfo.getMultiFlavorVfcImages())) { + List componentImages = vspModelInfo.getMultiFlavorVfcImages().get(componentId); + if (Objects.nonNull(componentImages)) { + Map vfcImages = new HashMap<>(); + componentImages.stream() + .forEach(multiFlavorVfcImage -> vfcImages.put(multiFlavorVfcImage.getSoftware_version(), multiFlavorVfcImage)); + properties.put(GeneratorConstants.IMAGES_PROPERTY, vfcImages); + } + } + return properties; } - } - private void createVnfNodeTemplate(ServiceTemplate mainServiceTemplate, - VspModelInfo vspModelInfo, String componentId) { - Optional componentName = getComponentNameFromVspModel(vspModelInfo); - if (componentName.isPresent()) { - NodeTemplate vnfNodeTemplate = new NodeTemplate(); - vnfNodeTemplate.setType(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE); - List directiveList = new ArrayList<>(); - directiveList.add(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE); - vnfNodeTemplate.setDirectives(directiveList); - vnfNodeTemplate.setProperties(getVnfNodeTemplateProperties(vspModelInfo, componentId)); - DataModelUtil - .addSubstitutionFilteringProperty(getSubstitutionServiceTemplateFileName(componentName - .get()), vnfNodeTemplate, 1); - //Enable below if we need "abstract_" as prefix like we have in Unified model - //String nodeTemplateId = - // Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX + componentName + "VNF_NODE_TEMPLATE_ID_SUFFIX"; - String nodeTemplateId = componentName.get() + GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX; - DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId, - vnfNodeTemplate); - abstractSubstitutionIdTypes.put(componentName.get(), ToscaNodeType - .MULTIDEPLOYMENTFLAVOR_NODE_TYPE); + private String getSubstitutionServiceTemplateFileName(String componentName) { + return componentName + GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX; } - } - private Map getVnfNodeTemplateProperties(VspModelInfo vspModelInfo, - String componentId) { - Map properties = new LinkedHashMap<>(); - if (MapUtils.isNotEmpty(vspModelInfo.getMultiFlavorVfcImages())) { - List componentImages = - vspModelInfo.getMultiFlavorVfcImages().get(componentId); - if (Objects.nonNull(componentImages)) { - Map vfcImages = new HashMap<>(); - componentImages.stream() - .forEach(multiFlavorVfcImage -> - vfcImages.put(multiFlavorVfcImage.getSoftware_version(), multiFlavorVfcImage)); - properties.put(GeneratorConstants.IMAGES_PROPERTY, vfcImages); - } + private ServiceTemplate createInitMainServiceTemplate(String releaseVendor) { + ServiceTemplate mainServiceTemplate = new ServiceTemplate(); + Map templateMetadata = new HashMap<>(); + templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, Constants.MAIN_TEMPLATE_NAME); + if (Objects.nonNull(releaseVendor)) { + templateMetadata.put(GeneratorConstants.RELEASE_VENDOR, releaseVendor); + } + mainServiceTemplate.setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION); + mainServiceTemplate.setMetadata(templateMetadata); + mainServiceTemplate.setTopology_template(new TopologyTemplate()); + mainServiceTemplate.setImports(getImports()); + return mainServiceTemplate; } - return properties; - } - - private String getSubstitutionServiceTemplateFileName(String componentName) { - return componentName + GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX; - } - private ServiceTemplate createInitMainServiceTemplate(String releaseVendor) { - ServiceTemplate mainServiceTemplate = new ServiceTemplate(); - Map templateMetadata = new HashMap<>(); - templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, Constants.MAIN_TEMPLATE_NAME); - if (Objects.nonNull(releaseVendor)) { - templateMetadata.put(GeneratorConstants.RELEASE_VENDOR, releaseVendor); + private List> getImports() { + Map globalSubstitutionTypeImportMap = new HashMap<>(); + Import globalSubstitutionTypeImport = new Import(); + globalSubstitutionTypeImport.setFile(ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME)); + globalSubstitutionTypeImportMap.put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME, globalSubstitutionTypeImport); + List> manualVspGlobalTypesImportList = GlobalTypesGenerator.getManualVspGlobalTypesImportList(); + manualVspGlobalTypesImportList.add(globalSubstitutionTypeImportMap); + return manualVspGlobalTypesImportList; } - mainServiceTemplate.setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION); - mainServiceTemplate.setMetadata(templateMetadata); - mainServiceTemplate.setTopology_template(new TopologyTemplate()); - mainServiceTemplate.setImports(getImports()); - return mainServiceTemplate; - } - - private List> getImports() { - Map globalSubstitutionTypeImportMap = new HashMap<>(); - Import globalSubstitutionTypeImport = new Import(); - globalSubstitutionTypeImport.setFile(ToscaUtil.getServiceTemplateFileName(Constants - .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME)); - globalSubstitutionTypeImportMap.put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME, - globalSubstitutionTypeImport); - List> manualVspGlobalTypesImportList = GlobalTypesGenerator - .getManualVspGlobalTypesImportList(); - manualVspGlobalTypesImportList.add(globalSubstitutionTypeImportMap); - return manualVspGlobalTypesImportList; - } - - private ServiceTemplate createSubstitutionServiceTemplate(String serviceTemplateName, - String substitutionNodeTypeId, - VspModelInfo vspModelInfo, - ToscaServiceModel toscaServiceModel) { - ServiceTemplate substitutionServiceTemplate = - createInitSubstitutionServiceTemplate(serviceTemplateName); - createSubstitutionServiceTemplateComponents(substitutionServiceTemplate, vspModelInfo); - createSubstitutionServiceTemplateNics(substitutionServiceTemplate, vspModelInfo); - handleSubstitutionMapping(substitutionServiceTemplate, toscaServiceModel, - substitutionNodeTypeId, serviceTemplateName); - return substitutionServiceTemplate; - } - private void createSubstitutionServiceTemplateComponents(ServiceTemplate - substitutionServiceTemplate, - VspModelInfo vspModelInfo) { - Map components = vspModelInfo.getComponents(); - if (MapUtils.isNotEmpty(components)) { - for (String componentName : components.values()) { - String localNodeTypeId = - createComponentDefinitionNodeTemplate(substitutionServiceTemplate, componentName); - createLocalNodeType(substitutionServiceTemplate, localNodeTypeId); - } + private ServiceTemplate createSubstitutionServiceTemplate(String serviceTemplateName, String substitutionNodeTypeId, VspModelInfo vspModelInfo, + ToscaServiceModel toscaServiceModel) { + ServiceTemplate substitutionServiceTemplate = createInitSubstitutionServiceTemplate(serviceTemplateName); + createSubstitutionServiceTemplateComponents(substitutionServiceTemplate, vspModelInfo); + createSubstitutionServiceTemplateNics(substitutionServiceTemplate, vspModelInfo); + handleSubstitutionMapping(substitutionServiceTemplate, toscaServiceModel, substitutionNodeTypeId, serviceTemplateName); + return substitutionServiceTemplate; } - } - private void createSubstitutionServiceTemplateNics(ServiceTemplate substitutionServiceTemplate, - VspModelInfo vspModelInfo) { - Map> nics = vspModelInfo.getNics(); - if (MapUtils.isNotEmpty(nics)) { - for (Map.Entry> entry : nics.entrySet()) { - String componentId = entry.getKey(); - String componentNodeTemplateId = getSubstitutionComponentNodeTemplateId( - vspModelInfo.getComponents().get(componentId)); - List nicList = entry.getValue(); - if (CollectionUtils.isNotEmpty(nicList)) { - for (Nic nic : nicList) { - NodeTemplate nicNodeTemplate = new NodeTemplate(); - nicNodeTemplate.setType(ToscaNodeType.NETWORK_PORT); - DataModelUtil.addBindingReqFromPortToCompute(componentNodeTemplateId, nicNodeTemplate); - DataModelUtil.addNodeTemplate(substitutionServiceTemplate, - getNicNodeTemplateId(nic.getName(), nic.getNetworkType()), nicNodeTemplate); - } + private void createSubstitutionServiceTemplateComponents(ServiceTemplate substitutionServiceTemplate, VspModelInfo vspModelInfo) { + Map components = vspModelInfo.getComponents(); + if (MapUtils.isNotEmpty(components)) { + for (String componentName : components.values()) { + String localNodeTypeId = createComponentDefinitionNodeTemplate(substitutionServiceTemplate, componentName); + createLocalNodeType(substitutionServiceTemplate, localNodeTypeId); + } } - } } - } - private String getSubstitutionComponentNodeTemplateId(String componentName) { - //TODO: Confirm if anything else is needed here - return componentName; - } - - private String getNicNodeTemplateId(String nicName, NetworkType nicNetworkType) { - StringBuilder builder = new StringBuilder(); - builder.append(nicName); - if (nicNetworkType == NetworkType.External) { - builder.append(GeneratorConstants.PORT_TYPE_EXTERNAL_NODE_TEMPLATE_SUFFIX); - } else if (nicNetworkType == NetworkType.Internal) { - builder.append(GeneratorConstants.PORT_TYPE_INTERNAL_NODE_TEMPLATE_SUFFIX); + private void createSubstitutionServiceTemplateNics(ServiceTemplate substitutionServiceTemplate, VspModelInfo vspModelInfo) { + Map> nics = vspModelInfo.getNics(); + if (MapUtils.isNotEmpty(nics)) { + for (Map.Entry> entry : nics.entrySet()) { + String componentId = entry.getKey(); + String componentNodeTemplateId = getSubstitutionComponentNodeTemplateId(vspModelInfo.getComponents().get(componentId)); + List nicList = entry.getValue(); + if (CollectionUtils.isNotEmpty(nicList)) { + for (Nic nic : nicList) { + NodeTemplate nicNodeTemplate = new NodeTemplate(); + nicNodeTemplate.setType(ToscaNodeType.NETWORK_PORT); + DataModelUtil.addBindingReqFromPortToCompute(componentNodeTemplateId, nicNodeTemplate); + DataModelUtil + .addNodeTemplate(substitutionServiceTemplate, getNicNodeTemplateId(nic.getName(), nic.getNetworkType()), nicNodeTemplate); + } + } + } + } } - builder.append(GeneratorConstants.PORT_NODE_TEMPLATE_ID_SUFFIX); - return builder.toString(); - } - private String createComponentDefinitionNodeTemplate(ServiceTemplate substitutionServiceTemplate, - String componentName) { - NodeTemplate nodeTemplate = new NodeTemplate(); - String localNodeTypeId = getLocalNodeTypeId(componentName); - nodeTemplate.setType(localNodeTypeId); - DataModelUtil.addNodeTemplate(substitutionServiceTemplate, componentName, nodeTemplate); - return localNodeTypeId; - } - - private void createLocalNodeType(ServiceTemplate substitutionServiceTemplate, - String localNodeTypeId) { - NodeType localNodeType = new NodeType(); - localNodeType.setDerived_from(ToscaNodeType.COMPUTE); - DataModelUtil.addNodeType(substitutionServiceTemplate, localNodeTypeId, localNodeType ); - } + private String getSubstitutionComponentNodeTemplateId(String componentName) { + //TODO: Confirm if anything else is needed here + return componentName; + } - private String getLocalNodeTypeId(String componentName) { - return ToscaNodeType.VFC_NODE_TYPE_PREFIX + componentName; - } + private String getNicNodeTemplateId(String nicName, NetworkType nicNetworkType) { + StringBuilder builder = new StringBuilder(); + builder.append(nicName); + if (nicNetworkType == NetworkType.External) { + builder.append(GeneratorConstants.PORT_TYPE_EXTERNAL_NODE_TEMPLATE_SUFFIX); + } else if (nicNetworkType == NetworkType.Internal) { + builder.append(GeneratorConstants.PORT_TYPE_INTERNAL_NODE_TEMPLATE_SUFFIX); + } + builder.append(GeneratorConstants.PORT_NODE_TEMPLATE_ID_SUFFIX); + return builder.toString(); + } - private ServiceTemplate createInitSubstitutionServiceTemplate(String serviceTemplateName) { - ServiceTemplate substitutionServiceTemplate = new ServiceTemplate(); - Map templateMetadata = new HashMap<>(); - substitutionServiceTemplate.setTosca_definitions_version(ToscaConstants - .TOSCA_DEFINITIONS_VERSION); - templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, serviceTemplateName); - substitutionServiceTemplate.setMetadata(templateMetadata); - substitutionServiceTemplate.setTopology_template(new TopologyTemplate()); - substitutionServiceTemplate.setImports(getImports()); - return substitutionServiceTemplate; - } + private String createComponentDefinitionNodeTemplate(ServiceTemplate substitutionServiceTemplate, String componentName) { + NodeTemplate nodeTemplate = new NodeTemplate(); + String localNodeTypeId = getLocalNodeTypeId(componentName); + nodeTemplate.setType(localNodeTypeId); + DataModelUtil.addNodeTemplate(substitutionServiceTemplate, componentName, nodeTemplate); + return localNodeTypeId; + } - private void handleSubstitutionMapping(ServiceTemplate substitutionServiceTemplate, - ToscaServiceModel toscaServiceModel, - String substitutionNodeTypeId, - String componentName) { - ServiceTemplate globalSubstitutionServiceTemplate = fetchGlobalSubstitutionServiceTemplate(); - NodeType substitutionNodeType = - createGlobalSubstitutionNodeType(substitutionServiceTemplate, componentName); - DataModelUtil.addNodeType(globalSubstitutionServiceTemplate, substitutionNodeTypeId, - substitutionNodeType); - Map>> substitutionMapping = - GeneratorUtils.getSubstitutionNodeTypeExposedConnectionPoints(substitutionNodeType, - substitutionServiceTemplate, toscaServiceModel); - if (Objects.nonNull(substitutionMapping)) { - //add substitution mapping after capability and requirement expose calculation - substitutionServiceTemplate.getTopology_template().setSubstitution_mappings( - DataModelUtil.createSubstitutionTemplateSubMapping(substitutionNodeTypeId, - substitutionNodeType, substitutionMapping)); + private void createLocalNodeType(ServiceTemplate substitutionServiceTemplate, String localNodeTypeId) { + NodeType localNodeType = new NodeType(); + localNodeType.setDerived_from(ToscaNodeType.COMPUTE); + DataModelUtil.addNodeType(substitutionServiceTemplate, localNodeTypeId, localNodeType); } - } - //*************** CREATE GLOBAL SUBSTITUTION SERVICE TEMPLATE ********************** + private String getLocalNodeTypeId(String componentName) { + return ToscaNodeType.VFC_NODE_TYPE_PREFIX + componentName; + } - private ServiceTemplate createInitGlobalSubstitutionServiceTemplate() { - ServiceTemplate globalSubstitutionServiceTemplate = new ServiceTemplate(); - Map templateMetadata = new HashMap<>(); - globalSubstitutionServiceTemplate.setTosca_definitions_version(ToscaConstants - .TOSCA_DEFINITIONS_VERSION); - templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, - Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME); - globalSubstitutionServiceTemplate.setMetadata(templateMetadata); - globalSubstitutionServiceTemplate.setImports(getImports()); - return globalSubstitutionServiceTemplate; - } + private ServiceTemplate createInitSubstitutionServiceTemplate(String serviceTemplateName) { + ServiceTemplate substitutionServiceTemplate = new ServiceTemplate(); + Map templateMetadata = new HashMap<>(); + substitutionServiceTemplate.setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION); + templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, serviceTemplateName); + substitutionServiceTemplate.setMetadata(templateMetadata); + substitutionServiceTemplate.setTopology_template(new TopologyTemplate()); + substitutionServiceTemplate.setImports(getImports()); + return substitutionServiceTemplate; + } - private NodeType createGlobalSubstitutionNodeType(ServiceTemplate substitutionServiceTemplate, - String componentName) { - NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl() - .createInitSubstitutionNodeType(substitutionServiceTemplate, - ToscaNodeType.MULTIFLAVOR_VFC_NODE_TYPE); - substitutionNodeType.setProperties( - getManualVspSubstitutionNodeTypeProperties(componentName)); - return substitutionNodeType; - } + private void handleSubstitutionMapping(ServiceTemplate substitutionServiceTemplate, ToscaServiceModel toscaServiceModel, + String substitutionNodeTypeId, String componentName) { + ServiceTemplate globalSubstitutionServiceTemplate = fetchGlobalSubstitutionServiceTemplate(); + NodeType substitutionNodeType = createGlobalSubstitutionNodeType(substitutionServiceTemplate, componentName); + DataModelUtil.addNodeType(globalSubstitutionServiceTemplate, substitutionNodeTypeId, substitutionNodeType); + Map>> substitutionMapping = GeneratorUtils + .getSubstitutionNodeTypeExposedConnectionPoints(substitutionNodeType, substitutionServiceTemplate, toscaServiceModel); + if (Objects.nonNull(substitutionMapping)) { + //add substitution mapping after capability and requirement expose calculation + substitutionServiceTemplate.getTopology_template().setSubstitution_mappings( + DataModelUtil.createSubstitutionTemplateSubMapping(substitutionNodeTypeId, substitutionNodeType, substitutionMapping)); + } + } - private Map getManualVspSubstitutionNodeTypeProperties(String componentName) { - //Create num_cpus property - PropertyDefinition numCpus = new PropertyDefinition(); - numCpus.setType(PropertyType.INTEGER.getDisplayName()); - numCpus.setDescription(GeneratorConstants.NUM_CPUS_PROP_DESC_PREFIX + componentName); - numCpus.setRequired(true); - //Create disk_size property - PropertyDefinition diskSize = new PropertyDefinition(); - diskSize.setType(PropertyType.SCALAR_UNIT_SIZE.getDisplayName()); - diskSize.setDescription(GeneratorConstants.DISK_SIZE_PROP_DESC_PREFIX + componentName); - diskSize.setRequired(true); - //Create mem_size property - PropertyDefinition memSize = new PropertyDefinition(); - memSize.setType(PropertyType.SCALAR_UNIT_SIZE.getDisplayName()); - memSize.setDescription(GeneratorConstants.MEM_SIZE_PROP_DESC_PREFIX + componentName); - memSize.setRequired(true); + //*************** CREATE GLOBAL SUBSTITUTION SERVICE TEMPLATE ********************** + private ServiceTemplate createInitGlobalSubstitutionServiceTemplate() { + ServiceTemplate globalSubstitutionServiceTemplate = new ServiceTemplate(); + Map templateMetadata = new HashMap<>(); + globalSubstitutionServiceTemplate.setTosca_definitions_version(ToscaConstants.TOSCA_DEFINITIONS_VERSION); + templateMetadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME); + globalSubstitutionServiceTemplate.setMetadata(templateMetadata); + globalSubstitutionServiceTemplate.setImports(getImports()); + return globalSubstitutionServiceTemplate; + } - Map manualVspProperties = new LinkedHashMap<>(); - manualVspProperties.put(GeneratorConstants.NUM_CPUS, numCpus); - manualVspProperties.put(GeneratorConstants.DISK_SIZE, diskSize); - manualVspProperties.put(GeneratorConstants.MEM_SIZE, memSize); + private NodeType createGlobalSubstitutionNodeType(ServiceTemplate substitutionServiceTemplate, String componentName) { + NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl() + .createInitSubstitutionNodeType(substitutionServiceTemplate, ToscaNodeType.MULTIFLAVOR_VFC_NODE_TYPE); + substitutionNodeType.setProperties(getManualVspSubstitutionNodeTypeProperties(componentName)); + return substitutionNodeType; + } - return manualVspProperties; - } + private Map getManualVspSubstitutionNodeTypeProperties(String componentName) { + //Create num_cpus property + PropertyDefinition numCpus = new PropertyDefinition(); + numCpus.setType(PropertyType.INTEGER.getDisplayName()); + numCpus.setDescription(GeneratorConstants.NUM_CPUS_PROP_DESC_PREFIX + componentName); + numCpus.setRequired(true); + //Create disk_size property + PropertyDefinition diskSize = new PropertyDefinition(); + diskSize.setType(PropertyType.SCALAR_UNIT_SIZE.getDisplayName()); + diskSize.setDescription(GeneratorConstants.DISK_SIZE_PROP_DESC_PREFIX + componentName); + diskSize.setRequired(true); + //Create mem_size property + PropertyDefinition memSize = new PropertyDefinition(); + memSize.setType(PropertyType.SCALAR_UNIT_SIZE.getDisplayName()); + memSize.setDescription(GeneratorConstants.MEM_SIZE_PROP_DESC_PREFIX + componentName); + memSize.setRequired(true); + Map manualVspProperties = new LinkedHashMap<>(); + manualVspProperties.put(GeneratorConstants.NUM_CPUS, numCpus); + manualVspProperties.put(GeneratorConstants.DISK_SIZE, diskSize); + manualVspProperties.put(GeneratorConstants.MEM_SIZE, memSize); + return manualVspProperties; + } - /** - * Fetch global substitution service template service template. - * - * @return the global substitution service template - */ - private ServiceTemplate fetchGlobalSubstitutionServiceTemplate() { - ServiceTemplate globalSubstitutionServiceTemplate = - generatedServiceTemplates.get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME); - if (Objects.isNull(globalSubstitutionServiceTemplate)) { - globalSubstitutionServiceTemplate = createInitGlobalSubstitutionServiceTemplate(); - generatedServiceTemplates.put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME, - globalSubstitutionServiceTemplate); + /** + * Fetch global substitution service template service template. + * + * @return the global substitution service template + */ + private ServiceTemplate fetchGlobalSubstitutionServiceTemplate() { + ServiceTemplate globalSubstitutionServiceTemplate = generatedServiceTemplates.get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME); + if (Objects.isNull(globalSubstitutionServiceTemplate)) { + globalSubstitutionServiceTemplate = createInitGlobalSubstitutionServiceTemplate(); + generatedServiceTemplates.put(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME, globalSubstitutionServiceTemplate); + } + return globalSubstitutionServiceTemplate; } - return globalSubstitutionServiceTemplate; - } } diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java index a1460a8163..285ac2dbc4 100644 --- a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java +++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,10 +17,23 @@ * limitations under the License. * ============LICENSE_END========================================================= */ - package org.openecomp.sdc.generator.core.utils; -import org.onap.sdc.tosca.datatypes.model.*; +import static org.openecomp.sdc.tosca.services.DataModelUtil.addSubstitutionNodeTypeRequirements; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import org.onap.sdc.tosca.datatypes.model.CapabilityDefinition; +import org.onap.sdc.tosca.datatypes.model.NodeTemplate; +import org.onap.sdc.tosca.datatypes.model.NodeType; +import org.onap.sdc.tosca.datatypes.model.RequirementAssignment; +import org.onap.sdc.tosca.datatypes.model.RequirementDefinition; +import org.onap.sdc.tosca.datatypes.model.ServiceTemplate; import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil; import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes; import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel; @@ -29,22 +42,17 @@ import org.openecomp.sdc.tosca.services.ToscaAnalyzerService; import org.openecomp.sdc.tosca.services.ToscaUtil; import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl; -import java.util.*; - -import static org.openecomp.sdc.tosca.services.DataModelUtil.addSubstitutionNodeTypeRequirements; - /** * The type Generator utils. */ public class GeneratorUtils { - private GeneratorUtils() { - // prevent instantiation - } - //TODO : Read from configuration private static final List SUPPORTED_CAPABILITIES = Arrays.asList("host", "os", "endpoint", "scalable"); private static final List SUPPORTED_REQUIREMENTS = Collections.singletonList("link"); + private GeneratorUtils() { + // prevent instantiation + } /** * Add service template to tosca service model. @@ -52,9 +60,7 @@ public class GeneratorUtils { * @param toscaServiceModel the tosca service model * @param serviceTemplate the service template */ - public static void addServiceTemplateToToscaServiceModel(ToscaServiceModel toscaServiceModel, - ServiceTemplate serviceTemplate) { - + public static void addServiceTemplateToToscaServiceModel(ToscaServiceModel toscaServiceModel, ServiceTemplate serviceTemplate) { String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate); Map serviceTemplates = toscaServiceModel.getServiceTemplates(); if (!serviceTemplates.containsKey(serviceTemplateFileName)) { @@ -72,11 +78,9 @@ public class GeneratorUtils { * @return the substitution node type exposed connection points */ public static Map>> getSubstitutionNodeTypeExposedConnectionPoints(NodeType substitutionNodeType, - ServiceTemplate substitutionServiceTemplate, - ToscaServiceModel toscaServiceModel) { - - Map nodeTemplates = - substitutionServiceTemplate.getTopology_template().getNode_templates(); + ServiceTemplate substitutionServiceTemplate, + ToscaServiceModel toscaServiceModel) { + Map nodeTemplates = substitutionServiceTemplate.getTopology_template().getNode_templates(); String nodeTemplateId; NodeTemplate nodeTemplate; String nodeType; @@ -84,7 +88,6 @@ public class GeneratorUtils { if (nodeTemplates == null) { return substitutionMapping; } - try { Map> capabilitySubstitutionMapping = new HashMap<>(); Map> requirementSubstitutionMapping = new HashMap<>(); @@ -96,54 +99,41 @@ public class GeneratorUtils { Map> fullFilledRequirementsDefinition = new HashMap<>(); Map nodeTypeCapabilitiesDefinition = new HashMap<>(); Map exposedCapabilitiesDefinition; - ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl(); for (Map.Entry entry : nodeTemplates.entrySet()) { nodeTemplateId = entry.getKey(); nodeTemplate = entry.getValue(); nodeType = nodeTemplate.getType(); NodeType flatNodeType = (NodeType) toscaAnalyzerService - .getFlatEntity(ToscaElementTypes.NODE_TYPE, nodeType, - substitutionServiceTemplate, toscaServiceModel) - .getFlatEntity(); + .getFlatEntity(ToscaElementTypes.NODE_TYPE, nodeType, substitutionServiceTemplate, toscaServiceModel).getFlatEntity(); // get requirements - nodeTypeRequirementsDefinition = - getNodeTypeRequirements(flatNodeType, nodeTemplateId, substitutionServiceTemplate, - requirementSubstitutionMapping); + nodeTypeRequirementsDefinition = getNodeTypeRequirements(flatNodeType, nodeTemplateId, substitutionServiceTemplate, + requirementSubstitutionMapping); nodeTemplateRequirementsAssignment = DataModelUtil.getNodeTemplateRequirements(nodeTemplate); fullFilledRequirementsDefinition.put(nodeTemplateId, nodeTemplateRequirementsAssignment); //set substitution node type requirements exposedRequirementsDefinition = toscaAnalyzerService - .calculateExposedRequirements(nodeTypeRequirementsDefinition, - nodeTemplateRequirementsAssignment); - - + .calculateExposedRequirements(nodeTypeRequirementsDefinition, nodeTemplateRequirementsAssignment); //Filter unsupported requirements Iterator> iterator = exposedRequirementsDefinition.iterator(); while (iterator.hasNext()) { Map requirementDefinitionMap = iterator.next(); - for (Map.Entry requirementDefinitionEntry : requirementDefinitionMap - .entrySet()) { + for (Map.Entry requirementDefinitionEntry : requirementDefinitionMap.entrySet()) { String requirementKey = requirementDefinitionEntry.getKey(); if (!SUPPORTED_REQUIREMENTS.contains(requirementKey)) { iterator.remove(); } } } - addSubstitutionNodeTypeRequirements(substitutionNodeType, exposedRequirementsDefinition, - nodeTemplateId); + addSubstitutionNodeTypeRequirements(substitutionNodeType, exposedRequirementsDefinition, nodeTemplateId); //get capabilities - addNodeTypeCapabilitiesToSubMapping(nodeTypeCapabilitiesDefinition, capabilitySubstitutionMapping, - nodeType, nodeTemplateId, substitutionServiceTemplate, toscaServiceModel); + addNodeTypeCapabilitiesToSubMapping(nodeTypeCapabilitiesDefinition, capabilitySubstitutionMapping, nodeType, nodeTemplateId, + substitutionServiceTemplate, toscaServiceModel); } - exposedCapabilitiesDefinition = toscaAnalyzerService - .calculateExposedCapabilities(nodeTypeCapabilitiesDefinition, - fullFilledRequirementsDefinition); - + .calculateExposedCapabilities(nodeTypeCapabilitiesDefinition, fullFilledRequirementsDefinition); //Filter unsupported capabilities - Iterator> iterator = - exposedCapabilitiesDefinition.entrySet().iterator(); + Iterator> iterator = exposedCapabilitiesDefinition.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry capabilityDefinitionEntry = iterator.next(); //Expected Capability is of the format _ @@ -152,7 +142,6 @@ public class GeneratorUtils { iterator.remove(); } } - DataModelUtil.setNodeTypeCapabilitiesDef(substitutionNodeType, exposedCapabilitiesDefinition); } catch (Exception ex) { return null; @@ -169,21 +158,19 @@ public class GeneratorUtils { * @param requirementSubstitutionMapping the requirement substitution mapping * @return the node type requirements */ - public static List> getNodeTypeRequirements(NodeType flatNodeType, - String templateName, - ServiceTemplate serviceTemplate, - Map> requirementSubstitutionMapping) { + public static List> getNodeTypeRequirements(NodeType flatNodeType, String templateName, + ServiceTemplate serviceTemplate, + Map> requirementSubstitutionMapping) { List> requirementList = new ArrayList<>(); List requirementMapping; if (flatNodeType.getRequirements() != null) { for (Map requirementMap : flatNodeType.getRequirements()) { for (Map.Entry requirementNodeEntry : requirementMap.entrySet()) { ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil(); - RequirementDefinition requirementNodeEntryValue = toscaExtensionYamlUtil.yamlToObject( - toscaExtensionYamlUtil.objectToYaml(requirementNodeEntry.getValue()), - RequirementDefinition.class); + RequirementDefinition requirementNodeEntryValue = toscaExtensionYamlUtil + .yamlToObject(toscaExtensionYamlUtil.objectToYaml(requirementNodeEntry.getValue()), RequirementDefinition.class); if (requirementNodeEntryValue.getOccurrences() == null) { - requirementNodeEntryValue.setOccurrences(new Object[] {1, 1}); + requirementNodeEntryValue.setOccurrences(new Object[]{1, 1}); } Map requirementDef = new HashMap<>(); requirementDef.put(requirementNodeEntry.getKey(), requirementNodeEntryValue); @@ -191,10 +178,9 @@ public class GeneratorUtils { requirementMapping = new ArrayList<>(); requirementMapping.add(templateName); requirementMapping.add(requirementNodeEntry.getKey()); - requirementSubstitutionMapping - .put(requirementNodeEntry.getKey() + "_" + templateName, requirementMapping); + requirementSubstitutionMapping.put(requirementNodeEntry.getKey() + "_" + templateName, requirementMapping); if (requirementNodeEntryValue.getNode() == null) { - requirementNodeEntryValue.setOccurrences(new Object[] {1, 1}); + requirementNodeEntryValue.setOccurrences(new Object[]{1, 1}); } } } @@ -203,18 +189,15 @@ public class GeneratorUtils { } private static void addNodeTypeCapabilitiesToSubMapping(Map nodeTypeCapabilitiesDefinition, - Map> capabilitySubstitutionMapping, - String type, String templateName, - ServiceTemplate substitutionServiceTemplate, - ToscaServiceModel toscaServiceModel) { + Map> capabilitySubstitutionMapping, String type, String templateName, + ServiceTemplate substitutionServiceTemplate, ToscaServiceModel toscaServiceModel) { ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl(); - NodeType flatNodeType = (NodeType) toscaAnalyzerService.getFlatEntity(ToscaElementTypes.NODE_TYPE, type, - substitutionServiceTemplate, toscaServiceModel).getFlatEntity(); + NodeType flatNodeType = (NodeType) toscaAnalyzerService + .getFlatEntity(ToscaElementTypes.NODE_TYPE, type, substitutionServiceTemplate, toscaServiceModel).getFlatEntity(); String capabilityKey; List capabilityMapping; if (flatNodeType.getCapabilities() != null) { - for (Map.Entry capabilityNodeEntry : flatNodeType.getCapabilities() - .entrySet()) { + for (Map.Entry capabilityNodeEntry : flatNodeType.getCapabilities().entrySet()) { capabilityKey = capabilityNodeEntry.getKey() + "_" + templateName; nodeTypeCapabilitiesDefinition.put(capabilityKey, capabilityNodeEntry.getValue().clone()); capabilityMapping = new ArrayList<>(); @@ -224,5 +207,4 @@ public class GeneratorUtils { } } } - } -- cgit 1.2.3-korg