+ try {
+ ISdcCsarHelper csarHelper =
+ SdcToscaParserFactory.getInstance().getSdcCsarHelper(csarPath.toAbsolutePath().toString());
+ return generateAllArtifacts(validateServiceVersion(additionalParams), csarHelper);
+ } catch (SdcToscaParserException | XmlArtifactGenerationException e) {
+ log.error(ApplicationMsgs.INVALID_CSAR_FILE, e);
+ return createErrorData(e);
+ } finally {
+ FileUtils.deleteQuietly(csarPath.toFile());
+ }
+ }
+
+ private GenerationData createErrorData(Exception e) {
+ GenerationData generationData = new GenerationData();
+ generationData.add(ArtifactType.AAI.name(), e.getMessage());
+ return generationData;
+ }
+
+ /**
+ * Generate model artifacts for the Service and its associated Resources.
+ *
+ * @param serviceVersion
+ * @param csarHelper
+ * interface to the TOSCA parser
+ * @return the generated Artifacts (containing XML models)
+ * @throws XmlArtifactGenerationException
+ */
+ private GenerationData generateAllArtifacts(final String serviceVersion, ISdcCsarHelper csarHelper)
+ throws XmlArtifactGenerationException {
+ List<NodeTemplate> serviceNodeTemplates = csarHelper.getServiceNodeTemplates();
+ if (serviceNodeTemplates == null) {
+ throw new IllegalArgumentException(GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA);
+ }
+
+ Service serviceModel = createServiceModel(serviceVersion, csarHelper.getServiceMetadataAllProperties());
+
+ MDC.put(MDC_PARAM_MODEL_INFO, serviceModel.getModelName() + "," + getArtifactLabel(serviceModel));
+
+ List<Resource> resources = generateResourceModels(csarHelper, serviceNodeTemplates, serviceModel);