Fix NSD plugin get version from model name 32/127132/1
authorstasys10 <stasys.jurgaitis@est.tech>
Fri, 11 Feb 2022 10:26:10 +0000 (10:26 +0000)
committerStasys Jurgaitis <stasys.jurgaitis@est.tech>
Tue, 15 Feb 2022 13:38:22 +0000 (13:38 +0000)
Issue-ID: SDC-3881
Signed-off-by: stasys10 <stasys.jurgaitis@est.tech>
Change-Id: Ib90020e46079866b5846b50aa3f183ae5bf74f6c

catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGenerator.java
catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/test/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/EtsiNfvNsCsarEntryGeneratorTest.java

index 4640492..f5d7828 100644 (file)
@@ -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);
     }
 
index d52bf5c..72bc824 100644 (file)
@@ -79,6 +79,19 @@ class EtsiNfvNsCsarEntryGeneratorTest {
                 nsdCsar.getCsarPackage()));
     }
 
+    @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();
@@ -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);
+    }
 }