re base code
[sdc.git] / ui-ci / src / main / java / org / openecomp / sdc / ci / tests / utilities / PortMirroringUtils.java
1 package org.openecomp.sdc.ci.tests.utilities;\r
2 \r
3 import com.aventstack.extentreports.Status;\r
4 import fj.data.Either;\r
5 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;\r
6 import org.openecomp.sdc.be.model.*;\r
7 import org.openecomp.sdc.ci.tests.datatypes.*;\r
8 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;\r
9 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;\r
10 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;\r
11 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;\r
12 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;\r
13 import org.openecomp.sdc.ci.tests.pages.CompositionPage;\r
14 import org.openecomp.sdc.ci.tests.pages.ServiceGeneralPage;\r
15 import org.openecomp.sdc.ci.tests.utils.general.*;\r
16 import org.openecomp.sdc.ci.tests.utils.general.FileHandling;\r
17 import org.openecomp.sdc.ci.tests.utils.rest.PropertyRestUtils;\r
18 \r
19 import java.util.List;\r
20 import java.util.Map;\r
21 \r
22 public class PortMirroringUtils {\r
23 \r
24 \r
25     public static ServiceContainer createServiceFromHeatFile(String filePath, String vnfFile) throws Throwable {\r
26 //              1. Import VSP v1.0\r
27         User sdncDesignerDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);\r
28         AmdocsLicenseMembers amdocsLicenseMembers = VendorLicenseModelRestUtils.createVendorLicense(sdncDesignerDetails1);\r
29         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Creating Vendor Software License (VLM): %s v1.0", amdocsLicenseMembers.getVendorLicenseName()));\r
30         ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource();\r
31         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Creating Vendor Software Product (VSP): %s v1.0 from heat file: %s ", resourceReqDetails.getName(), vnfFile));\r
32         VendorSoftwareProductObject vendorSoftwareProductObject = VendorSoftwareProductRestUtils.createVendorSoftwareProduct(resourceReqDetails, vnfFile, filePath, sdncDesignerDetails1, amdocsLicenseMembers);\r
33 //        VendorSoftwareProductObject vendorSoftwareProductObject = OnboardViaApis.fillVendorSoftwareProductObjectWithMetaData(vnfFile, createVendorSoftwareProduct);\r
34 //              2. Create VF, certify - v1.0 is created\r
35         resourceReqDetails = org.openecomp.sdc.ci.tests.utils.general.OnboardingUtillViaApis.prepareOnboardedResourceDetailsBeforeCreate(resourceReqDetails, vendorSoftwareProductObject);\r
36         Resource resource = OnboardingUtillViaApis.createResourceFromVSP(resourceReqDetails);\r
37         resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();\r
38         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Creating Virtual Function (VF): %s v1.0", resourceReqDetails.getName()));\r
39         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Certify the VF"));\r
40 //              3. Create Service add to it the certified VF and certify the Service v1.0\r
41         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();\r
42         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();\r
43         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Creating Service: %s v1.0", serviceReqDetails.getName()));\r
44         Either<ComponentInstance, RestResponse> addComponentInstanceToComponentContainer = AtomicOperationUtils.addComponentInstanceToComponentContainer(resource, service, UserRoleEnum.DESIGNER, true);\r
45         ComponentInstance componentInstance = addComponentInstanceToComponentContainer.left().value();\r
46         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Adding VF instance to Service"));\r
47         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();\r
48         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Certify the Service"));\r
49 \r
50         return new ServiceContainer(service, resource, vendorSoftwareProductObject, amdocsLicenseMembers);\r
51     }\r
52 \r
53     public static Resource GeneratePNFAndUpdateInput(String resourceName, String vendorModelNumber, User user) throws Exception {\r
54         Resource resource = getResourceByType(ResourceTypeEnum.PNF, resourceName, vendorModelNumber);\r
55         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Creating pnf %s and certify it", resource.getName()));\r
56         Component componentObject = AtomicOperationUtils.getComponentObject(resource, UserRoleEnum.DESIGNER);\r
57         UpdateResourceInputViaAPI(user, componentObject, "physicalProbe", "nf_role");\r
58         resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();\r
59         return resource;\r
60     }\r
61 \r
62     private static void UpdateResourceInputViaAPI(User user, Component componentObject, String defaultValue, String inputName) throws Exception {\r
63         List<InputDefinition> componentInputs = componentObject.getInputs();\r
64         PropertyObject propertyObject = new PropertyObject(defaultValue, inputName, componentInputs.get(1).getParentUniqueId(), componentInputs.get(1).getUniqueId());\r
65         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Update input %s to %s", "nf_role", "physicalProbe"));\r
66         PropertyRestUtils.updateInput(componentObject, propertyObject, user);\r
67     }\r
68 \r
69     public static Resource getResourceByType(ResourceTypeEnum resourceTypeEnum, String resourceName, String vendorModelNumber) {\r
70         ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResourceByType(resourceTypeEnum, resourceName, ResourceCategoryEnum.NETWORK_L2_3_INFRASTRUCTURE, resourceName, vendorModelNumber);\r
71         return AtomicOperationUtils.createResourceByResourceDetails(resourceReqDetails, UserRoleEnum.DESIGNER, true).left().value();\r
72     }\r
73 \r
74     public static String createProxyInstanceServiceName(String serviceName, String instanceId) {\r
75         String serviceProxyInstanceName = String.format("%s_proxy %s", serviceName, instanceId);\r
76         return serviceProxyInstanceName;\r
77     }\r
78 \r
79     public static PortMirrioringConfigurationObject createPortMirriongConfigurationStructure(boolean isCapPropAssign) throws Throwable {\r
80 \r
81         //Using API onboard and certify 2 zip files Source: vmmme and Collector: Vprobe\r
82         String filePath = FileHandling.getPortMirroringRepositoryPath();\r
83         ServiceContainer serviceContainerVmme_Source = PortMirroringUtils.createServiceFromHeatFile(filePath, PortMirroringEnum.VMME_ZIP.getValue());\r
84         ServiceContainer serviceContainerVprobe_Collector = PortMirroringUtils.createServiceFromHeatFile(filePath, PortMirroringEnum.VPROBE_ZIP.getValue());\r
85 \r
86         // create service\r
87         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();\r
88         //ServiceUIUtils.createService(serviceMetadata, getUser());\r
89 \r
90         SetupCDTest.getExtendTest().log(Status.INFO, String.format("Creating container %s: ", serviceReqDetails.getName()));\r
91         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();\r
92 \r
93         String vmmeSourceName = serviceContainerVmme_Source.getService().getName();\r
94         String vprobeSourceName = serviceContainerVprobe_Collector.getService().getName();\r
95 \r
96         CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);\r
97         GeneralUIUtils.findComponentAndClick(service.getName());\r
98 \r
99         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();\r
100         CanvasManager canvasManager = CanvasManager.getCanvasManager();\r
101 \r
102         CanvasElement serviceElementVmmeSourceName = canvasManager.createElementOnCanvas(vmmeSourceName);\r
103 \r
104         CanvasElement serviceElementVprobeCollector = canvasManager.createElementOnCanvas(vprobeSourceName);\r
105 \r
106         CompositionPage.searchForElement(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());\r
107         CanvasElement portMirroringConfigurationElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());\r
108 \r
109         ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("", "",\r
110                 PortMirroringEnum.PM_REQ_TYPE.getValue(), PortMirroringEnum.PMC_SOURCE_CAP.getValue());\r
111         ConnectionWizardPopUpObject connectionWizardPopUpObjectVProbe = new ConnectionWizardPopUpObject("", "",\r
112                 PortMirroringEnum.PM_REQ_TYPE.getValue(), PortMirroringEnum.PMC_COLLECTOR_CAP.getValue());\r
113         Map<String, String> capPropValues1 = null;\r
114 \r
115         if(isCapPropAssign){\r
116            capPropValues1 = canvasManager.linkElementsWithCapPropAssignment(serviceElementVmmeSourceName, portMirroringConfigurationElement, connectionWizardPopUpObjectVMME);\r
117            GeneralUIUtils.waitForLoader(2000);\r
118            canvasManager.linkElementsWithCapPropAssignment(serviceElementVprobeCollector, portMirroringConfigurationElement, connectionWizardPopUpObjectVProbe);}\r
119            else {\r
120                canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, portMirroringConfigurationElement, connectionWizardPopUpObjectVMME);\r
121                canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVprobeCollector, portMirroringConfigurationElement, connectionWizardPopUpObjectVProbe);\r
122         }\r
123 \r
124 \r
125         PortMirrioringConfigurationObject portMirrioringConfigurationObject = new PortMirrioringConfigurationObject(serviceReqDetails, vmmeSourceName,\r
126                 vprobeSourceName, canvasManager, serviceElementVmmeSourceName, serviceElementVprobeCollector, service,\r
127                 portMirroringConfigurationElement, serviceContainerVmme_Source.getService(), serviceContainerVprobe_Collector.getService());\r
128 \r
129         if(capPropValues1!=null)\r
130           portMirrioringConfigurationObject.setCapPropValues(capPropValues1);\r
131 \r
132         return portMirrioringConfigurationObject;\r
133     }\r
134 \r
135 }\r