Catalog alignment
[sdc.git] / ui-ci / src / main / java / org / openecomp / sdc / ci / tests / execute / sanity / OnboardViaApis.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.ci.tests.execute.sanity;
22
23 import ch.qos.logback.classic.Level;
24 import ch.qos.logback.classic.LoggerContext;
25 import fj.data.Either;
26 import org.openecomp.sdc.be.model.ComponentInstance;
27 import org.openecomp.sdc.be.model.Resource;
28 import org.openecomp.sdc.be.model.Service;
29 import org.openecomp.sdc.be.model.User;
30 import org.openecomp.sdc.ci.tests.dataProvider.OnbordingDataProviders;
31 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
32 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
33 import org.openecomp.sdc.ci.tests.datatypes.VendorLicenseModel;
34 import org.openecomp.sdc.ci.tests.datatypes.VendorSoftwareProductObject;
35 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
36 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
37 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
38 import org.openecomp.sdc.ci.tests.utilities.FileHandling;
39 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
40 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
41 import org.openecomp.sdc.ci.tests.utils.general.OnboardingUtillViaApis;
42 import org.openecomp.sdc.ci.tests.utils.general.VendorLicenseModelRestUtils;
43 import org.openecomp.sdc.ci.tests.utils.general.VendorSoftwareProductRestUtils;
44 import org.slf4j.LoggerFactory;
45 import org.testng.annotations.BeforeMethod;
46 import org.testng.annotations.Test;
47
48 import java.sql.Timestamp;
49 import java.util.List;
50
51 import static org.testng.AssertJUnit.assertTrue;
52
53
54 public class OnboardViaApis {
55
56
57     private static final String FULL_PATH = "C://tmp//CSARs//";
58     protected static String filepath = FileHandling.getVnfRepositoryPath();
59
60     //-------------------------------------------------------------------------------------------------------
61     User sdncDesignerDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
62     //  ResourceReqDetails resourceDetails;
63     Timestamp timestamp = new Timestamp(System.currentTimeMillis());
64
65
66     @BeforeMethod
67     public void before() {
68         LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
69         lc.getLogger("org.apache").setLevel(Level.OFF);
70         lc.getLogger("org.*").setLevel(Level.OFF);
71         lc.getLogger("org.openecomp.sdc.ci.tests.datatypes.http.HttpRequest").setLevel(Level.OFF);
72     }
73
74     @Test(dataProviderClass = OnbordingDataProviders.class, dataProvider = "randomVNF_List")
75     public void onboardVNFTestViaApis(String filepath, String vnfFile) throws Exception, Throwable {
76         ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource(); //getResourceReqDetails(ComponentConfigurationTypeEnum.DEFAULT);
77         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); //getServiceReqDetails(ComponentConfigurationTypeEnum.DEFAULT);
78         Service service = runOnboardViaApisOnly(serviceReqDetails, resourceReqDetails, filepath, vnfFile);
79     }
80
81
82     @Test
83     public void onboardingAndParser() throws Exception {
84         final int fileFromFolderToGet  =7;
85         Service service = null;
86         List<String> fileNamesFromFolder = FileHandling.getZipFileNamesFromFolder(filepath);
87         String vnfFile = fileNamesFromFolder.get(fileFromFolderToGet);
88         System.err.println(timestamp + " Starting test with VNF: " + vnfFile);
89         ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource(); //getResourceReqDetails(ComponentConfigurationTypeEnum.DEFAULT);
90         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); //getServiceReqDetails(ComponentConfigurationTypeEnum.DEFAULT);
91         service = runOnboardViaApisOnly(serviceReqDetails, resourceReqDetails, filepath, vnfFile);
92     }
93
94     @Test(dataProviderClass = OnbordingDataProviders.class, dataProvider = "randomVNF_List")
95     public void updateVSPFullScenario(String filepath, String vnfFile) throws Exception {
96         //CREATE DATA REQUIRED FOR TEST
97         boolean skipReport = true;
98         VendorLicenseModel vendorLicenseModel = VendorLicenseModelRestUtils.createVendorLicense(sdncDesignerDetails1);
99         ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource(); //getResourceReqDetails(ComponentConfigurationTypeEnum.DEFAULT);
100         VendorSoftwareProductObject vendorSoftwareProductObject = VendorSoftwareProductRestUtils.createVendorSoftwareProduct(resourceReqDetails, vnfFile, filepath, sdncDesignerDetails1,
101             vendorLicenseModel);
102         resourceReqDetails = OnboardingUtillViaApis.prepareOnboardedResourceDetailsBeforeCreate(resourceReqDetails, vendorSoftwareProductObject);
103         Resource resource = OnboardingUtillViaApis.createResourceFromVSP(resourceReqDetails);
104         resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
105         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); //getServiceReqDetails(ComponentConfigurationTypeEnum.DEFAULT);
106         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
107         Either<ComponentInstance, RestResponse> addComponentInstanceToComponentContainer = AtomicOperationUtils.addComponentInstanceToComponentContainer(resource, service, UserRoleEnum.DESIGNER, true);
108         ComponentInstance componentInstanceDefinition = addComponentInstanceToComponentContainer.left().value();
109         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
110         // TEST START
111
112         VendorLicenseModelRestUtils.updateVendorLicense(vendorLicenseModel, sdncDesignerDetails1, false);
113         VendorLicenseModelRestUtils.validateVlmExist(vendorLicenseModel.getVendorId(), vendorLicenseModel.getVersion(), sdncDesignerDetails1);
114
115         // Update the VSP With the VLM new version and submit the VSP
116         vendorSoftwareProductObject = VendorSoftwareProductRestUtils.updateVSPWithNewVLMParameters(vendorSoftwareProductObject,
117             vendorLicenseModel, sdncDesignerDetails1);
118         VendorSoftwareProductRestUtils.validateVspExist(vendorSoftwareProductObject, sdncDesignerDetails1);
119         Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service);
120         assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService);
121         System.out.println(distributeAndValidateService);
122     }
123
124     public Service runOnboardViaApisOnly(ServiceReqDetails serviceReqDetails, ResourceReqDetails resourceReqDetails, String filepath, String vnfFile) throws Exception {
125
126         VendorSoftwareProductObject vendorSoftwareProductObject = OnboardingUtillViaApis.createVspViaApis(resourceReqDetails, filepath, vnfFile, sdncDesignerDetails1);
127         vendorSoftwareProductObject.setName(vendorSoftwareProductObject.getName());
128
129         resourceReqDetails = OnboardingUtillViaApis.prepareOnboardedResourceDetailsBeforeCreate(resourceReqDetails, vendorSoftwareProductObject);
130         Resource resource = OnboardingUtillViaApis.createResourceFromVSP(resourceReqDetails);
131         resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
132
133         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
134
135         Either<ComponentInstance, RestResponse> addComponentInstanceToComponentContainer = AtomicOperationUtils.addComponentInstanceToComponentContainer(resource, service, UserRoleEnum.DESIGNER, true);
136         ComponentInstance componentInstanceDefinition = addComponentInstanceToComponentContainer.left().value();
137
138         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
139         return service;
140     }
141
142 }