diff options
author | shikha0203 <shivani.khare@est.tech> | 2023-05-18 14:11:03 +0100 |
---|---|---|
committer | Michael Morris <michael.morris@est.tech> | 2023-05-24 18:29:14 +0000 |
commit | 871b9813322801509a566b49a1cdcc65c052de29 (patch) | |
tree | 1fba6b9768712bf5c7d641a2a98c7dc1ce03fe09 /catalog-ui/src/app/utils/service-csar-reader.ts | |
parent | e3f5545168163fdbf0d83314ee9dd51983e4bcc8 (diff) |
Support import of service with no substitution mapping node type
Issue-ID: SDC-4506
Signed-off-by: shikha0203 <shivani.khare@est.tech>
Change-Id: I7bc8f020418f2b9299be3454ffbc1e016a2d300e
Diffstat (limited to 'catalog-ui/src/app/utils/service-csar-reader.ts')
-rw-r--r-- | catalog-ui/src/app/utils/service-csar-reader.ts | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/catalog-ui/src/app/utils/service-csar-reader.ts b/catalog-ui/src/app/utils/service-csar-reader.ts index 90de53b8c9..20dfe6ca6b 100644 --- a/catalog-ui/src/app/utils/service-csar-reader.ts +++ b/catalog-ui/src/app/utils/service-csar-reader.ts @@ -20,7 +20,7 @@ import {ServiceCsar, ToscaMetaEntry} from "../models"; import {load} from 'js-yaml'; -import { ComponentType } from "./constants"; +import {ComponentType} from "./constants"; export class ServiceCsarReader { @@ -35,8 +35,12 @@ export class ServiceCsarReader { this.readToscaMeta(toscaMetaFileContent); const entryDefinitionFileContent = await zip.file(this.serviceCsar.entryDefinitionFileName).async("string"); this.readServiceMetadata(entryDefinitionFileContent); - const interfaceDefinitionFileContent = await zip.file(this.serviceCsar.interfaceDefinitionFileName).async("string"); - this.readServiceSubstitutionNode(interfaceDefinitionFileContent); + if (zip.file(this.serviceCsar.interfaceDefinitionFileName) != null) { + const interfaceDefinitionFileContent = await zip.file(this.serviceCsar.interfaceDefinitionFileName).async("string"); + this.readSubstitutionNodeFromInterfaceDefinitionFile(interfaceDefinitionFileContent); + } else { + this.readSubstitutionNodeFromMainTemplateFile(entryDefinitionFileContent); + } resolve(this.serviceCsar); } catch (error) { reject(error); @@ -60,7 +64,6 @@ export class ServiceCsarReader { private readEntryDefinitionFileName() { this.serviceCsar.entryDefinitionFileName = this.serviceCsar.toscaMeta.getEntry(ToscaMetaEntry.ENTRY_DEFINITIONS); } - private readInterfaceDefinitionFileName() { let fileNameArray:Array<string> = this.serviceCsar.entryDefinitionFileName.split("."); fileNameArray.splice(fileNameArray.length - 1, 0, "-interface."); @@ -72,12 +75,16 @@ export class ServiceCsarReader { this.setMetadata(metadata); } - private readServiceSubstitutionNode(interfaceDefinitionFileContent) { + private readSubstitutionNodeFromInterfaceDefinitionFile(interfaceDefinitionFileContent) { const nodeTypes = load(interfaceDefinitionFileContent).node_types; let nodeType = Object.keys(nodeTypes).values().next().value; this.serviceCsar.substitutionNodeType = nodeTypes[nodeType]["derived_from"]; } + private readSubstitutionNodeFromMainTemplateFile(entryDefinitionFileContent) { + this.serviceCsar.substitutionNodeType = load(entryDefinitionFileContent).topology_template.substitution_mappings.node_type; + } + private setMetadata = (metadata:object) : void => { let extraServiceMetadata: Map<string, string> = new Map<string, string>(); this.serviceCsar.serviceMetadata.componentType = ComponentType.SERVICE; |