Import VFC not importing interfaces 97/130297/3
authorfranciscovila <javier.paradela.vila@est.tech>
Tue, 16 Aug 2022 12:00:48 +0000 (13:00 +0100)
committerMichael Morris <michael.morris@est.tech>
Thu, 8 Sep 2022 06:32:46 +0000 (06:32 +0000)
Fix when import VFC with Standard Interfaces to ETSI model

Issue-ID: SDC-4134
Signed-off-by: franciscovila <javier.paradela.vila@est.tech>
Change-Id: Ibf6700b406f4b71dcae9327e14fb3ad04ad5e762

catalog-be/src/main/resources/import/tosca/models/init/etsi-SOL001-v2.5.1/tosca/interface-lifecycle-types/interfaceLifecycleTypes.yml
integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/sanity/ImportVfcUiTest.java

index f746f88..ae298bf 100644 (file)
@@ -1,6 +1,19 @@
 tosca.interfaces.Root:
   description: The TOSCA root Interface Type all other TOSCA Interface Types derive from
 
+tosca.interfaces.node.lifecycle.Standard:
+  derived_from: tosca.interfaces.Root
+  create:
+    description: Standard lifecycle create operation.
+  configure:
+    description: Standard lifecycle configure operation.
+  start:
+    description: Standard lifecycle start operation.
+  stop:
+    description: Standard lifecycle stop operation.
+  delete:
+    description: Standard lifecycle delete operation.
+
 tosca.interfaces.nfv.Vnflcm:
   derived_from: tosca.interfaces.Root
   description: This interface encompasses a set of TOSCA operations corresponding to the VNF LCM operations defined in ETSI GS NFV-IFA 007 as well as to preamble and postamble procedures to the execution of the VNF LCM operations.
index 72810c5..4f8a1b8 100644 (file)
@@ -143,6 +143,62 @@ public class ImportVfcUiTest extends SetupCDTest {
 
     }
 
+    @Test
+    public void importVFC_createVF_etsi_addVFC2VF_test() throws UnzipException {
+        ComponentPage componentPage;
+        // TC - Import VFC with root namespace
+        String fileName = "org.openecomp.resource.VFC-root.yml";
+        String subCategory = ResourceCategoryEnum.GENERIC_DATABASE.getSubCategory();
+        CreateVfcFlow createVfcFlow = createVFC(fileName, ModelName.ETSI_SOL001_v2_5_1.getName(), subCategory);
+
+        componentPage = createVfcFlow.getLandedPage().orElseThrow(() -> new UiTestFlowRuntimeException("Missing expected return ResourceCreatePage"));
+        componentPage.isLoaded();
+        componentPage.certifyComponent();
+        componentPage.isLoaded();
+
+        Map<String, Object> yamlObject = downloadToscaArtifact(componentPage);
+        checkEtsiMetadata(yamlObject, vfcCreateData);
+        checkNodeTypes(yamlObject);
+        homePage.getTopNavComponent().clickOnHome();
+
+        // TC - Import hierarchy of VFCs
+        fileName = "org.openecomp.resource.VFC-child.yml";
+        createVfcFlow = createVFC(fileName, ModelName.ETSI_SOL001_v2_5_1.getName(), subCategory);
+        componentPage = createVfcFlow.getLandedPage().orElseThrow(() -> new UiTestFlowRuntimeException("Missing expected return ResourceCreatePage"));
+        componentPage.isLoaded();
+
+        componentPage = manageAttributes(componentPage);
+        componentPage.isLoaded();
+        componentPage.certifyComponent();
+        componentPage.isLoaded();
+
+        yamlObject = downloadToscaArtifact(componentPage);
+        checkEtsiMetadata(yamlObject, vfcCreateData);
+        checkNodeTypes(yamlObject);
+
+        componentPage = viewInterfaceDefinitionFromVFC(componentPage);
+        componentPage.isLoaded();
+
+        homePage.getTopNavComponent().clickOnHome();
+
+        // TC - Import VFC with interface inputs
+        // TC - Import VFC with attributes
+        final CreateVfFlow createVfFlow = createVF();
+        componentPage = createVfFlow.getLandedPage().orElseThrow(() -> new UiTestFlowRuntimeException("Missing expected return ResourceCreatePage"));
+        componentPage.isLoaded();
+
+        final CompositionPage compositionPage = addInterfaceOperations(componentPage);
+        componentPage = compositionPage.goToGeneral();
+        componentPage.isLoaded();
+        componentPage.certifyComponent();
+        componentPage.isLoaded();
+
+        yamlObject = downloadToscaArtifact(componentPage);
+        checkMetadata(yamlObject, vfCreateData);
+        checkTopologyTemplate(yamlObject);
+
+    }
+
     private ComponentPage viewInterfaceDefinitionFromVFC(final ComponentPage componentPage) {
         final GoToInterfaceDefinitionPageFlow goToInterfaceDefinitionPageFlow = new GoToInterfaceDefinitionPageFlow(webDriver);
         goToInterfaceDefinitionPageFlow.run(componentPage);
@@ -368,6 +424,19 @@ public class ImportVfcUiTest extends SetupCDTest {
         assertEquals(createdData.getVendorModelNumber(), metadata.get("reourceVendorModelNumber"));
     }
 
+    private void checkEtsiMetadata(final Map<String, Object> map, final ResourceCreateData createdData) {
+        final Map<String, Object> metadata = getMapEntry(map, "metadata");
+
+        assertEquals(createdData.getName(), metadata.get("name"));
+        assertEquals(createdData.getDescription(), metadata.get("description"));
+        assertEquals("Application L4+", metadata.get("category"));
+        assertThat((String) metadata.get("type"), not(emptyString()));
+        assertEquals(createdData.getCategory(), metadata.get("subcategory"));
+        assertEquals(createdData.getVendorName(), metadata.get("resourceVendor"));
+        assertEquals(createdData.getVendorRelease(), metadata.get("resourceVendorRelease"));
+        assertEquals(createdData.getVendorModelNumber(), metadata.get("reourceVendorModelNumber"));
+    }
+
     private void checkNodeTypes(final Map<String, Object> map) {
         final Map<String, Object> mapEntry = getMapEntry(map, "node_types");
         final Map<String, Object> nodeTypes = getMapEntry(mapEntry, mapEntry.keySet().iterator().next());