- private Path createTempFile(byte[] bytes) {
- Path path = null;
- try {
- log.debug("Creating temp file on file system for the csar");
- path = Files.createTempFile("temp", ".csar");
- Files.write(path, bytes);
- } catch (IOException e) {
- log.error(ApplicationMsgs.TEMP_FILE_ERROR, e);
+ /**
+ * @param csarHelper
+ * @param resources
+ * @param parser
+ * @param nodeTemplate
+ * @throws XmlArtifactGenerationException
+ * if the configured widget mappings do not support processed widget type(s)
+ */
+ private void generateResourceModel(ISdcCsarHelper csarHelper, List<Resource> resources,
+ ArtifactGeneratorToscaParser parser, NodeTemplate nodeTemplate) throws XmlArtifactGenerationException {
+ Resource resourceModel = getModelFor(parser, nodeTemplate);
+ if (resourceModel == null) {
+ log.info(ApplicationMsgs.DISTRIBUTION_EVENT, "Could not generate resource model");
+ return;
+ }
+
+ Map<String, String> serviceMetadata = nodeTemplate.getMetaData().getAllProperties();
+ resourceModel.populateModelIdentificationInformation(serviceMetadata);
+
+ parser.processResourceModels(resourceModel, csarHelper.getNodeTemplateChildren(nodeTemplate));
+
+ if (csarHelper.getServiceVfList() != null) {
+ parser.processVfModules(resources, resourceModel, nodeTemplate);
+ }
+
+ if (parser.hasSubCategoryTunnelXConnect(serviceMetadata) && parser.hasAllottedResource(serviceMetadata)) {
+ resourceModel.addWidget(Widget.createWidget("TUNNEL_XCONNECT"));
+ }
+
+ resources.addAll(parser.processInstanceGroups(resourceModel, nodeTemplate));
+ resources.add(resourceModel);
+ }
+
+ /**
+ * @param generationData
+ * @param resource
+ * @throws XmlArtifactGenerationException
+ */
+ private void generateResourceArtifact(GenerationData generationData, Resource resource)
+ throws XmlArtifactGenerationException {
+ if (!isContained(generationData, getArtifactName(resource))) {
+ log.info(ApplicationMsgs.DISTRIBUTION_EVENT, "Generating resource model");
+ generationData.add(getResourceArtifact(resource, modelGenerator.generateModelFor(resource)));