diff options
Diffstat (limited to 'ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/ToscaValidationTest.java')
-rw-r--r-- | ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/ToscaValidationTest.java | 945 |
1 files changed, 0 insertions, 945 deletions
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/ToscaValidationTest.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/ToscaValidationTest.java deleted file mode 100644 index 9eb0a49a64..0000000000 --- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/ToscaValidationTest.java +++ /dev/null @@ -1,945 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.ci.tests.execute.sanity; - -import com.aventstack.extentreports.Status; -import fj.data.Either; -import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; -import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; -import org.onap.sdc.toscaparser.api.Group; -import org.onap.sdc.toscaparser.api.NodeTemplate; -import org.onap.sdc.toscaparser.api.elements.Metadata; -import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; -import org.openecomp.sdc.be.model.ArtifactDefinition; -import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.ComponentInstance; -import org.openecomp.sdc.be.model.ComponentInstanceInput; -import org.openecomp.sdc.be.model.GroupDefinition; -import org.openecomp.sdc.be.model.GroupInstance; -import org.openecomp.sdc.be.model.PropertyDefinition; -import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.Service; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.ci.tests.dataProvider.OnbordingDataProviders; -import org.openecomp.sdc.ci.tests.datatypes.GroupHeatMetaDefinition; -import org.openecomp.sdc.ci.tests.datatypes.HeatMetaFirstLevelDefinition; -import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails; -import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails; -import org.openecomp.sdc.ci.tests.datatypes.TypeHeatMetaDefinition; -import org.openecomp.sdc.ci.tests.datatypes.VendorSoftwareProductObject; -import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum; -import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum; -import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum; -import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse; -import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest; -import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaDefinition; -import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaGroupPropertyDefinition; -import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaGroupsTopologyTemplateDefinition; -import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaInputsTopologyTemplateDefinition; -import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaServiceGroupsMetadataDefinition; -import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaTopologyTemplateDefinition; -import org.openecomp.sdc.ci.tests.tosca.datatypes.VfModuleDefinition; -import org.openecomp.sdc.ci.tests.tosca.model.ToscaMetadataFieldsPresentationEnum; -import org.openecomp.sdc.ci.tests.utilities.DownloadManager; -import org.openecomp.sdc.ci.tests.utilities.FileHandling; -import org.openecomp.sdc.ci.tests.utils.CsarParserUtils; -import org.openecomp.sdc.ci.tests.utils.ToscaParserUtils; -import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils; -import org.openecomp.sdc.ci.tests.utils.general.ElementFactory; -import org.openecomp.sdc.ci.tests.utils.general.OnboardingUtillViaApis; -import org.openecomp.sdc.ci.tests.utils.rest.ArtifactRestUtils; -import org.openecomp.sdc.ci.tests.utils.rest.PropertyRestUtils; -import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser; -import org.openecomp.sdc.ci.tests.verificator.ToscaValidation; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import static org.testng.Assert.assertFalse; - - -public class ToscaValidationTest extends SetupCDTest { - - private static final String GENERIC_VF = "Generic_VF"; - private static final String GENERIC_PNF = "Generic_PNF"; - private static final String GENERIC_CR = "Generic_CR"; - - protected SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); - User user = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER); - - @Test(dataProviderClass = OnbordingDataProviders.class, dataProvider = "VNF_List") - public void toscaFileValidator(String filePath, String vnfFile) throws Exception { -//--------------------------GENERAL-------------------------------- -/*// for debugging only - setLog("Test"); - File amdocsCsarFileName = (new File("C:\\Users\\al714h\\Downloads\\d218be69637647b0b693647d84a8c03f.csar")); - toscaMainAmdocsDefinition = ToscaParserUtils.parseToscaMainYamlToJavaObjectByCsarLocation(amdocsCsarFileName); - toscaMainVfDefinition = ToscaParserUtils.parseToscaMainYamlToJavaObjectByCsarLocation(new File("C:\\Users\\al714h\\Downloads\\resource-Civfonboarded2016073VmxBv301072E2eE60f5c15-csar.csar")); - */ - // vnfFile = "vRouter for DHV Test_Version_4.zip"; - setLog(vnfFile); - List<Boolean> status = new ArrayList<>(); - ISdcCsarHelper fdntCsarHelper; - File filesFolder = new File(SetupCDTest.getWindowTest().getDownloadDirectory()); -//--------------------------AMDOCS-------------------------------- - ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, user);//getResourceReqDetails(ComponentConfigurationTypeEnum.DEFAULT); - resourceReqDetails = createCustomizedVsp(resourceReqDetails, filePath, vnfFile); - ToscaDefinition toscaMainAmdocsDefinition = downloadAndGetToscaMainYamlObjectUI(resourceReqDetails, filesFolder); -//------adding generic inputs to expected object - toscaMainAmdocsDefinition = addGenericPropertiesToToscaDefinitionObject(toscaMainAmdocsDefinition, GENERIC_VF); -// copy object - ToscaDefinition toscaExpectedMainServiceDefinition = new ToscaDefinition(toscaMainAmdocsDefinition); -// create list of modules from HEAT.meta file - File latestFileFromDir = FileHandling.getLastModifiedFileNameFromDir(); - List<TypeHeatMetaDefinition> listTypeHeatMetaDefinition = CsarParserUtils.getListTypeHeatMetaDefinition(latestFileFromDir); -//TODO VfModuleVerificator.verifyGroupMetadata(); -//TODO--------------------------AMDOCS DOWNLOAD VIA APIS-------------------------------- -//--------------------------VF-------------------------------- -// create VF base on VNF imported from previous step - have, resourceReqDetails object include part of resource metadata - Resource resource = OnboardingUtillViaApis.createResourceFromVSP(resourceReqDetails); - resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); - ToscaDefinition toscaMainVfDefinition = downloadAndGetToscaMainYamlObjectApi(resource, filesFolder); -//--------------------------SERVICE-------------------------------- - ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();//getServiceReqDetails(ComponentConfigurationTypeEnum.DEFAULT); - Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); - Either<ComponentInstance, RestResponse> addComponentInstanceToComponentContainer = AtomicOperationUtils.addComponentInstanceToComponentContainer(resource, service, UserRoleEnum.DESIGNER, true); - ComponentInstance componentInstanceDefinition = addComponentInstanceToComponentContainer.left().value(); -//--------------------------getProperties set values and declare-------------------- - Component componentObject = AtomicOperationUtils.getComponentObject(service, UserRoleEnum.DESIGNER); - Map<String, List<ComponentInstanceInput>> componentInstancesInputs = componentObject.getComponentInstancesInputs(); - setValuesToPropertiesList(componentInstancesInputs, toscaExpectedMainServiceDefinition); - PropertyRestUtils.declareProporties(componentObject, componentInstancesInputs, user); - - service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); - Map<String, VfModuleDefinition> expectedVfModulesDefinitionObject = createExpectedVfModuleDefinitionObject(resource, service, listTypeHeatMetaDefinition); - - File serviceCsarFileName = new File(File.separator + "ServiceCsar_" + ElementFactory.generateUUIDforSufix() + ".csar"); - OnboardingUtillViaApis.downloadToscaCsarToDirectory(service, new File(filesFolder.getPath() + serviceCsarFileName)); - ToscaDefinition toscaMainServiceDefinition = ToscaParserUtils.parseToscaMainYamlToJavaObjectByCsarLocation(new File(filesFolder.getPath() + serviceCsarFileName)); -//--------------------------initialization of Tosca Parser-------------------------------- - fdntCsarHelper = initSdcCsarHelper(serviceCsarFileName, filesFolder); -////---------------------------TESTS-------------------------------------------------- - validateVfModuleJsonFile(expectedVfModulesDefinitionObject, service, componentInstanceDefinition.getUniqueId(), vnfFile, status); - validateVfMetadata(toscaMainAmdocsDefinition, toscaMainVfDefinition, resourceReqDetails, resource, vnfFile, status); - validateResourceNodeTemplateMetadata(toscaMainVfDefinition, resource, vnfFile, status); - validateServiceMetadata(toscaMainServiceDefinition, serviceReqDetails, service, vnfFile, status); - validateServiceNodeTemplateMetadata(toscaMainServiceDefinition, componentInstanceDefinition, resourceReqDetails, resource, vnfFile, status); - validateServiceMetadataUsingParser(fdntCsarHelper, serviceReqDetails, service, vnfFile, status); - validateServiceNodeTemplateMetadataUsingParser(fdntCsarHelper, resourceReqDetails, resource, componentInstanceDefinition, vnfFile, status); - validateResourceInputs(toscaMainAmdocsDefinition, toscaMainVfDefinition, vnfFile, status); - validateServiceInputs(toscaExpectedMainServiceDefinition, toscaMainServiceDefinition, vnfFile, status); - validateServiceInputsUsingParser(fdntCsarHelper, toscaExpectedMainServiceDefinition, vnfFile, status); - - Map<String, ToscaGroupsTopologyTemplateDefinition> expectedToscaServiceGroupsDefinitionObject = createExpectedToscaServiceGroupsDefinitionObject(resource, service, listTypeHeatMetaDefinition); - validateServiceModuleMetadata(expectedToscaServiceGroupsDefinitionObject, toscaMainServiceDefinition, vnfFile, status); - validateServiceModuleProperty(expectedToscaServiceGroupsDefinitionObject, toscaMainServiceDefinition, vnfFile, status); - validateServiceModuleMetadataUsingParser(fdntCsarHelper, expectedToscaServiceGroupsDefinitionObject, vnfFile, status); - validateServiceModulePropertyUsingParser(fdntCsarHelper, expectedToscaServiceGroupsDefinitionObject, vnfFile, status); - - if (status.contains(false)) { - SetupCDTest.getExtendTest().log(Status.FAIL, "Summary: tosca validation test failed with zip file " + vnfFile); - assertFalse(true); - } - } - - - @DataProvider(name = "toscaValidationTest", parallel = true) - public static Object[][] dataProviderForSpecificResourceType() { - return new Object[][]{ - {"networkModel", ResourceTypeEnum.PNF, GENERIC_PNF}, - {"collectorResourceModel", ResourceTypeEnum.CR, GENERIC_CR}, - }; - } - - @Test(dataProvider = "toscaValidationTest") - public void validateSpecificResourceType(String type, ResourceTypeEnum resourceType, String genericPropName) throws Exception { -//--------------------------GENERAL-------------------------------- - String vnfFile = type; - setLog(vnfFile); - List<Boolean> status = new ArrayList<>(); - ISdcCsarHelper fdntCsarHelper; - ToscaDefinition expectedToscaMainDefinition = new ToscaDefinition(); - File filesFolder = new File(SetupCDTest.getWindowTest().getDownloadDirectory()); -// filesFolder = new File(SetupCDTest.getWindowTest().getDownloadDirectory()); - - ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResourceByType(resourceType, user); - expectedToscaMainDefinition = addGenericPropertiesToToscaDefinitionObject(expectedToscaMainDefinition, genericPropName); - ToscaDefinition toscaExpectedMainServiceDefinition = new ToscaDefinition(expectedToscaMainDefinition); -//--------------------------VF-------------------------------- - Resource resource = AtomicOperationUtils.createResourceByResourceDetails(resourceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); - resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); - - ToscaDefinition toscaMainVfDefinition = downloadAndGetToscaMainYamlObjectApi(resource, filesFolder); - -//--------------------------SERVICE-------------------------------- - ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); - Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); - - Either<ComponentInstance, RestResponse> addComponentInstanceToComponentContainer = AtomicOperationUtils.addComponentInstanceToComponentContainer(resource, service, UserRoleEnum.DESIGNER, true); - ComponentInstance componentInstanceDefinition = addComponentInstanceToComponentContainer.left().value(); - -//--------------------------getProperties set values and declare-------------------- - - Component componentObject = AtomicOperationUtils.getComponentObject(service, UserRoleEnum.DESIGNER); - Map<String, List<ComponentInstanceInput>> componentInstancesInputs = componentObject.getComponentInstancesInputs(); - setValuesToPropertiesList(componentInstancesInputs, toscaExpectedMainServiceDefinition); - PropertyRestUtils.declareProporties(componentObject, componentInstancesInputs, user); - - service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); - File ServiceCsarFileName = new File(File.separator + "ServiceCsar_" + ElementFactory.generateUUIDforSufix() + ".csar"); - OnboardingUtillViaApis.downloadToscaCsarToDirectory(service, new File(filesFolder.getPath() + ServiceCsarFileName)); - ToscaDefinition toscaMainServiceDefinition = ToscaParserUtils.parseToscaMainYamlToJavaObjectByCsarLocation(new File(filesFolder.getPath() + ServiceCsarFileName)); - -//--------------------------initialization of Tosca Parser-------------------------------- - - fdntCsarHelper = initSdcCsarHelper(ServiceCsarFileName, filesFolder); - - -//---------------------------TESTS-------------------------------------------------- - validateVfMetadata(expectedToscaMainDefinition, toscaMainVfDefinition, resourceReqDetails, resource, vnfFile, status); - validateResourceNodeTemplateMetadata(toscaMainVfDefinition, resource, vnfFile, status); - validateServiceMetadata(toscaMainServiceDefinition, serviceReqDetails, service, vnfFile, status); - validateServiceNodeTemplateMetadata(toscaMainServiceDefinition, componentInstanceDefinition, resourceReqDetails, resource, vnfFile, status); - validateServiceMetadataUsingParser(fdntCsarHelper, serviceReqDetails, service, vnfFile, status); - validateServiceNodeTemplateMetadataUsingParser(fdntCsarHelper, resourceReqDetails, resource, componentInstanceDefinition, vnfFile, status); - validateResourceInputs(expectedToscaMainDefinition, toscaMainVfDefinition, vnfFile, status); - validateServiceInputs(toscaExpectedMainServiceDefinition, toscaMainServiceDefinition, vnfFile, status); - validateServiceInputsUsingParser(fdntCsarHelper, toscaExpectedMainServiceDefinition, vnfFile, status); - - if (status.contains(false)) { - SetupCDTest.getExtendTest().log(Status.FAIL, "Summary: tosca validation test failed with zip file " + vnfFile); - assertFalse(true); - } - } - - /** - * The method set values to toscaDefinition object service level only, to resource level should put instead of setDefault --> setValue - * inputs.get(componentInstanceInput.getName()).setValue(randomString); - * - * @param componentInstancesInputs list of componentInstancesInputs - * @param toscaDefinition - */ - private void setValuesToPropertiesList(Map<String, List<ComponentInstanceInput>> componentInstancesInputs, ToscaDefinition toscaDefinition) { - for (Map.Entry<String, List<ComponentInstanceInput>> entry : componentInstancesInputs.entrySet()) { - List<ComponentInstanceInput> value = entry.getValue(); - String[] names = entry.getKey().split("\\."); - String expectedServiceInputPrefix = null; - Map<String, ToscaInputsTopologyTemplateDefinition> inputs = toscaDefinition.getTopology_template().getInputs(); - if (names.length > 0) { - expectedServiceInputPrefix = names[names.length - 1] + "_"; - } - for (ComponentInstanceInput componentInstanceInput : value) { - - - String type = componentInstanceInput.getType(); - List<String> myList = new ArrayList<>(); - myList.add("cbf8049e-69e8-48c3-a06f-255634391403"); - switch (type) { - case "string": - String randomString = getRandomString(); - componentInstanceInput.setValue(randomString); - inputs.get(componentInstanceInput.getName()).setDefault(randomString); - - break; - case "integer": - int randomInteger = getRandomInteger(); - componentInstanceInput.setValue(Integer.toString(randomInteger)); - inputs.get(componentInstanceInput.getName()).setDefault(randomInteger); - break; - case "float": - componentInstanceInput.setValue("5.5"); - inputs.get(componentInstanceInput.getName()).setDefault("5.5"); - - break; - case "boolean": - componentInstanceInput.setValue("true"); - inputs.get(componentInstanceInput.getName()).setDefault("true"); - break; - case "list": - String myListofStrings = myList.toString(); - componentInstanceInput.setValue(myListofStrings); - inputs.get(componentInstanceInput.getName()).setDefault(myListofStrings); - break; - case "json": - String myJson = "{\"firstParam\":\"my First Param Value\",\"secondParam\":\"my Second Param Value\",\"numberParam\":666}"; - componentInstanceInput.setValue(myJson); - inputs.get(componentInstanceInput.getName()).setDefault(myJson); - break; - case "comma_delimited_list": - String commaDelimitedList = "[\"one\", \"two\"]"; - componentInstanceInput.setValue(commaDelimitedList); - inputs.get(componentInstanceInput.getName()).setDefault(commaDelimitedList); - break; - default: - break; - } - - String expectedServiceInputName = expectedServiceInputPrefix + componentInstanceInput.getName(); - ToscaInputsTopologyTemplateDefinition oldInput = inputs.get(componentInstanceInput.getName()); - inputs.put(expectedServiceInputName, oldInput); - inputs.remove(componentInstanceInput.getName()); - - } - - } - } - - protected String getRandomString() { - final int LengthOfRandomString = 18; - String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; - StringBuilder salt = new StringBuilder(); - Random rnd = new Random(); - while (salt.length() < LengthOfRandomString) { - int index = (int) (rnd.nextFloat() * SALTCHARS.length()); - salt.append(SALTCHARS.charAt(index)); - } - String strValue = salt.toString(); - return strValue; - - } - - protected int getRandomInteger() { - final int low = 10; - final int high = 100; - Random r = new Random(); - return r.nextInt(high - low) + low; - } - - - //--------------------------Metadata verification-------------------------------- -//--------------------------Resource-------------------------------- - - public List<Boolean> validateVfMetadata(ToscaDefinition toscaMainAmdocsDefinition, ToscaDefinition toscaMainVfDefinition, ResourceReqDetails resourceReqDetails, Resource resource, String vnfFile, List<Boolean> status) throws Exception { - reportStartTestPrint("validateVfMetadata", vnfFile); - //add resource metadata to expected object - toscaMainAmdocsDefinition = addAndGenerateResourceMetadataToExpectedObject(toscaMainAmdocsDefinition, resourceReqDetails, resource); - Either<Boolean, Map<String, Object>> resourceToscaMetadataValidator = ToscaValidation.resourceToscaMetadataValidator(toscaMainAmdocsDefinition, toscaMainVfDefinition); - if (resourceToscaMetadataValidator.isRight()) { - status.add(false); - } - return status; - } - - public List<Boolean> validateResourceNodeTemplateMetadata(ToscaDefinition toscaMainVfDefinition, Resource resource, String vnfFile, List<Boolean> status) throws Exception { - reportStartTestPrint("validateResourceNodeTemplateMetadata", vnfFile); - Map<String, Map<String, String>> generateReosurceNodeTemplateMetadataToExpectedObject = generateResourceNodeTemplateMetadataToExpectedObject(resource); - Boolean resourceToscaMetadataValidator = ToscaValidation.resourceToscaNodeTemplateMetadataValidator(generateReosurceNodeTemplateMetadataToExpectedObject, toscaMainVfDefinition); - if (!resourceToscaMetadataValidator) { - status.add(false); - } - return status; - } - - //--------------------------Service-------------------------------- - public List<Boolean> validateServiceMetadata(ToscaDefinition toscaMainServiceDefinition, ServiceReqDetails serviceReqDetails, Service service, String vnfFile, List<Boolean> status) throws Exception { - reportStartTestPrint("validateServiceMetadata", vnfFile); - Map<String, String> generateServiceMetadataToExpectedObject = generateServiceMetadataToExpectedObject(serviceReqDetails, service); - Either<Boolean, Map<String, Object>> serviceToscaMetadataValidator = ToscaValidation.serviceToscaMetadataValidator(generateServiceMetadataToExpectedObject, toscaMainServiceDefinition); - if (serviceToscaMetadataValidator.isRight()) { - status.add(false); - } - return status; - } - - - public List<Boolean> validateServiceNodeTemplateMetadata(ToscaDefinition toscaMainServiceDefinition, ComponentInstance componentInstanceDefinition, ResourceReqDetails resourceReqDetails, Resource resource, String vnfFile, List<Boolean> status) throws Exception { - reportStartTestPrint("validateServiceNodeTemplateMetadata", vnfFile); - Map<String, String> generateServiceNodeTemplateMetadataToExpectedObject = generateServiceNodeTemplateMetadataToExpectedObject(resourceReqDetails, resource, componentInstanceDefinition); - Either<Boolean, Map<String, Object>> serviceToscaMetadataValidator = ToscaValidation.componentToscaNodeTemplateMetadataValidator(generateServiceNodeTemplateMetadataToExpectedObject, toscaMainServiceDefinition, componentInstanceDefinition.getName(), ComponentTypeEnum.SERVICE, componentInstanceDefinition.getName()); - if (serviceToscaMetadataValidator.isRight()) { - status.add(false); - } - return status; - } - - private List<Boolean> validateVfModuleJsonFile(Map<String, VfModuleDefinition> expectedVfModulesDefinitionObject, Service service, String resInstUniqueId, String vnfFile, List<Boolean> status) throws Exception { - reportStartTestPrint("validateVfModuleJsonFile", vnfFile); - String artifactUniqueId = null; - for (ComponentInstance inst : service.getComponentInstances()) { - if (inst.getUniqueId().equals(resInstUniqueId)) { - artifactUniqueId = inst.getDeploymentArtifacts().get("vfModulesMetadata").getUniqueId(); - break; - } - } - if (artifactUniqueId == null) { - SetupCDTest.getExtendTest().log(Status.ERROR, "validateVfModuleJsonFile verification failed, artifact vfModulesMetadata not found"); - status.add(false); - return status; - } - RestResponse restResponse = ArtifactRestUtils.downloadResourceInstanceArtifact(service.getUniqueId(), resInstUniqueId, user, artifactUniqueId); - String artifactPayload = ArtifactRestUtils.getDecodedArtifactPayloadFromResponse(restResponse); - Map<String, VfModuleDefinition> actualVfModulesDefinitionObject = ResponseParser.convertVfModuleJsonResponseToJavaObject(artifactPayload); - Either<Boolean, Map<String, Object>> vfModuleJsonFileValidator = ToscaValidation.vfModuleJsonFileValidator(expectedVfModulesDefinitionObject, actualVfModulesDefinitionObject); - if (vfModuleJsonFileValidator.isRight()) { - status.add(false); - } - return status; - } - - //--------------------------Service verification against Pavel Parser-------------------------------- - public List<Boolean> validateServiceMetadataUsingParser(ISdcCsarHelper fdntCsarHelper, ServiceReqDetails serviceReqDetails, Service service, String vnfFile, List<Boolean> status) throws Exception { - if (fdntCsarHelper == null) { - reportSkipTestPrint("validateServiceMetadataUsingParser", status); - } else { - reportStartTestPrint("validateServiceMetadataUsingParser", vnfFile); - Map<String, String> generateServiceMetadataToExpectedObject = generateServiceMetadataToExpectedObject(serviceReqDetails, service); - Metadata serviceMetadata = fdntCsarHelper.getServiceMetadata(); - Either<Boolean, Map<String, Object>> serviceToscaMetadataValidatorAgainstParser = ToscaValidation.serviceToscaMetadataValidatorAgainstParser(generateServiceMetadataToExpectedObject, serviceMetadata); - if (serviceToscaMetadataValidatorAgainstParser.isRight()) { - status.add(false); - } - } - return status; - } - - public List<Boolean> validateServiceNodeTemplateMetadataUsingParser(ISdcCsarHelper fdntCsarHelper, ResourceReqDetails resourceReqDetails, Resource resource, ComponentInstance componentInstanceDefinition, String vnfFile, List<Boolean> status) throws Exception { - if (fdntCsarHelper == null) { - reportSkipTestPrint("validateServiceNodeTemplateMetadataUsingParser", status); - } else { - reportStartTestPrint("validateServiceNodeTemplateMetadataUsingParser", vnfFile); - Map<String, String> generateServiceNodeTemplateMetadataToExpectedObject = generateServiceNodeTemplateMetadataToExpectedObject(resourceReqDetails, resource, componentInstanceDefinition); - List<NodeTemplate> serviceNodeTemplates = fdntCsarHelper.getServiceNodeTemplates(); - Metadata serviceNodeTemplateMetadata = serviceNodeTemplates.get(0).getMetaData(); - Either<Boolean, Map<String, Object>> serviceNodeTemplateToscaMetadataValidatorAgainstParser = ToscaValidation.serviceToscaMetadataValidatorAgainstParser(generateServiceNodeTemplateMetadataToExpectedObject, serviceNodeTemplateMetadata); - if (serviceNodeTemplateToscaMetadataValidatorAgainstParser.isRight()) { - status.add(false); - } - } - return status; - } - - //--------------------------Input verification-------------------------------- - - //--------------------------Resource-------------------------------- - public List<Boolean> validateResourceInputs(ToscaDefinition toscaMainAmdocsDefinition, ToscaDefinition toscaMainVfDefinition, String vnfFile, List<Boolean> status) throws Exception { - reportStartTestPrint("validateResourceInputs", vnfFile); - Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputsMap = toscaMainAmdocsDefinition.getTopology_template().getInputs(); - Map<String, ToscaInputsTopologyTemplateDefinition> actualInputsMap = toscaMainVfDefinition.getTopology_template().getInputs(); - Either<Boolean, Map<String, Object>> toscaInputsValidator = ToscaValidation.toscaInputsValidator(expectedInputsMap, actualInputsMap); - if (toscaInputsValidator.isRight()) { - status.add(false); - } - return status; - } - - //--------------------------Service-------------------------------- - - public List<Boolean> validateServiceInputs(ToscaDefinition toscaExpectedMainServiceDefinition, ToscaDefinition toscaMainServiceDefinition, String vnfFile, List<Boolean> status) throws Exception { - reportStartTestPrint("validateServiceInputs", vnfFile); - Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputsMap = toscaExpectedMainServiceDefinition.getTopology_template().getInputs(); - Map<String, ToscaInputsTopologyTemplateDefinition> actualInputsMap = toscaMainServiceDefinition.getTopology_template().getInputs(); - Either<Boolean, Map<String, Object>> toscaInputsValidator = ToscaValidation.toscaInputsValidator(expectedInputsMap, actualInputsMap); - if (toscaInputsValidator.isRight()) { - status.add(false); - } - return status; - } - - public List<Boolean> validateServiceModuleMetadata(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedToscaServiceGroupsDefinitionObject, ToscaDefinition toscaMainServiceDefinition, String vnfFile, List<Boolean> status) { - reportStartTestPrint("validateServiceModuleMetadata", vnfFile); - - Either<Boolean, Map<String, Object>> toscaServiceModuleMetadataValidator = ToscaValidation.serviceToscaGroupMetadataValidator(expectedToscaServiceGroupsDefinitionObject, toscaMainServiceDefinition); - if (toscaServiceModuleMetadataValidator.isRight()) { - status.add(false); - } - return status; - } - - public List<Boolean> validateServiceModuleProperty(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedToscaServiceGroupsDefinitionObject, ToscaDefinition toscaMainServiceDefinition, String vnfFile, List<Boolean> status) { - reportStartTestPrint("validateServiceModuleProperty", vnfFile); - - Either<Boolean, Map<String, Object>> toscaServiceModulePropertyValidator = ToscaValidation.serviceToscaGroupPropertyValidator(expectedToscaServiceGroupsDefinitionObject, toscaMainServiceDefinition); - if (toscaServiceModulePropertyValidator.isRight()) { - status.add(false); - } - return status; - } - - //--------------------------Service verification against Pavel Parser-------------------------------- - public List<Boolean> validateServiceInputsUsingParser(ISdcCsarHelper fdntCsarHelper, ToscaDefinition toscaExpectedMainServiceDefinition, String vnfFile, List<Boolean> status) throws Exception { - if (fdntCsarHelper == null) { - reportSkipTestPrint("validateServiceInputsUsingParser", status); - } else { - reportStartTestPrint("validateServiceInputsUsingParser", vnfFile); - Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputsMap = toscaExpectedMainServiceDefinition.getTopology_template().getInputs(); - Either<Boolean, Map<String, Object>> toscaInputsValidator = ToscaValidation.toscaInputsValidatorAgainstParser(expectedInputsMap, fdntCsarHelper); - if (toscaInputsValidator.isRight()) { - status.add(false); - } - } - return status; - } - - public List<Boolean> validateServiceModuleMetadataUsingParser(ISdcCsarHelper fdntCsarHelper, Map<String, ToscaGroupsTopologyTemplateDefinition> expectedToscaServiceGroupsDefinitionObject, String vnfFile, List<Boolean> status) { - reportStartTestPrint("validateServiceModuleMetadataUsingParser", vnfFile); - String customizationUUID = fdntCsarHelper.getServiceNodeTemplates().get(0).getMetaData().getValue("customizationUUID"); - List<Group> actualGroups = fdntCsarHelper.getVfModulesByVf(customizationUUID); - Either<Boolean, Map<String, Object>> toscaServiceModuleMetadataValidator = ToscaValidation.serviceToscaGroupMetadataValidatorUsingParser(expectedToscaServiceGroupsDefinitionObject, actualGroups); - if (toscaServiceModuleMetadataValidator.isRight()) { - status.add(false); - } - return status; - } - - public List<Boolean> validateServiceModulePropertyUsingParser(ISdcCsarHelper fdntCsarHelper, Map<String, ToscaGroupsTopologyTemplateDefinition> expectedToscaServiceGroupsDefinitionObject, String vnfFile, List<Boolean> status) { - reportStartTestPrint("validateServiceModuleMetadataUsingParser", vnfFile); - String customizationUUID = fdntCsarHelper.getServiceNodeTemplates().get(0).getMetaData().getValue("customizationUUID"); - List<Group> actualGroups = fdntCsarHelper.getVfModulesByVf(customizationUUID); - Either<Boolean, Map<String, Object>> toscaServiceModuleMetadataValidator = ToscaValidation.serviceToscaGroupPropertyValidatorUsingParser(expectedToscaServiceGroupsDefinitionObject, actualGroups); - if (toscaServiceModuleMetadataValidator.isRight()) { - status.add(false); - } - return status; - } - - private Map<String, ToscaGroupsTopologyTemplateDefinition> createExpectedToscaServiceGroupsDefinitionObject(Resource resource, Service service, List<TypeHeatMetaDefinition> listTypeHeatMetaDefinition) { - Map<String, ToscaGroupsTopologyTemplateDefinition> toscaGroupsTopologyTemplateDefinitionMap = new HashMap<>(); - - for (TypeHeatMetaDefinition moduleType : listTypeHeatMetaDefinition) { - if (!moduleType.getTypeName().equals("artifacts")) { - for (GroupHeatMetaDefinition module : moduleType.getGroupHeatMetaDefinition()) { - ToscaGroupsTopologyTemplateDefinition toscaGroupsTopologyTemplateDefinition = new ToscaGroupsTopologyTemplateDefinition(); - String resourceModuleName = buildResourceModuleName(resource, module.getGroupName()); - ToscaServiceGroupsMetadataDefinition toscaServiceGroupsMetadataDefinition = setGroupMetadataFromResourceObject(resourceModuleName, resource); - if (!toscaServiceGroupsMetadataDefinition.equals("")) { - String serviceModuleName = buildServiceModuleName(service.getComponentInstances().get(0).getNormalizedName(), toscaServiceGroupsMetadataDefinition.getVfModuleModelName()); - toscaServiceGroupsMetadataDefinition = setGroupMetadataFromServiceObject(toscaServiceGroupsMetadataDefinition, serviceModuleName, service); - toscaGroupsTopologyTemplateDefinition.setMetadata(toscaServiceGroupsMetadataDefinition); - ToscaGroupPropertyDefinition toscaGroupPropertyDefinition = setGroupProperty(module); - toscaGroupsTopologyTemplateDefinition.setProperties(toscaGroupPropertyDefinition); - toscaGroupsTopologyTemplateDefinitionMap.put(serviceModuleName, toscaGroupsTopologyTemplateDefinition); - } else { - getExtendTest().log(Status.FAIL, "module name [" + module.getGroupName() + "] didn't represent in resource"); - } - } - } - } - return toscaGroupsTopologyTemplateDefinitionMap; - - } - - - private Map<String, VfModuleDefinition> createExpectedVfModuleDefinitionObject(Resource resource, Service service, List<TypeHeatMetaDefinition> listTypeHeatMetaDefinition) { - Map<String, VfModuleDefinition> toscaGroupsTopologyTemplateDefinitionMap = new HashMap<>(); - - for (TypeHeatMetaDefinition moduleType : listTypeHeatMetaDefinition) { - if (!moduleType.getTypeName().equals("artifacts")) { - for (GroupHeatMetaDefinition module : moduleType.getGroupHeatMetaDefinition()) { - VfModuleDefinition toscaGroupsTopologyTemplateDefinition = new VfModuleDefinition(); - String resourceModuleName = buildResourceModuleName(resource, module.getGroupName()); - ToscaServiceGroupsMetadataDefinition toscaServiceGroupsMetadataDefinition = setGroupMetadataFromResourceObject(resourceModuleName, resource); - if (!toscaServiceGroupsMetadataDefinition.equals("")) { - toscaServiceGroupsMetadataDefinition = setGroupMetadataFromServiceObject(toscaServiceGroupsMetadataDefinition, resourceModuleName, service); - toscaGroupsTopologyTemplateDefinition.setMetadata(toscaServiceGroupsMetadataDefinition); - ToscaGroupPropertyDefinition toscaGroupPropertyDefinition = setGroupProperty(module); - toscaGroupsTopologyTemplateDefinition.setProperties(toscaGroupPropertyDefinition); - toscaGroupsTopologyTemplateDefinition.setArtifacts(getArtifactsUuidListForRI(module, resource, service)); - toscaGroupsTopologyTemplateDefinitionMap.put(toscaServiceGroupsMetadataDefinition.vfModuleModelName, toscaGroupsTopologyTemplateDefinition); - - } else { - getExtendTest().log(Status.FAIL, "module name [" + module.getGroupName() + "] didn't represent in resource"); - } - } - } - } - return toscaGroupsTopologyTemplateDefinitionMap; - - } - - private List<String> getArtifactsUuidListForRI(GroupHeatMetaDefinition module, Resource resource, Service service) { -//TODO check if each heat include its env file - List<String> artifactsUuidList = new ArrayList<>(); - ComponentInstance resourceInstance = null; - for (ComponentInstance componentInstance : service.getComponentInstances()) { - if (componentInstance.getUniqueId().contains(resource.getUniqueId())) { - resourceInstance = componentInstance; - break; - } - } - - Collection<ArtifactDefinition> artifactsDefinitionValues = resourceInstance.getDeploymentArtifacts().values(); - - for (HeatMetaFirstLevelDefinition moduleArtifactDefinition : module.getArtifactList()) { - for (ArtifactDefinition riArtifactDefinition : artifactsDefinitionValues) { - String heatYamlName = moduleArtifactDefinition.getFileName(); - String heatEnvName = heatYamlName.replaceAll("yaml|yml", "env"); - String riArtifactName = riArtifactDefinition.getArtifactName(); - if (riArtifactName.equals(heatYamlName) || riArtifactName.equals(heatEnvName)) { - artifactsUuidList.add(riArtifactDefinition.getArtifactUUID()); - } - } - } - - return artifactsUuidList; - } - - private ToscaGroupPropertyDefinition setGroupProperty(GroupHeatMetaDefinition module) { - ToscaGroupPropertyDefinition toscaGroupPropertyDefinition = new ToscaGroupPropertyDefinition(); - toscaGroupPropertyDefinition.setVf_module_label(module.getGroupName()); - Boolean isBase = module.getPropertyHeatMetaDefinition().getValue(); - if (isBase) { - toscaGroupPropertyDefinition.setInitial_count("1"); - toscaGroupPropertyDefinition.setMin_vf_module_instances("1"); - toscaGroupPropertyDefinition.setMax_vf_module_instances("1"); - toscaGroupPropertyDefinition.setVf_module_type("Base"); - } else { - toscaGroupPropertyDefinition.setInitial_count("0"); - toscaGroupPropertyDefinition.setMin_vf_module_instances("0"); - toscaGroupPropertyDefinition.setMax_vf_module_instances(""); - toscaGroupPropertyDefinition.setVf_module_type("Expansion"); - } - toscaGroupPropertyDefinition.setAvailability_zone_count(""); - toscaGroupPropertyDefinition.setVfc_list(""); - toscaGroupPropertyDefinition.setVf_module_description(""); - toscaGroupPropertyDefinition.setVolume_group(isVolumeGroup(module)); - - return toscaGroupPropertyDefinition; - } - - private String isVolumeGroup(GroupHeatMetaDefinition module) { - String isVolumeGroup = "false"; - for (HeatMetaFirstLevelDefinition artifactList : module.getArtifactList()) { - if (artifactList.getType().equals(ArtifactTypeEnum.HEAT_VOL.getType())) { - isVolumeGroup = "true"; - return isVolumeGroup; - } - } - return isVolumeGroup; - } - - private Map<String, ToscaServiceGroupsMetadataDefinition> createExpectedToscaServiceGroupsPropertyDefinitionObject(Resource resource, Service service, List<TypeHeatMetaDefinition> listTypeHeatMetaDefinition) { - - Map<String, ToscaServiceGroupsMetadataDefinition> toscaServiceGroupsMetadataDefinitionMap = new HashMap<>(); - for (TypeHeatMetaDefinition moduleType : listTypeHeatMetaDefinition) { - Map<String, String> groupProperty = new HashMap<>(); - - ToscaServiceGroupsMetadataDefinition toscaServiceGroupsMetadataDefinition = new ToscaServiceGroupsMetadataDefinition(); - for (GroupHeatMetaDefinition module : moduleType.getGroupHeatMetaDefinition()) { - String resourceModuleName = buildResourceModuleName(resource, module.getGroupName()); - toscaServiceGroupsMetadataDefinition = setGroupMetadataFromResourceObject(resourceModuleName, resource); - if (!toscaServiceGroupsMetadataDefinition.equals("")) { - String serviceModuleName = buildServiceModuleName(service.getComponentInstances().get(0).getNormalizedName(), toscaServiceGroupsMetadataDefinition.getVfModuleModelName()); - toscaServiceGroupsMetadataDefinition = setGroupMetadataFromServiceObject(toscaServiceGroupsMetadataDefinition, serviceModuleName, service); - toscaServiceGroupsMetadataDefinitionMap.put(serviceModuleName, toscaServiceGroupsMetadataDefinition); - } else { - getExtendTest().log(Status.FAIL, "module name [" + module.getGroupName() + "] didn't represent in resource"); - } - } - } - return toscaServiceGroupsMetadataDefinitionMap; - - } - - private ToscaServiceGroupsMetadataDefinition setGroupMetadataFromServiceObject(ToscaServiceGroupsMetadataDefinition toscaServiceGroupsMetadataDefinition, String serviceModuleName, Service service) { - for (GroupInstance groupInstance : service.getComponentInstances().get(0).getGroupInstances()) { - if (groupInstance.getName().contains(serviceModuleName)) { - toscaServiceGroupsMetadataDefinition.setVfModuleModelCustomizationUUID(groupInstance.getCustomizationUUID()); - return toscaServiceGroupsMetadataDefinition; - } - } - return toscaServiceGroupsMetadataDefinition; - } - - private ToscaServiceGroupsMetadataDefinition setGroupMetadataFromResourceObject(String resourceModuleName, Resource resource) { - ToscaServiceGroupsMetadataDefinition toscaServiceGroupsMetadataDefinition = new ToscaServiceGroupsMetadataDefinition(); - for (GroupDefinition group : resource.getGroups()) { - if (group.getName().contains(resourceModuleName)) { - toscaServiceGroupsMetadataDefinition.setVfModuleModelName(group.getName()); - toscaServiceGroupsMetadataDefinition.setVfModuleModelInvariantUUID(group.getInvariantUUID()); - toscaServiceGroupsMetadataDefinition.setVfModuleModelUUID(group.getGroupUUID()); - toscaServiceGroupsMetadataDefinition.setVfModuleModelVersion(group.getVersion()); - return toscaServiceGroupsMetadataDefinition; - } - } - return toscaServiceGroupsMetadataDefinition; - } - - public static String buildResourceModuleName(Resource resource, String groupName) { - return resource.getSystemName() + ".." + groupName + ".." + "module-"; - } - - public static String buildServiceModuleName(String resourceInstanceNormalizedName, String resourceGroupName) { - return resourceInstanceNormalizedName + ".." + resourceGroupName; - } - - - @Override - protected UserRoleEnum getRole() { - return UserRoleEnum.DESIGNER; - } - - - public static ToscaDefinition addGenericInputsToToscaObject(ToscaDefinition toscaDefinition, String genericName) throws Exception { - Resource genericResource = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, genericName, "1.0"); - ToscaTopologyTemplateDefinition topologyTemplate = toscaDefinition.getTopology_template(); - Map<String, ToscaInputsTopologyTemplateDefinition> newInput = new HashMap<>(); - for (PropertyDefinition property : genericResource.getProperties()) { - ToscaInputsTopologyTemplateDefinition input = new ToscaInputsTopologyTemplateDefinition(); -// input.setConstraints(property.getConstraints()); - input.setDefault(property.getDefaultValue()); - input.setDescription(property.getDescription()); -// input.setEntry_schema(property.getSchema()); - input.setName(property.getName()); -// input.setRequired(property.get); - input.setStatus(property.getStatus()); - input.setType(property.getType()); - input.setValue(property.getValue()); - newInput.put(property.getName(), input); - } - - topologyTemplate.addInputs(newInput); - toscaDefinition.setTopology_template(topologyTemplate); - return toscaDefinition; - } - - public static ToscaDefinition setNameToToscaInput(ToscaDefinition toscaDefinition) { - Map<String, ToscaInputsTopologyTemplateDefinition> inputs = toscaDefinition.getTopology_template().getInputs(); - for (String name : inputs.keySet()) { - inputs.get(name).setName(name); - } - toscaDefinition.getTopology_template().setInputs(inputs); - return toscaDefinition; - } - - public static ToscaDefinition addAndGenerateResourceMetadataToExpectedObject(ToscaDefinition toscaDefinition, ResourceReqDetails resourceReqDetails, Component component) { - - Map<String, String> metadata = convertResourceMetadataToMap(resourceReqDetails, component); - toscaDefinition.setMetadata(metadata); - return toscaDefinition; - } - - public static Map<String, String> convertResourceMetadataToMap(ResourceReqDetails resourceReqDetails, Component component) { - Map<String, String> metadata = new HashMap<>(); - - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.CATEGORY.value, resourceReqDetails.getCategories().get(0).getName()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.DESCRIPTION.value, resourceReqDetails.getDescription()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.INVARIANT_UUID.value, component.getInvariantUUID()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.TYPE.value, resourceReqDetails.getResourceType()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.UUID.value, component.getUUID()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.NAME.value, component.getName()); - - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.RESOURCE_VENDOR_NAME.value, resourceReqDetails.getVendorName()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.RESOURCE_VENDOR_MODEL_NUMBER.value, resourceReqDetails.getResourceVendorModelNumber()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.RESOURCE_VENDOR_RELEASE.value, resourceReqDetails.getVendorRelease()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SUBCATEGORY.value, resourceReqDetails.getCategories().get(0).getSubcategories().get(0).getName()); - return metadata; - } - - public static Map<String, String> convertResourceNodeTemplateMetadataToMap(ComponentInstance componentInstance) throws Exception { - - Resource resource = AtomicOperationUtils.getResourceObject(componentInstance.getComponentUid()); - Map<String, String> metadata = new HashMap<>(); - - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.CATEGORY.value, resource.getCategories().get(0).getName()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.DESCRIPTION.value, resource.getDescription()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.INVARIANT_UUID.value, resource.getInvariantUUID()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.TYPE.value, resource.getResourceType().toString()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.UUID.value, resource.getUUID()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.NAME.value, resource.getName()); - - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.RESOURCE_VENDOR_NAME.value, resource.getVendorName()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.RESOURCE_VENDOR_MODEL_NUMBER.value, resource.getResourceVendorModelNumber()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.RESOURCE_VENDOR_RELEASE.value, resource.getVendorRelease()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SUBCATEGORY.value, resource.getCategories().get(0).getSubcategories().get(0).getName()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.CUSTOMIZATION_UUID.value, componentInstance.getCustomizationUUID()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.VERSION.value, componentInstance.getComponentVersion()); - - return metadata; - } - - public static Map<String, String> generateServiceNodeTemplateMetadataToExpectedObject(ResourceReqDetails resourceReqDetails, Component component, ComponentInstance componentInstanceDefinition) { - - Map<String, String> metadata = convertResourceMetadataToMap(resourceReqDetails, component); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.CUSTOMIZATION_UUID.value, componentInstanceDefinition.getCustomizationUUID()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.VERSION.value, componentInstanceDefinition.getComponentVersion()); - - return metadata; - } - - public static Map<String, Map<String, String>> generateResourceNodeTemplateMetadataToExpectedObject(Component component) throws Exception { - - Map<String, Map<String, String>> resourcesNodeTemplateMetadataMap = new HashMap<>(); - if (component.getComponentInstances() != null && !component.getComponentInstances().isEmpty()) { - for (ComponentInstance componentInstance : component.getComponentInstances()) { - Map<String, String> metadata = convertResourceNodeTemplateMetadataToMap(componentInstance); - resourcesNodeTemplateMetadataMap.put(componentInstance.getName(), metadata); - } - } - return resourcesNodeTemplateMetadataMap; - } - - public static Map<String, String> generateServiceMetadataToExpectedObject(ServiceReqDetails serviceReqDetails, Component component) { - - Map<String, String> metadata = new HashMap<>(); - - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.CATEGORY.value, serviceReqDetails.getCategories().get(0).getName()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.DESCRIPTION.value, serviceReqDetails.getDescription()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.INVARIANT_UUID.value, component.getInvariantUUID()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.TYPE.value, "Service"); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.UUID.value, component.getUUID()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.NAME.value, component.getName()); - - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_TYPE.value, serviceReqDetails.getServiceType()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_ROLE.value, serviceReqDetails.getServiceRole()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.NAMING_POLICY.value, serviceReqDetails.getNamingPolicy()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.ECOMP_GENERATED_NAMING.value, serviceReqDetails.getEcompGeneratedNaming().toString()); - metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_ECOMP_NAMING.value, serviceReqDetails.getEcompGeneratedNaming().toString());//equals to ECOMP_GENERATED_NAMING - - return metadata; - } - - public static void reportStartTestPrint(String testName, String vnfFile) { -// reportMessageInColor("info", "blue", "Running test \" + testName + \" with zip file - \" + vnfFile"); - SetupCDTest.getExtendTest().log(Status.INFO, "<html><font color=\"blue\"> Running test " + testName + " with zip file - " + vnfFile + "</font></html>"); - } - - public static void reportSkipTestPrint(String testName, List<Boolean> status) { -// reportMessageInColor("error", "orange", "Skip test \" + testName + \" due to previous tosca parser error"); - SetupCDTest.getExtendTest().log(Status.ERROR, "<html><font color=\"orange\"> Skip test " + testName + " due to previous tosca parser error" + "</font></html>"); - status.add(false); - } - - public static void reportMessageInColor(String status, String color, String message) { - String printLine = getReportMessageInColor(color, message); - SetupCDTest.getExtendTest().log(Status.valueOf(status), printLine); -// SetupCDTest.getExtendTest().log(Status.valueOf(status), getReportMessageInColor(color, message)); - } - - /** - * @param color = red, green, orange, blue ... - * @param message - message string - * @return string in desired color - */ - public static String getReportMessageInColor(String color, String message) { - String returnValue = ("<html><font color=\\\"+color+\"\">" + message + "</font></html>").toString(); - return returnValue; - } - -/* @Test() - public void printTest(){ - System.out.println("print"); - reportMessageInColor("ERROR", "green", "green"); - reportMessageInColor("INFO", "orange", "orange"); - reportMessageInColor("INFO", "red", "red"); - }*/ - -/* @Test - public void allottedResourceModelTest() throws Exception{ - List<Boolean> status = new ArrayList<>(); - - List<String> fileNamesFromFolder = OnboardingUtils.getVnfNamesFileListExcludeToscaParserFailure(); - List<String> newRandomFileNamesFromFolder = OnbordingDataProviders.getRandomElements(1, fileNamesFromFolder); - String vnfFile = newRandomFileNamesFromFolder.get(0); - setLog(vnfFile); - String filePath = FileHandling.getVnfRepositoryPath(); - File filesFolder = new File(SetupCDTest.getWindowTest().getDownloadDirectory()); - - ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource(ResourceCategoryEnum.ALLOTTED_RESOURCE_SERVICE_ADMIN); - resourceReqDetails = createCustomizedVsp(resourceReqDetails, filePath, vnfFile); - - ToscaDefinition toscaMainAmdocsDefinition = downloadAndGetToscaMainYamlObjectUI(resourceReqDetails, filesFolder); - toscaMainAmdocsDefinition = addGenericPropertiesToToscaDefinitionObject(toscaMainAmdocsDefinition, GENERIC_VF); - - Resource resource = OnboardingUtillViaApis.createResourceFromVSP(resourceReqDetails); - resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); - - ToscaDefinition toscaMainVfDefinition = downloadAndGetToscaMainYamlObjectApi(resource, filesFolder); - - status = validateVfMetadata(toscaMainAmdocsDefinition, toscaMainVfDefinition, resourceReqDetails, resource, vnfFile, status); - status = validateResourceNodeTemplateMetadata(toscaMainVfDefinition, resource, vnfFile, status); - status = validateResourceInputs(toscaMainAmdocsDefinition, toscaMainVfDefinition, vnfFile, status); - - if(status.contains(false)){ - SetupCDTest.getExtendTest().log(Status.FAIL, "Summary: allottedResourceModelTest tosca validation test failed with zip file " + vnfFile); - Assert.assertFalse(true); - } - }*/ - - - // help method to toscaValidation tests - private ISdcCsarHelper initSdcCsarHelper(File serviceCsarFileName, File filesFolder) { - - ISdcCsarHelper fdntCsarHelper; - try { - SetupCDTest.getExtendTest().log(Status.INFO, "Tosca parser is going to convert service csar file to ISdcCsarHelper object..."); - fdntCsarHelper = factory.getSdcCsarHelper(filesFolder.getPath() + serviceCsarFileName); - } catch (Exception e) { - SetupCDTest.getExtendTest().log(Status.ERROR, "Tosca parser FAILED to convert service csar file to ISdcCsarHelper object..."); - SetupCDTest.getExtendTest().log(Status.FAIL, e); - fdntCsarHelper = null; - } - return fdntCsarHelper; - } - - - /** - * @param resourceReqDetails to create Vsp - * @return updated resourceReqDetails after Vsp was created - */ - private ResourceReqDetails createCustomizedVsp(ResourceReqDetails resourceReqDetails, String filePath, String vnfFile) throws Exception { - VendorSoftwareProductObject vendorSoftwareProductObject = OnboardingUtillViaApis.createVspViaApis(resourceReqDetails, filePath, vnfFile, user); - resourceReqDetails = OnboardingUtillViaApis.prepareOnboardedResourceDetailsBeforeCreate(resourceReqDetails, vendorSoftwareProductObject); - return resourceReqDetails; - } - - /** - * @param resourceReqDetails to download csar file via UI - * @return Tosca definition object from main yaml file - */ - private ToscaDefinition downloadAndGetToscaMainYamlObjectUI(ResourceReqDetails resourceReqDetails, File filesFolder) throws Exception { - DownloadManager.downloadCsarByNameFromVSPRepository(resourceReqDetails.getName(), false); - File amdocsCsarFileName = FileHandling.getLastModifiedFileNameFromDir(filesFolder.getAbsolutePath()); - return ToscaParserUtils.parseToscaMainYamlToJavaObjectByCsarLocation(amdocsCsarFileName); - } - - /** - * @param toscaMainAmdocsDefinition object to add generic properties - * @param genericName resource name - * @return updated toscaMainAmdocsDefinition object - */ - private ToscaDefinition addGenericPropertiesToToscaDefinitionObject(ToscaDefinition toscaMainAmdocsDefinition, String genericName) throws Exception { - toscaMainAmdocsDefinition = setNameToToscaInput(toscaMainAmdocsDefinition); - toscaMainAmdocsDefinition = addGenericInputsToToscaObject(toscaMainAmdocsDefinition, genericName); - return toscaMainAmdocsDefinition; - } - - /** - * @param resource to download csar file via API - * @return Tosca definition object from main yaml file - */ - private ToscaDefinition downloadAndGetToscaMainYamlObjectApi(Resource resource, File filesFolder) throws Exception { - File vfCsarFileName = new File(File.separator + "VfCsar_" + ElementFactory.generateUUIDforSufix() + ".csar"); - OnboardingUtillViaApis.downloadToscaCsarToDirectory(resource, new File(filesFolder.getPath() + vfCsarFileName)); - return ToscaParserUtils.parseToscaMainYamlToJavaObjectByCsarLocation(new File(filesFolder.getPath() + vfCsarFileName)); - } - - -} - - |