1 package org.openecomp.sdc.ci.tests.utilities;
\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
19 import java.util.List;
\r
20 import java.util.Map;
\r
22 public class PortMirroringUtils {
\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
50 return new ServiceContainer(service, resource, vendorSoftwareProductObject, amdocsLicenseMembers);
\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
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
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
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
79 public static PortMirrioringConfigurationObject createPortMirriongConfigurationStructure(boolean isCapPropAssign) throws Throwable {
\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
87 ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();
\r
88 //ServiceUIUtils.createService(serviceMetadata, getUser());
\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
93 String vmmeSourceName = serviceContainerVmme_Source.getService().getName();
\r
94 String vprobeSourceName = serviceContainerVprobe_Collector.getService().getName();
\r
96 CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
\r
97 GeneralUIUtils.findComponentAndClick(service.getName());
\r
99 ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
\r
100 CanvasManager canvasManager = CanvasManager.getCanvasManager();
\r
102 CanvasElement serviceElementVmmeSourceName = canvasManager.createElementOnCanvas(vmmeSourceName);
\r
104 CanvasElement serviceElementVprobeCollector = canvasManager.createElementOnCanvas(vprobeSourceName);
\r
106 CompositionPage.searchForElement(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());
\r
107 CanvasElement portMirroringConfigurationElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());
\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
115 if(isCapPropAssign){
\r
116 capPropValues1 = canvasManager.linkElementsWithCapPropAssignment(serviceElementVmmeSourceName, portMirroringConfigurationElement, connectionWizardPopUpObjectVMME);
\r
117 GeneralUIUtils.waitForLoader(2000);
\r
118 canvasManager.linkElementsWithCapPropAssignment(serviceElementVprobeCollector, portMirroringConfigurationElement, connectionWizardPopUpObjectVProbe);}
\r
120 canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, portMirroringConfigurationElement, connectionWizardPopUpObjectVMME);
\r
121 canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVprobeCollector, portMirroringConfigurationElement, connectionWizardPopUpObjectVProbe);
\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
129 if(capPropValues1!=null)
\r
130 portMirrioringConfigurationObject.setCapPropValues(capPropValues1);
\r
132 return portMirrioringConfigurationObject;
\r