- // Generate AAI XML resource model
- for (Resource res : resources) {
- MDC.put(ARTIFACT_MODEL_INFO, res.getModelName() + "," + getArtifactLabel(res));
- String aaiResourceModel = modelGenerator.generateModelFor(res);
- generationData.add(getResourceArtifact(res, aaiResourceModel));
+ /**
+ * @param csarHelper
+ * @param serviceModel
+ * @return the generated Models
+ * @throws XmlArtifactGenerationException
+ * if the configured widget mappings do not support processed widget type(s)
+ */
+ private List<Resource> generateResourceModels(ISdcCsarHelper csarHelper, Service serviceModel)
+ throws XmlArtifactGenerationException {
+ List<NodeTemplate> serviceNodeTemplates =
+ ToscaParser.getServiceNodeTemplates(csarHelper).collect(Collectors.toList());
+ if (serviceNodeTemplates == null) {
+ throw new IllegalArgumentException(GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA);
+ }
+
+ final ArtifactGeneratorToscaParser parser = new ArtifactGeneratorToscaParser(csarHelper);
+ List<Resource> resources = new ArrayList<>();
+ final List<Group> serviceGroups = ToscaParser.getServiceLevelGroups(csarHelper);
+ for (NodeTemplate nodeTemplate : serviceNodeTemplates) {
+ if (nodeTemplate.getMetaData() != null) {
+ generateModelFromNodeTemplate(csarHelper, serviceModel, resources, serviceGroups, parser, nodeTemplate);
+ } else {
+ log.warn(ApplicationMsgs.MISSING_SERVICE_METADATA, nodeTemplate.getName());
+ }
+ }
+
+ return resources;
+ }
+
+ /**
+ * @param csarHelper
+ * @param serviceModel
+ * @param resources
+ * @param serviceGroups
+ * @param parser
+ * @param nodeTemplate
+ * @throws XmlArtifactGenerationException
+ * if the configured widget mappings do not support processed widget type(s)
+ */
+ private void generateModelFromNodeTemplate(ISdcCsarHelper csarHelper, Service serviceModel,
+ List<Resource> resources, final List<Group> serviceGroups, ArtifactGeneratorToscaParser parser,
+ NodeTemplate nodeTemplate) throws XmlArtifactGenerationException {
+ Resource model = getModelFor(parser, nodeTemplate);
+
+ if (model != null) {
+ if (nodeTemplate.getMetaData() != null) {
+ model.populateModelIdentificationInformation(nodeTemplate.getMetaData().getAllProperties());
+ }