diff options
2 files changed, 30 insertions, 1 deletions
diff --git a/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGenerator.java b/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGenerator.java index 4640492441..f5d7828e2d 100644 --- a/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGenerator.java +++ b/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGenerator.java @@ -90,7 +90,11 @@ public class EtsiNfvNsCsarEntryGenerator implements CsarEntryGenerator { } private EtsiVersion getComponentEtsiVersion(Component component) { - final String etsiVersion = component.getCategorySpecificMetadata().get(ETSI_VERSION_METADATA); + String etsiVersion = component.getCategorySpecificMetadata().get(ETSI_VERSION_METADATA); + final String modelName = component.getModel(); + if (etsiVersion == null && modelName.matches(".*\\d+\\.\\d+\\.\\d+.*" )){ + etsiVersion = modelName.replaceAll(".*?(\\d+\\.\\d+\\.\\d+).*", "$1"); + } return EtsiVersion.convertOrNull(etsiVersion); } diff --git a/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/test/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGeneratorTest.java b/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/test/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGeneratorTest.java index d52bf5c7f0..72bc8247a4 100644 --- a/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/test/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGeneratorTest.java +++ b/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/test/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGeneratorTest.java @@ -80,6 +80,19 @@ class EtsiNfvNsCsarEntryGeneratorTest { } @Test + void successfullyEntryGenerationWithVersionFromModelNameTest() throws NsdException { + mockServiceComponentWithoutMetadata(); + final NsdCsar nsdCsar = new NsdCsar(SERVICE_NORMALIZED_NAME); + nsdCsar.setCsarPackage(new byte[5]); + when(etsiNfvNsdCsarGenerator.generateNsdCsar(service)).thenReturn(nsdCsar); + final Map<String, byte[]> entryMap = etsiNfvNsCsarEntryGenerator.generateCsarEntries(service); + assertThat("Csar Entries should contain only one entry", entryMap.size(), is(1)); + assertThat("Csar Entries should contain the expected entry", entryMap, + hasEntry(String.format(NSD_FILE_PATH_FORMAT, ETSI_PACKAGE, SERVICE_NORMALIZED_NAME, UNSIGNED_CSAR_EXTENSION), + nsdCsar.getCsarPackage())); + } + + @Test void knownNsdGenerationErrorTest() throws NsdException { mockServiceComponent(); when(etsiNfvNsdCsarGenerator.generateNsdCsar(service)).thenThrow(new NsdException("")); @@ -128,4 +141,16 @@ class EtsiNfvNsCsarEntryGeneratorTest { categoryDefinitionList.add(nsComponentCategoryDefinition); when(service.getCategories()).thenReturn(categoryDefinitionList); } + + private void mockServiceComponentWithoutMetadata() { + when(service.getName()).thenReturn("anyName"); + when(service.getComponentType()).thenReturn(ComponentTypeEnum.SERVICE); + when(service.getNormalizedName()).thenReturn(SERVICE_NORMALIZED_NAME); + when(service.getModel()).thenReturn("Any Name with Version v2.5.1"); + final List<CategoryDefinition> categoryDefinitionList = new ArrayList<>(); + final CategoryDefinition nsComponentCategoryDefinition = new CategoryDefinition(); + nsComponentCategoryDefinition.setName(CategoriesToGenerateNsd.ETSI_NS_COMPONENT_CATEGORY.getCategoryName()); + categoryDefinitionList.add(nsComponentCategoryDefinition); + when(service.getCategories()).thenReturn(categoryDefinitionList); + } } |