1 package org.openecomp.sdc.ci.tests.utilities;
3 import com.aventstack.extentreports.Status;
4 import com.clearspring.analytics.util.Pair;
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;
22 import java.util.List;
24 public class PortMirroringUtils {
27 public static ServiceContainer createServiceFromHeatFile(String filePath, String vnfFile) throws Throwable {
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"));
53 return new ServiceContainer(service, resource, vendorSoftwareProductObject, amdocsLicenseMembers);
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();
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);
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();
77 public static String createProxyInstanceServiceName(String serviceName, String instanceId) {
78 String serviceProxyInstanceName = String.format("%s_proxy %s", serviceName, instanceId);
79 return serviceProxyInstanceName;
82 public static PortMirrioringConfigurationObject createPortMirriongConfigurationStructure() throws Throwable {
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());
89 // String vmmeSourceName = "ciServiceb560327d162f";
90 // String vprobeSourceName = "ciService3d9933d31791";
93 ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();
94 //ServiceUIUtils.createService(serviceMetadata, getUser());
96 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Creating container %s: ", serviceReqDetails.getName()));
97 Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
99 String vmmeSourceName = serviceContainerVmme_Source.getService().getName();
100 String vprobeSourceName = serviceContainerVprobe_Collector.getService().getName();
102 CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
103 GeneralUIUtils.findComponentAndClick(service.getName());
105 ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
106 CanvasManager canvasManager = CanvasManager.getCanvasManager();
108 CompositionPage.searchForElement(vmmeSourceName);
109 CanvasElement serviceElementVmmeSourceName = canvasManager.createElementOnCanvas(vmmeSourceName);
111 CompositionPage.searchForElement(vprobeSourceName);
112 CanvasElement serviceElementVprobeCollector = canvasManager.createElementOnCanvas(vprobeSourceName);
114 CompositionPage.searchForElement(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());
115 CanvasElement portMirroringConfigurationElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());
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());
122 canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, CircleSize.SERVICE, portMirroringConfigurationElement, CircleSize.NORMATIVE, connectionWizardPopUpObjectVMME);
123 canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVprobeCollector, CircleSize.SERVICE, portMirroringConfigurationElement, CircleSize.NORMATIVE, connectionWizardPopUpObjectVProbe);
125 PortMirrioringConfigurationObject portMirrioringConfigurationObject = new PortMirrioringConfigurationObject(serviceReqDetails, vmmeSourceName,
126 vprobeSourceName, canvasManager, serviceElementVmmeSourceName, serviceElementVprobeCollector, service,
127 portMirroringConfigurationElement, serviceContainerVmme_Source.getService(), serviceContainerVprobe_Collector.getService());
129 return portMirrioringConfigurationObject;