summaryrefslogtreecommitdiffstats
path: root/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java')
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java806
1 files changed, 0 insertions, 806 deletions
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java
deleted file mode 100644
index 90d818af77..0000000000
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/api/ComponentInstanceBaseTest.java
+++ /dev/null
@@ -1,806 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 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.api;
-
-import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertNotNull;
-import static org.testng.AssertJUnit.assertTrue;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.junit.rules.TestName;
-import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
-import org.openecomp.sdc.be.model.CapReqDef;
-import org.openecomp.sdc.be.model.CapabilityDefinition;
-import org.openecomp.sdc.be.model.Component;
-import org.openecomp.sdc.be.model.ComponentInstance;
-import org.openecomp.sdc.be.model.Product;
-import org.openecomp.sdc.be.model.RelationshipInfo;
-import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
-import org.openecomp.sdc.be.model.RequirementDefinition;
-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.datatypes.ComponentInstanceReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.ComponentReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.ProductReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
-import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
-import org.openecomp.sdc.ci.tests.datatypes.enums.ServiceCategoriesEnum;
-import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
-import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
-import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
-import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ComponentInstanceRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ComponentRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ProductRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
-import org.openecomp.sdc.ci.tests.utils.rest.ServiceRestUtils;
-import org.testng.Assert;
-
-public class ComponentInstanceBaseTest extends ComponentBaseTest {
- public static final String acceptHeaderData = "application/json";
- // Req/cap of container component
- protected Map<String, List<CapabilityDefinition>> expectedContainerCapabilities;
- protected Map<String, List<RequirementDefinition>> expectedContainerRequirements;
- protected Map<String, Map<String, List<RequirementDefinition>>> removedRequirements;
- protected Map<String, ImmutablePair<Map<String, List<CapabilityDefinition>>, Map<String, List<RequirementDefinition>>>> expectedContInstReqCap;
-
- protected User sdncPsDetails1;
- protected User sdncPsDetails2;
- protected User sdncPmDetails1;
- protected User sdncPmDetails2;
- protected User sdncDesignerDetails;
- protected User sdncAdminDetails;
- protected User sdncTesterDetails;
- protected ResourceReqDetails resourceDetailsVFC_01;
- protected ResourceReqDetails resourceDetailsVFC_02;
- protected ResourceReqDetails resourceDetailsVF_01;
- protected ResourceReqDetails resourceDetailsVF_02;
- protected ResourceReqDetails resourceDetailsPNF_01;
- protected ResourceReqDetails resourceDetailsCP_01;
- protected ResourceReqDetails resourceDetailsCP_02;
- protected ResourceReqDetails resourceDetailsVL_01;
- protected ResourceReqDetails resourceDetailsVL_02;
- protected ServiceReqDetails serviceDetails_01;
- protected ServiceReqDetails serviceDetails_02;
- protected ServiceReqDetails serviceDetails_03;
- protected ProductReqDetails productDetails_01;
- protected ProductReqDetails productDetails_02;
-
- public void init() {
- // Req/caps of inner componentInstances
- expectedContainerCapabilities = new LinkedHashMap<String, List<CapabilityDefinition>>();
- expectedContainerRequirements = new LinkedHashMap<String, List<RequirementDefinition>>();
- removedRequirements = new HashMap<>();
- expectedContInstReqCap = new HashMap<>();
-
- sdncPsDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_STRATEGIST1);
- sdncPsDetails2 = ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_STRATEGIST2);
- sdncPmDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_MANAGER1);
- sdncPmDetails2 = ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_MANAGER2);
- sdncDesignerDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
- sdncAdminDetails = ElementFactory.getDefaultUser(UserRoleEnum.ADMIN);
- sdncTesterDetails = ElementFactory.getDefaultUser(UserRoleEnum.TESTER);
- resourceDetailsVFC_01 = ElementFactory.getDefaultResourceByType("ciVFC100", NormativeTypesEnum.SOFTWARE_COMPONENT, ResourceCategoryEnum.GENERIC_DATABASE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VFC.toString()); // resourceType = VFC
- resourceDetailsVFC_02 = ElementFactory.getDefaultResourceByType("ciVFC200", NormativeTypesEnum.COMPUTE, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VFC.toString());
- resourceDetailsVF_01 = ElementFactory.getDefaultResourceByType("ciVF100", NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VF.toString());
- resourceDetailsVF_02 = ElementFactory.getDefaultResourceByType("ciVF200", NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VF.toString());
- resourceDetailsPNF_01 = ElementFactory.getDefaultResourceByType("ciPNF100", NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.PNF.toString());
- resourceDetailsCP_01 = ElementFactory.getDefaultResourceByType("ciCP100", NormativeTypesEnum.PORT, ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, sdncDesignerDetails.getUserId(), ResourceTypeEnum.CP.toString());
- resourceDetailsCP_02 = ElementFactory.getDefaultResourceByType("ciCP200", NormativeTypesEnum.PORT, ResourceCategoryEnum.GENERIC_DATABASE, sdncDesignerDetails.getUserId(), ResourceTypeEnum.CP.toString());
- resourceDetailsVL_01 = ElementFactory.getDefaultResourceByType("ciVL100", NormativeTypesEnum.NETWORK, ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VL.toString());
- resourceDetailsVL_02 = ElementFactory.getDefaultResourceByType("ciVL200", NormativeTypesEnum.NETWORK, ResourceCategoryEnum.GENERIC_NETWORK_ELEMENTS, sdncDesignerDetails.getUserId(), ResourceTypeEnum.VL.toString());
- serviceDetails_01 = ElementFactory.getDefaultService("ciNewtestservice1", ServiceCategoriesEnum.MOBILITY, sdncDesignerDetails.getUserId());
- serviceDetails_02 = ElementFactory.getDefaultService("ciNewtestservice2", ServiceCategoriesEnum.MOBILITY, sdncDesignerDetails.getUserId());
- serviceDetails_03 = ElementFactory.getDefaultService("ciNewtestservice3", ServiceCategoriesEnum.MOBILITY, sdncDesignerDetails.getUserId());
- productDetails_01 = ElementFactory.getDefaultProduct("ciProduct01");
- productDetails_02 = ElementFactory.getDefaultProduct("ciProduct02");
- }
-
- public ComponentInstanceBaseTest(TestName testName, String className) {
- super(testName, className);
- }
-
- public void verifyVFReqCap(String componentId) throws Exception {
- RestResponse restResponse = ResourceRestUtils.getResource(componentId);
- Resource resource = ResponseParser.parseToObject(restResponse.getResponse(), Resource.class);
- verifyReqCap(resource);
- }
-
- public void verifyServiceReqCap(String componentId) throws Exception {
- RestResponse restResponse = ServiceRestUtils.getService(componentId, sdncDesignerDetails);
- Service service = ResponseParser.parseToObject(restResponse.getResponse(), Service.class);
- verifyReqCap(service);
- }
-
- public void verifyProductReqCap(String componentId) throws Exception {
- RestResponse restResponse = ProductRestUtils.getProduct(componentId, sdncPsDetails1.getUserId());
- Product product = ResponseParser.parseToObject(restResponse.getResponse(), Product.class);
- verifyReqCap(product);
- }
-
- public void verifyReqCap(Component actualComponent) {
- verifyContainerReqCap(actualComponent);
- verifyCompInstReqCap(actualComponent);
- }
-
- public RestResponse changeServiceInstanceVersion(String componentUniqueId, String serviceInstanceToReplaceUniqueId, String serviceUniqueId, User sdncModifierDetails, ComponentTypeEnum componentType, boolean isHighestLevel) throws Exception {
- RestResponse changeResourceInstanceVersion = ProductRestUtils.changeServiceInstanceVersion(componentUniqueId, serviceInstanceToReplaceUniqueId, serviceUniqueId, sdncModifierDetails, componentType);
- if (changeResourceInstanceVersion.getErrorCode().equals(BaseRestUtils.STATUS_CODE_SUCCESS) && isHighestLevel) {
- /*
- * // Add RI Capabilities and Requirements to expected MAP --> expectedVfCapabilities and expectedVfRequirements
- *
- * ComponentInstance componentInstance = ResponseParser.parseToObjectUsingMapper( changeResourceInstanceVersion.getResponse(), ComponentInstance.class); addCompInstReqCapToExpected(componentInstance, componentType);
- */
- }
- return changeResourceInstanceVersion;
- }
-
- protected void updateExpectedReqCapAfterChangeLifecycleState(String oldContainerUniqueIdToReplace, String newContainerUniqueId) {
-
- // Update of container req/cap
-
- Set<String> compInstKeysToChange = new HashSet<>();
-
- for (String expKey : expectedContainerCapabilities.keySet()) {
- List<CapabilityDefinition> expCapList = expectedContainerCapabilities.get(expKey);
- for (CapabilityDefinition cap : expCapList) {
- String ownerId = cap.getOwnerId();
-
- if (ownerId.contains(oldContainerUniqueIdToReplace)) {
- compInstKeysToChange.add(ownerId);
- cap.setOwnerId(cap.getOwnerId().replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId));
- }
- }
- }
-
- for (String expKey : expectedContainerRequirements.keySet()) {
- List<RequirementDefinition> expCapList = expectedContainerRequirements.get(expKey);
- for (RequirementDefinition cap : expCapList) {
- String ownerId = cap.getOwnerId();
- if (ownerId.contains(oldContainerUniqueIdToReplace)) {
- compInstKeysToChange.add(ownerId);
- cap.setOwnerId(cap.getOwnerId().replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId));
- }
- }
- }
-
- // Update of internal comp instances req/cap
- for (String oldKey : compInstKeysToChange) {
- ImmutablePair<Map<String, List<CapabilityDefinition>>, Map<String, List<RequirementDefinition>>> immutablePair = expectedContInstReqCap.get(oldKey);
- if (immutablePair != null) {
- expectedContInstReqCap.remove(oldKey);
- String newKey = oldKey.replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId);
- expectedContInstReqCap.put(newKey, immutablePair);
- }
- }
-
- // Update of removed req
- for (String oldKey : compInstKeysToChange) {
- Map<String, List<RequirementDefinition>> map = removedRequirements.get(oldKey);
- if (map != null) {
- removedRequirements.remove(oldKey);
- String newKey = oldKey.replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId);
- Collection<List<RequirementDefinition>> values = map.values();
- if (values != null) {
- for (List<RequirementDefinition> list : values) {
- for (RequirementDefinition reqDef : list) {
- reqDef.setOwnerId(reqDef.getOwnerId().replaceAll(oldContainerUniqueIdToReplace, newContainerUniqueId));
- }
- }
- }
- removedRequirements.put(newKey, map);
- }
- }
- }
-
- private void verifyCompInstReqCap(Component actualComponent) {
- List<ComponentInstance> componentInstances = actualComponent.getComponentInstances();
- if (componentInstances != null) {
- assertEquals(expectedContInstReqCap.size(), componentInstances.size());
- for (ComponentInstance compInst : componentInstances) {
- String uniqueId = compInst.getUniqueId();
- // System.out.println("Verifying req/cap of component instance
- // "+ uniqueId);
- Map<String, List<RequirementDefinition>> actualCompInstReq = compInst.getRequirements();
- if (actualCompInstReq == null) {
- actualCompInstReq = new HashMap<>();
- }
- Map<String, List<CapabilityDefinition>> actualCompInstCap = compInst.getCapabilities();
- if (actualCompInstCap == null) {
- actualCompInstCap = new HashMap<>();
- }
- ImmutablePair<Map<String, List<CapabilityDefinition>>, Map<String, List<RequirementDefinition>>> expReqCap = expectedContInstReqCap.get(uniqueId);
- assertNotNull(expReqCap);
- // System.out.println("expected instance requirements:
- // "+expReqCap.right);
- // System.out.println("expected instance capabilities:
- // "+expReqCap.left);
- // System.out.println("actual instance requirements:
- // "+actualCompInstReq);
- // System.out.println("actual instance capabilities:
- // "+actualCompInstCap);
-
- // REQ comparison
- compareReqCapMaps(expReqCap.right, actualCompInstReq);
-
- // CAP comparison
- compareReqCapMaps(expReqCap.left, actualCompInstCap);
- }
-
- } else {
- assertTrue(expectedContInstReqCap.isEmpty());
- }
- }
-
- private void verifyContainerReqCap(Component actualComponent) {
- Map<String, List<RequirementDefinition>> actualContainerRequirements = actualComponent.getRequirements();
- if (actualContainerRequirements == null) {
- actualContainerRequirements = new HashMap<>();
- }
- Map<String, List<CapabilityDefinition>> actualContainerCapabilities = actualComponent.getCapabilities();
- if (actualContainerCapabilities == null) {
- actualContainerCapabilities = new HashMap<>();
- }
- // System.out.println("Verifying req/cap of container component "+
- // actualComponent.getUniqueId());
- // System.out.println("expected container requirements:
- // "+expectedContainerRequirements);
- // System.out.println("expected container capabilities:
- // "+expectedContainerCapabilities);
- // System.out.println("actual container requirements:
- // "+actualContainerRequirements);
- // System.out.println("actual container capabilities:
- // "+actualContainerCapabilities);
-
- // REQ comparison
- compareReqCapMaps(expectedContainerRequirements, actualContainerRequirements);
-
- // CAP comparison
- compareReqCapMaps(expectedContainerCapabilities, actualContainerCapabilities);
- }
-
- private <T> void compareReqCapMaps(Map<String, List<T>> expectedMap, Map<String, List<T>> actualMap) {
- assertEquals(expectedMap.size(), actualMap.size());
- for (String expKey : expectedMap.keySet()) {
- List<?> expCapList = expectedMap.get(expKey);
- List<?> actCapList = actualMap.get(expKey);
- assertEquals(expCapList.size(), actCapList.size());
- assertEquals(new HashSet<>(expCapList), new HashSet<>(actCapList));
- }
- }
-
- public void addCompInstReqCapToExpected(ComponentInstance componentInstance, ComponentTypeEnum containerComponentType) throws Exception {
- String uniqueId = componentInstance.getUniqueId();
- String name = componentInstance.getName();
- String originComponentId = componentInstance.getComponentUid();
- RestResponse getResponse = null;
- ComponentTypeEnum compInstType = getCompInstTypeByContainerType(containerComponentType);
- Component component = null;
- if (compInstType == ComponentTypeEnum.RESOURCE) {
- getResponse = ResourceRestUtils.getResource(sdncDesignerDetails, originComponentId);
- ResourceRestUtils.checkSuccess(getResponse);
- component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Resource.class);
- } else if (compInstType == ComponentTypeEnum.SERVICE) {
- getResponse = ServiceRestUtils.getService(originComponentId, sdncDesignerDetails);
- ResourceRestUtils.checkSuccess(getResponse);
- component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Service.class);
- } else {
- Assert.fail("Unsupported type - " + containerComponentType);
- }
-
- Map<String, List<RequirementDefinition>> resourceRequirements = component.getRequirements();
- if (resourceRequirements == null) {
- resourceRequirements = new HashMap<>();
- }
-
- Function<Entry<String, List<RequirementDefinition>>, List<RequirementDefinition>> requirementDefinitionMapper = e -> new ArrayList<>(e.getValue().stream().map(item -> new RequirementDefinition(item)).collect(Collectors.toList()));
- Map<String, List<RequirementDefinition>> reqCopy = resourceRequirements.entrySet().stream().collect(Collectors.toMap(e -> e.getKey(), requirementDefinitionMapper));
-
- Map<String, List<CapabilityDefinition>> resourceCapabilities = component.getCapabilities();
- if (resourceCapabilities == null) {
- resourceCapabilities = new HashMap<>();
- }
-
- Function<? super Entry<String, List<CapabilityDefinition>>, List<CapabilityDefinition>> capabilityDefinitionMapper = e -> new ArrayList<>(e.getValue().stream().map(item -> new CapabilityDefinition(item)).collect(Collectors.toList()));
- Map<String, List<CapabilityDefinition>> capCopy = resourceCapabilities.entrySet().stream().collect(Collectors.toMap(e -> e.getKey(), capabilityDefinitionMapper));
-
- setupContainerExpectedReqCap(uniqueId, name, originComponentId, resourceRequirements, resourceCapabilities);
- if (component.getComponentType().equals(ComponentTypeEnum.RESOURCE) && ((Resource) component).getResourceType() != ResourceTypeEnum.VF) {
- setupConstInstExpectedReqCap(uniqueId, name, originComponentId, reqCopy, capCopy);
- }
-
- // adding entry for expected componentInstance
- ImmutablePair<Map<String, List<CapabilityDefinition>>, Map<String, List<RequirementDefinition>>> compInstReqCapPair = new ImmutablePair<Map<String, List<CapabilityDefinition>>, Map<String, List<RequirementDefinition>>>(capCopy, reqCopy);
- expectedContInstReqCap.put(uniqueId, compInstReqCapPair);
- }
-
- private void setupContainerExpectedReqCap(String uniqueId, String name, String componentId, Map<String, List<RequirementDefinition>> componentRequirements, Map<String, List<CapabilityDefinition>> componentCapabilities) {
- for (Entry<String, List<RequirementDefinition>> resReq : componentRequirements.entrySet()) {
- List<RequirementDefinition> reqListToAdd = resReq.getValue();
- for (RequirementDefinition requirementDefinition : reqListToAdd) {
- requirementDefinition.setOwnerId(uniqueId);
- requirementDefinition.setOwnerName(name);
- requirementDefinition.addToPath(uniqueId);
- requirementDefinition.setSource(componentId);
- requirementDefinition.setLeftOccurrences(requirementDefinition.getMaxOccurrences());
- }
- List<RequirementDefinition> expectedReqList = expectedContainerRequirements.get(resReq.getKey());
- if (expectedReqList == null) {
- expectedReqList = reqListToAdd;
- } else {
- expectedReqList.addAll(reqListToAdd);
- }
- expectedContainerRequirements.put(resReq.getKey(), expectedReqList);
- }
-
- for (Entry<String, List<CapabilityDefinition>> resCap : componentCapabilities.entrySet()) {
- List<CapabilityDefinition> capListToAdd = resCap.getValue();
- for (CapabilityDefinition capDefinition : capListToAdd) {
- capDefinition.setOwnerId(uniqueId);
- capDefinition.setOwnerName(name);
- capDefinition.addToPath(uniqueId);
- capDefinition.setSource(componentId);
- capDefinition.setLeftOccurrences(capDefinition.getMaxOccurrences());
- }
- List<CapabilityDefinition> expectedCapList = expectedContainerCapabilities.get(resCap.getKey());
- if (expectedCapList == null) {
- expectedCapList = capListToAdd;
- } else {
- expectedCapList.addAll(capListToAdd);
- }
- expectedContainerCapabilities.put(resCap.getKey(), expectedCapList);
- }
- }
-
- private void setupConstInstExpectedReqCap(String uniqueId, String name, String componentId, Map<String, List<RequirementDefinition>> componentRequirements, Map<String, List<CapabilityDefinition>> componentCapabilities) {
- for (Entry<String, List<RequirementDefinition>> resReq : componentRequirements.entrySet()) {
- List<RequirementDefinition> reqListToAdd = resReq.getValue();
- for (RequirementDefinition requirementDefinition : reqListToAdd) {
- requirementDefinition.setOwnerId(uniqueId);
- requirementDefinition.setOwnerName(name);
- requirementDefinition.addToPath(uniqueId);
- requirementDefinition.setSource(componentId);
- requirementDefinition.setLeftOccurrences(requirementDefinition.getMaxOccurrences());
- }
- }
-
- for (Entry<String, List<CapabilityDefinition>> resCap : componentCapabilities.entrySet()) {
- List<CapabilityDefinition> capListToAdd = resCap.getValue();
- for (CapabilityDefinition capDefinition : capListToAdd) {
- capDefinition.setOwnerId(uniqueId);
- capDefinition.setOwnerName(name);
- capDefinition.addToPath(uniqueId);
- capDefinition.setSource(componentId);
- }
- }
- }
-
- private ComponentTypeEnum getCompInstTypeByContainerType(ComponentTypeEnum componentType) {
- switch (componentType) {
- case RESOURCE:
- return ComponentTypeEnum.RESOURCE;
- case SERVICE:
- return ComponentTypeEnum.RESOURCE;
- case PRODUCT:
- return ComponentTypeEnum.SERVICE;
- default:
- break;
- }
- return null;
- }
-
- public void deleteCompInstReqCapFromExpected(String componentInstanceId) {
- List<String> entriesRequirementsToRemove = new ArrayList<>();
- List<String> entriesCapabilitiesToRemove = new ArrayList<>();
- for (Entry<String, List<RequirementDefinition>> reqEntry : expectedContainerRequirements.entrySet()) {
- List<RequirementDefinition> reqList = reqEntry.getValue();
- List<RequirementDefinition> reqListToDelete = new ArrayList<>();
- for (RequirementDefinition requirementDefinition : reqList) {
- if (requirementDefinition.getOwnerId().equals(componentInstanceId)) {
- reqListToDelete.add(requirementDefinition);
- }
- }
- reqList.removeAll(reqListToDelete);
- if (reqList.isEmpty()) {
- entriesRequirementsToRemove.add(reqEntry.getKey());
- }
- }
-
- for (String ekey : entriesRequirementsToRemove) {
- expectedContainerRequirements.remove(ekey);
- }
-
- for (Entry<String, List<CapabilityDefinition>> capEntry : expectedContainerCapabilities.entrySet()) {
- List<CapabilityDefinition> capList = capEntry.getValue();
- List<CapabilityDefinition> capListToDelete = new ArrayList<>();
- for (CapabilityDefinition capabilityDefinition : capList) {
- if (capabilityDefinition.getOwnerId().equals(componentInstanceId)) {
- capListToDelete.add(capabilityDefinition);
- }
- }
- capList.removeAll(capListToDelete);
- if (capList.isEmpty()) {
- entriesCapabilitiesToRemove.add(capEntry.getKey());
- }
- }
- for (String ekey : entriesCapabilitiesToRemove) {
- expectedContainerCapabilities.remove(ekey);
- }
-
- expectedContInstReqCap.remove(componentInstanceId);
-
- }
-
- // Automatically updates the expected req/cap of the container
- protected RestResponse createAtomicInstanceForVF(ResourceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
- return createComponentInstance(containerDetails, compInstOriginDetails, modifier, ComponentTypeEnum.RESOURCE, true);
- }
-
- // Automatically updates the expected req/cap of the container
- protected RestResponse createAtomicInstanceForService(ServiceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
- return createComponentInstance(containerDetails, compInstOriginDetails, modifier, ComponentTypeEnum.SERVICE, true);
- }
-
- // Automatically updates the expected req/cap of the container
- protected RestResponse createVFInstance(ServiceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
- return createComponentInstance(containerDetails, compInstOriginDetails, modifier, ComponentTypeEnum.SERVICE, true);
- }
-
- // Automatically updates the expected req/cap of the container
- protected RestResponse createServiceInstance(ProductReqDetails containerDetails, ServiceReqDetails compInstOriginDetails, User modifier) throws Exception {
- return createComponentInstance(containerDetails, compInstOriginDetails, modifier, ComponentTypeEnum.PRODUCT, true);
- }
-
- // Automatically updates the expected req/cap of the container
- protected RestResponse deleteAtomicInstanceForVF(String compInstUniqueId, ResourceReqDetails containerDetails, User modifier) throws IOException, Exception {
- return deleteComponentInstance(compInstUniqueId, containerDetails, modifier, ComponentTypeEnum.RESOURCE, true);
- }
-
- // Automatically updates the expected req/cap of the container
- protected RestResponse deleteAtomicInstanceForService(String compInstUniqueId, ServiceReqDetails containerDetails, User modifier) throws IOException, Exception {
- return deleteComponentInstance(compInstUniqueId, containerDetails, modifier, ComponentTypeEnum.SERVICE, true);
- }
-
- // Automatically updates the expected req/cap of the container
- protected RestResponse deleteVFInstance(String compInstUniqueId, ServiceReqDetails containerDetails, User modifier) throws IOException, Exception {
- return deleteComponentInstance(compInstUniqueId, containerDetails, modifier, ComponentTypeEnum.SERVICE, true);
-
- }
-
- // Automatically updates the expected req/cap of the container
- protected RestResponse deleteServiceInstance(String compInstUniqueId, ProductReqDetails containerDetails, User modifier) throws IOException, Exception {
- return deleteComponentInstance(compInstUniqueId, containerDetails, modifier, ComponentTypeEnum.PRODUCT, true);
- }
-
- // Setup of lower components - Doesn't affect req/cap of the container (for
- // example, setup of VF for testing a Product)
- protected RestResponse createAtomicInstanceForVFDuringSetup(ResourceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
- return createComponentInstance(containerDetails, compInstOriginDetails, modifier, ComponentTypeEnum.RESOURCE, false);
- }
-
- // Setup of lower components - Doesn't affect req/cap of the container (for
- // example, setup of VF for testing a Product)
- protected RestResponse createAtomicInstanceForServiceDuringSetup(ServiceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
- return createComponentInstance(containerDetails, compInstOriginDetails, modifier, ComponentTypeEnum.SERVICE, false);
- }
-
- // Setup of lower components - Doesn't affect req/cap of the container (for
- // example, setup of VF for testing a Product)
- protected RestResponse createVFInstanceDuringSetup(ServiceReqDetails containerDetails, ResourceReqDetails compInstOriginDetails, User modifier) throws Exception {
- return createComponentInstance(containerDetails, compInstOriginDetails, modifier, ComponentTypeEnum.SERVICE, false);
- }
-
- // Setup of lower components - Doesn't affect req/cap of the container (for
- // example, setup of VF for testing a Product)
- protected RestResponse createServiceInstanceDuringSetup(ProductReqDetails containerDetails, ServiceReqDetails compInstOriginDetails, User modifier) throws Exception {
- return createComponentInstance(containerDetails, compInstOriginDetails, modifier, ComponentTypeEnum.PRODUCT, false);
- }
-
- // Setup of lower components - Doesn't affect req/cap of the container (for
- // example, setup of VF for testing a Product)
- protected RestResponse deleteAtomicInstanceForVFDuringSetup(String compInstUniqueId, ResourceReqDetails containerDetails, User modifier) throws IOException, Exception {
- return deleteComponentInstance(compInstUniqueId, containerDetails, modifier, ComponentTypeEnum.RESOURCE, false);
- }
-
- // Setup of lower components - Doesn't affect req/cap of the container (for
- // example, setup of VF for testing a Product)
- protected RestResponse deleteAtomicInstanceForServiceDuringSetup(String compInstUniqueId, ServiceReqDetails containerDetails, User modifier) throws IOException, Exception {
- return deleteComponentInstance(compInstUniqueId, containerDetails, modifier, ComponentTypeEnum.SERVICE, false);
- }
-
- // Setup of lower components - Doesn't affect req/cap of the container (for
- // example, setup of VF for testing a Product)
- protected RestResponse deleteVFInstanceDuringSetup(String compInstUniqueId, ServiceReqDetails containerDetails, User modifier) throws IOException, Exception {
- return deleteComponentInstance(compInstUniqueId, containerDetails, modifier, ComponentTypeEnum.SERVICE, false);
-
- }
-
- // Setup of lower components - Doesn't affect req/cap of the container (for
- // example, setup of VF for testing a Product)
- protected RestResponse deleteServiceInstanceDuringSetup(String compInstUniqueId, ProductReqDetails containerDetails, User modifier) throws IOException, Exception {
- return deleteComponentInstance(compInstUniqueId, containerDetails, modifier, ComponentTypeEnum.PRODUCT, false);
- }
-
- protected Component getComponentAndValidateRIs(ComponentReqDetails componentDetails, int numberOfRIs, int numberOfRelations) throws IOException, Exception {
-
- RestResponse getResponse = null;
- Component component = null;
- if (componentDetails instanceof ResourceReqDetails) {
- getResponse = ResourceRestUtils.getResource(sdncAdminDetails, componentDetails.getUniqueId());
- component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Resource.class);
- } else if (componentDetails instanceof ServiceReqDetails) {
- getResponse = ServiceRestUtils.getService((ServiceReqDetails) componentDetails, sdncAdminDetails);
- component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Service.class);
- } else if (componentDetails instanceof ProductReqDetails) {
- getResponse = ProductRestUtils.getProduct(componentDetails.getUniqueId(), sdncAdminDetails.getUserId());
- component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Product.class);
- } else {
- Assert.fail("Unsupported type of componentDetails - " + componentDetails.getClass().getSimpleName());
- }
- ResourceRestUtils.checkSuccess(getResponse);
- int numberOfActualRIs = component.getComponentInstances() != null ? component.getComponentInstances().size() : 0;
- int numberOfActualRelations = component.getComponentInstancesRelations() != null ? component.getComponentInstancesRelations().size() : 0;
- assertEquals("Check number of RIs meet the expected number", numberOfRIs, numberOfActualRIs);
- assertEquals("Check number of RI relations meet the expected number", numberOfRelations, numberOfActualRelations);
- verifyReqCap(component);
-
- return component;
- }
-
- protected Component getComponentAndValidateRIsOnly(ComponentReqDetails componentDetails, int numberOfRIs, int numberOfRelations) throws IOException, Exception {
-
- RestResponse getResponse = null;
- Component component = null;
- if (componentDetails instanceof ResourceReqDetails) {
- getResponse = ResourceRestUtils.getResource(sdncAdminDetails, componentDetails.getUniqueId());
- component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Resource.class);
- } else if (componentDetails instanceof ServiceReqDetails) {
- getResponse = ServiceRestUtils.getService((ServiceReqDetails) componentDetails, sdncAdminDetails);
- component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Service.class);
- } else if (componentDetails instanceof ProductReqDetails) {
- getResponse = ProductRestUtils.getProduct(componentDetails.getUniqueId(), sdncAdminDetails.getUserId());
- component = ResponseParser.parseToObjectUsingMapper(getResponse.getResponse(), Product.class);
- } else {
- Assert.fail("Unsupported type of componentDetails - " + componentDetails.getClass().getSimpleName());
- }
- ResourceRestUtils.checkSuccess(getResponse);
- int numberOfActualRIs = component.getComponentInstances() != null ? component.getComponentInstances().size() : 0;
- int numberOfActualRelations = component.getComponentInstancesRelations() != null ? component.getComponentInstancesRelations().size() : 0;
- assertEquals("Check number of RIs meet the expected number", numberOfRIs, numberOfActualRIs);
- assertEquals("Check number of RI relations meet the expected number", numberOfRelations, numberOfActualRelations);
-
- return component;
- }
-
- protected void getComponentAndValidateRIsAfterChangeLifecycleState(String oldComponentUniqueIdToReplace, ComponentReqDetails componentDetails, int numOfRIs, int numOfRelations) throws IOException, Exception {
- updateExpectedReqCapAfterChangeLifecycleState(oldComponentUniqueIdToReplace, componentDetails.getUniqueId());
- getComponentAndValidateRIs(componentDetails, numOfRIs, numOfRelations);
- }
-
- private RestResponse createComponentInstance(ComponentReqDetails containerDetails, ComponentReqDetails compInstOriginDetails, User modifier, ComponentTypeEnum containerComponentTypeEnum, boolean isHighestLevel) throws IOException, Exception {
- ComponentInstanceReqDetails resourceInstanceReqDetails = ElementFactory.getComponentResourceInstance(compInstOriginDetails);
- RestResponse createResourceInstanceResponse = ComponentInstanceRestUtils.createComponentInstance(resourceInstanceReqDetails, modifier, containerDetails.getUniqueId(), containerComponentTypeEnum);
- if (createResourceInstanceResponse.getErrorCode().equals(BaseRestUtils.STATUS_CODE_CREATED) && isHighestLevel) {
- // Add RI Capabilities and Requirements to expected MAP -->
- // expectedVfCapabilities and expectedVfRequirements
- ComponentInstance componentInstance = ResponseParser.parseToObjectUsingMapper(createResourceInstanceResponse.getResponse(), ComponentInstance.class);
- addCompInstReqCapToExpected(componentInstance, containerComponentTypeEnum);
- }
- return createResourceInstanceResponse;
- }
-
- private RestResponse deleteComponentInstance(String compInstUniqueId, ComponentReqDetails containerDetails, User modifier, ComponentTypeEnum componentTypeEnum, boolean isHighestLevel) throws Exception {
- RestResponse deleteResourceInstanceResponse = ComponentInstanceRestUtils.deleteComponentInstance(modifier, containerDetails.getUniqueId(), compInstUniqueId, componentTypeEnum);
- if (deleteResourceInstanceResponse.getErrorCode().equals(BaseRestUtils.STATUS_CODE_DELETE) && isHighestLevel) {
- deleteCompInstReqCapFromExpected(compInstUniqueId);
- }
- return deleteResourceInstanceResponse;
- }
-
- // Create Atomic resource ( VFC/CP/VL)
- protected void createAtomicResource(ResourceReqDetails resourceDetails) throws Exception {
- RestResponse createResourceResponse = ResourceRestUtils.createResource(resourceDetails, sdncDesignerDetails);
- ResourceRestUtils.checkCreateResponse(createResourceResponse);
-
- }
-
- protected void createVF(ResourceReqDetails resourceDetails) throws Exception {
- createVF(resourceDetails, sdncDesignerDetails);
-
- }
-
- protected void createVF(ResourceReqDetails resourceDetails, User sdncModifier) throws Exception {
- RestResponse createVfResponse = ResourceRestUtils.createResource(resourceDetails, sdncModifier);
- ResourceRestUtils.checkCreateResponse(createVfResponse);
- }
-
- protected void createPNF(ResourceReqDetails resourceDetails) throws Exception {
- createVF(resourceDetails, sdncDesignerDetails);
- }
-
- protected void createService(ServiceReqDetails serviceDetails) throws Exception {
- createService(serviceDetails, sdncDesignerDetails);
- }
-
- protected void createService(ServiceReqDetails serviceDetails, User sdncModifier) throws Exception {
- RestResponse createServiceResponse = ServiceRestUtils.createService(serviceDetails, sdncModifier);
- ResourceRestUtils.checkCreateResponse(createServiceResponse);
- }
-
- protected void createProduct(ProductReqDetails productDetails) throws Exception {
- createProduct(productDetails, sdncPmDetails1);
- }
-
- protected void createProduct(ProductReqDetails productDetails, User sdncModifier) throws Exception {
- RestResponse createProductResponse = ProductRestUtils.createProduct(productDetails, sdncModifier);
- ResourceRestUtils.checkCreateResponse(createProductResponse);
- }
-
- protected RestResponse associateComponentInstancesForService(RequirementCapabilityRelDef requirementDef, ComponentReqDetails containerDetails, User user) throws IOException {
-
- RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(requirementDef, user, containerDetails.getUniqueId(), ComponentTypeEnum.SERVICE);
- ResourceRestUtils.checkSuccess(associateInstances);
- deleteAssociatedFromExpected(requirementDef);
-
- return associateInstances;
- }
-
- private void deleteAssociatedFromExpected(RequirementCapabilityRelDef requirementDef) {
- // removing from requirements
- RelationshipInfo relationship = requirementDef.getRelationships().get(0).getRelation();
- String type = relationship.getRelationship().getType();
- String fromId = requirementDef.getFromNode();
- List<RequirementDefinition> reqList = expectedContainerRequirements.get(type);
- List<CapabilityDefinition> capList = expectedContainerCapabilities.get(type);
- RequirementDefinition toDelete = null;
- if (reqList != null) {
- for (RequirementDefinition reqDef : reqList) {
- if (reqDef.getOwnerId().equals(fromId)) {
- toDelete = reqDef;
- }
- }
- if (toDelete != null) {
- reqList.remove(toDelete);
- if (reqList.isEmpty()) {
- expectedContainerRequirements.remove(type);
- }
- String ownerId = toDelete.getOwnerId();
- Map<String, List<RequirementDefinition>> map = removedRequirements.get(ownerId);
- if (map == null) {
- map = new HashMap<>();
- removedRequirements.put(ownerId, map);
- }
- List<RequirementDefinition> list = map.get(type);
- if (list == null) {
- list = new ArrayList<>();
- map.put(type, list);
- }
- list.add(toDelete);
- }
- }
-
- for (CapabilityDefinition capabilityDefinition : capList) {
- if (capabilityDefinition.getType().equals(type)) {
- int minOccurrences = Integer.parseInt(capabilityDefinition.getMinOccurrences()) - 1;
- if (minOccurrences < 0)
- minOccurrences = 0;
- String minOccurrencesString = Integer.toString(minOccurrences);
- capabilityDefinition.setMinOccurrences(minOccurrencesString);
- if (!capabilityDefinition.getMaxOccurrences().equals("UNBOUNDED")) {
- int maxOccurrences = Integer.parseInt(capabilityDefinition.getMaxOccurrences()) - 1;
- if (maxOccurrences < 0)
- maxOccurrences = 0;
- String maxOccurrencesString = Integer.toString(maxOccurrences);
- capabilityDefinition.setMaxOccurrences(maxOccurrencesString);
- }
- }
- }
- expectedContainerCapabilities.put(type, capList);
- }
-
- protected void dissociateComponentInstancesForService(RequirementCapabilityRelDef requirementDef, ComponentReqDetails containerDetails, User user) throws IOException {
-
- RestResponse dissociateInstances = ComponentInstanceRestUtils.dissociateInstances(requirementDef, user, containerDetails.getUniqueId(), ComponentTypeEnum.SERVICE);
- ResourceRestUtils.checkSuccess(dissociateInstances);
- addDissociatedToExpected(requirementDef);
- }
-
- protected void fulfillCpRequirement(ComponentReqDetails component, String cpCompInstId, String cpReqFulfillerCompInstId, String cpReqFulfillerOwnerId, User user, ComponentTypeEnum containerCompType) throws IOException {
- // Fulfilling cp's "binding" requirement - US626240
- String requirementName = "binding";
- String capType = "tosca.capabilities.network.Bindable";
- RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(user, component);
- ResourceRestUtils.checkSuccess(getResourceResponse);
- CapReqDef capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
- List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(capType);
- List<RequirementDefinition> reqList = capReqDef.getRequirements().get(capType);
- RequirementCapabilityRelDef reqCapRelation = ElementFactory.getReqCapRelation(cpCompInstId, cpReqFulfillerCompInstId, cpCompInstId, cpReqFulfillerOwnerId, capType, requirementName, capList, reqList);
- RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(reqCapRelation, user, component.getUniqueId(), containerCompType);
- ResourceRestUtils.checkSuccess(associateInstances);
- }
-
- protected void consumeVlCapability(ComponentReqDetails component, String vlCapConsumerCompInstId, String vlCompInstId, String vlCapConsumerOwnerId, User user, ComponentTypeEnum containerCompType) throws IOException {
- // Consuming vl's "link" capability - US626240
- String requirementName = "link";
- String capType = "tosca.capabilities.network.Linkable";
- RestResponse getResourceResponse = ComponentRestUtils.getComponentRequirmentsCapabilities(user, component);
- ResourceRestUtils.checkSuccess(getResourceResponse);
- CapReqDef capReqDef = ResponseParser.parseToObject(getResourceResponse.getResponse(), CapReqDef.class);
- List<CapabilityDefinition> capList = capReqDef.getCapabilities().get(capType);
- List<RequirementDefinition> reqList = capReqDef.getRequirements().get(capType);
- RequirementCapabilityRelDef reqCapRelation = ElementFactory.getReqCapRelation(vlCapConsumerCompInstId, vlCompInstId, vlCapConsumerOwnerId, vlCompInstId, capType, requirementName, capList, reqList);
- RestResponse associateInstances = ComponentInstanceRestUtils.associateInstances(reqCapRelation, user, component.getUniqueId(), containerCompType);
- ResourceRestUtils.checkSuccess(associateInstances);
- }
-
- private void addDissociatedToExpected(RequirementCapabilityRelDef requirementDef) {
- // adding to requirements
- RelationshipInfo relationship = requirementDef.getRelationships().get(0).getRelation();
- String type = relationship.getRelationship().getType();
- String fromId = requirementDef.getFromNode();
- Map<String, List<RequirementDefinition>> map = removedRequirements.get(fromId);
- if (map != null) {
- List<RequirementDefinition> list = map.get(type);
- if (list != null && !list.isEmpty()) {
- List<RequirementDefinition> reqList = expectedContainerRequirements.get(type);
- if (reqList == null) {
- reqList = new ArrayList<>();
- expectedContainerRequirements.put(type, reqList);
- }
- reqList.add(list.remove(0));
- }
- }
-
- List<CapabilityDefinition> capList = expectedContainerCapabilities.get(type);
-
- for (CapabilityDefinition capabilityDefinition : capList) {
- if (capabilityDefinition.getType().equals(type)) {
- int minOccurrences = Integer.parseInt(capabilityDefinition.getMinOccurrences()) + 1;
- String minOccurrencesString = Integer.toString(minOccurrences);
- capabilityDefinition.setMinOccurrences(minOccurrencesString);
- if (!capabilityDefinition.getMaxOccurrences().equals("UNBOUNDED")) {
- int maxOccurrences = Integer.parseInt(capabilityDefinition.getMaxOccurrences()) + 1;
- String maxOccurrencesString = Integer.toString(maxOccurrences);
- capabilityDefinition.setMaxOccurrences(maxOccurrencesString);
- }
- }
- }
- expectedContainerCapabilities.put(type, capList);
- }
-}