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