diff options
Diffstat (limited to 'ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/AddComponentInstancesArtifactsInCsar.java')
-rw-r--r-- | ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/AddComponentInstancesArtifactsInCsar.java | 568 |
1 files changed, 292 insertions, 276 deletions
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/AddComponentInstancesArtifactsInCsar.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/AddComponentInstancesArtifactsInCsar.java index c8f281f5d4..fd23fbed3a 100644 --- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/AddComponentInstancesArtifactsInCsar.java +++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/US/AddComponentInstancesArtifactsInCsar.java @@ -7,9 +7,9 @@ * 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. @@ -21,9 +21,18 @@ package org.openecomp.sdc.ci.tests.US; import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.http.HttpStatus; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; -import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.ci.tests.datatypes.*; +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.Resource; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.ci.tests.datatypes.AmdocsLicenseMembers; +import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails; +import org.openecomp.sdc.ci.tests.datatypes.HeatMetaFirstLevelDefinition; +import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails; +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.UserRoleEnum; import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse; @@ -45,280 +54,287 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.io.File; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Random; public class AddComponentInstancesArtifactsInCsar extends SetupCDTest { - public static final String DEPLOYMENT = "Deployment"; - public static final String INFORMATIONAL = "Informational"; - private String filePath; - @BeforeClass - public void beforeClass(){ - filePath = System.getProperty("filePath"); - if (filePath == null && System.getProperty("os.name").contains("Windows")) { - filePath = FileHandling.getResourcesFilesPath() + "AddComponentInstancesArtifactsInCsar"+ File.separator; - } - else if(filePath.isEmpty() && !System.getProperty("os.name").contains("Windows")){ - filePath = FileHandling.getBasePath() + File.separator + "Files" + File.separator + "AddComponentInstancesArtifactsInCsar"+ File.separator; - } - } - - // US847439 - Story [BE] - Add Component Instance's artifacts in CSAR - // TC1521795 - VF CSAR - The Flow - @Test - public void vfAndServiceCsarTheFlow() throws Exception{ - ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser()); - - String vnfFile = "FDNT.zip"; - String snmpFile = "Fault-alarms-ASDC-vprobes-vLB.zip"; - - AmdocsLicenseMembers amdocsLicenseMembers = VendorLicenseModelRestUtils.createVendorLicense(getUser()); - ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource();//getResourceReqDetails(ComponentConfigurationTypeEnum.DEFAULT); - VendorSoftwareProductObject createVSP = VendorSoftwareProductRestUtils.createVSP(resourceReqDetails, vnfFile, filePath, getUser(), amdocsLicenseMembers); - String vspName = createVSP.getName(); - resourceMetaData.setName(vspName); - VendorSoftwareProductRestUtils.addVFCArtifacts(filePath, snmpFile, null, createVSP, getUser()); - VendorSoftwareProductRestUtils.prepareVspForUse(getUser(), createVSP, true); - - HomePage.showVspRepository(); - OnboardingUiUtils.importVSP(createVSP); - resourceMetaData.setVersion("0.1"); - Resource vfResource = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, resourceMetaData.getName(), resourceMetaData.getVersion()); - - Map<String, Object> artifacts = getArtifactsOfComponentAndComponentsInstance(vfResource); - - List<ImmutablePair<ComponentInstance, ArtifactDefinition>> artifactsUploadedToComponentInstance = new LinkedList<>(); - Random random = new Random(); - for(int i=0; i<random.nextInt(10) + 10; i++) { - ImmutablePair<ComponentInstance, ArtifactDefinition> uploadArtifactOnRandomVfc = uploadArtifactOnRandomRI(vfResource); - - if(uploadArtifactOnRandomVfc.getRight().getArtifactName() != null) { - artifactsUploadedToComponentInstance.add(uploadArtifactOnRandomVfc); - } - } - - if(!artifactsUploadedToComponentInstance.isEmpty()) { - Map<String, Object> artifactsOfResourceInstance = getArtifactsOfResourceInstance(artifactsUploadedToComponentInstance); - artifacts.put("Resources", artifactsOfResourceInstance); - } - - ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen(); - ToscaArtifactsPage.downloadCsar(); - File latestFilefromDir = FileHandling.getLastModifiedFileNameFromDir(); - Map<String, Object> combineHeatArtifacstWithFolderArtifacsToMap = ArtifactFromCsar.getVFCArtifacts(latestFilefromDir.getAbsolutePath()); - - compareArtifactFromFileStructureToArtifactsFromJavaObject(artifacts, combineHeatArtifacstWithFolderArtifacsToMap); - - } - - public void compareArtifactFromFileStructureToArtifactsFromJavaObject(Map<String, Object> artifactFromJavaObject, Map<String, Object> artifactsFromFileStructure) { - for(String key: artifactFromJavaObject.keySet()) { - if((!key.equals(DEPLOYMENT)) && (!key.equals(INFORMATIONAL))) { - Map<String, Object> newArtifactFromJavaObject = (Map<String, Object>) artifactFromJavaObject.get(key); - Map<String, Object> newArtifactsFromFileStructure = (Map<String, Object>) artifactsFromFileStructure.get(key); - compareArtifactFromFileStructureToArtifactsFromJavaObject(newArtifactFromJavaObject, newArtifactsFromFileStructure); - } else { - compareArtifacts(artifactFromJavaObject.get(key), artifactsFromFileStructure.get(key)); - } - } - } - - - private void compareArtifacts(Object artifactFromJavaObject, Object artifactsFromFileStructure) { - Map<String, List<String>> artifactsMap = (Map<String, List<String>>) artifactFromJavaObject; - List<HeatMetaFirstLevelDefinition> artifactsList = (List<HeatMetaFirstLevelDefinition>) artifactsFromFileStructure; - - for(HeatMetaFirstLevelDefinition heatMetaFirstLevelDefinition: artifactsList) { - Assert.assertTrue(artifactsMap.get(heatMetaFirstLevelDefinition.getType()).contains(heatMetaFirstLevelDefinition.getFileName()), - "Expected that artifacts will be the same. Not exists: " + heatMetaFirstLevelDefinition.getFileName() + " of type: " + heatMetaFirstLevelDefinition.getType()); - } - - for(String key: artifactsMap.keySet()) { - List<String> artifacts = artifactsMap.get(key); - - for(HeatMetaFirstLevelDefinition heatMetaFirstLevelDefinition: artifactsList) { - if(heatMetaFirstLevelDefinition.getType().equals(key)) { - if(artifacts.contains(heatMetaFirstLevelDefinition.getFileName())) { - artifacts.remove(heatMetaFirstLevelDefinition.getFileName()); - } - } - } - - Assert.assertEquals(artifacts.size(), 0, "Expected that all artifacts equal. There is artifacts which not equal: " + artifacts.toString()); - } - } - - - public Map<String, Object> getArtifactsOfResourceInstance(List<ImmutablePair<ComponentInstance, ArtifactDefinition>> riList) { - Map<String, Object> artifacts = new HashMap<>(); - - for(ImmutablePair<ComponentInstance, ArtifactDefinition> ri: riList) { - ArtifactDefinition artifactDefinition = ri.getRight(); - ComponentInstance componentInstance = ri.getLeft(); - if(artifacts.containsKey(componentInstance.getNormalizedName())) { - if( ((Map<String, ArrayList<String>>)((Map<String, Object>)artifacts.get(componentInstance.getNormalizedName())).get(DEPLOYMENT)).containsKey(artifactDefinition.getArtifactType()) ) { - - ((Map<String, ArrayList<String>>)((Map<String, Object>) artifacts.get(componentInstance.getNormalizedName())).get(DEPLOYMENT)).get(artifactDefinition.getArtifactType()).add(artifactDefinition.getArtifactName()); - - } else { - ArrayList<String> list = new ArrayList<>(); - list.add(artifactDefinition.getArtifactName()); - ((Map<String, ArrayList<String>>)((Map<String, Object>) artifacts.get(componentInstance.getNormalizedName())).get(DEPLOYMENT)).put(artifactDefinition.getArtifactType(), list); - } - - } else { - try { - - - ArrayList<String> list = new ArrayList<>(); - list.add(artifactDefinition.getArtifactName()); - - Map<String, ArrayList<String>> map = new HashMap<>(); - map.put(artifactDefinition.getArtifactType(), list); - - Map<String, Map<String, ArrayList<String>>> addMap = new HashMap<>(); - addMap.put(DEPLOYMENT, map); - - artifacts.put(componentInstance.getNormalizedName(), addMap); - } catch (Exception e) { - Assert.fail("Artifact name is null for componentInstance: " + componentInstance.getNormalizedName()); - } - } - } - return artifacts; - } - - public Map<String, Object> getArtifactsOfComponentAndComponentsInstance(Component component) { - Map<String, Object> artifacts = getArtifactsOfComponent(component); - - for(ComponentInstance componentInstance: component.getComponentInstances()) { - Map<String, Object> artifactsOfComponentInstance = getArtifactsOfComponentInstance(componentInstance); - if(!artifactsOfComponentInstance.isEmpty()) { - artifacts.put(componentInstance.getToscaComponentName() + "." + componentInstance.getComponentVersion(), artifactsOfComponentInstance); - } - } - - return artifacts; - } - - public Map<String, Object> getArtifactsOfComponentInstance(ComponentInstance componentInstance) { - Map<String, Object> map = new HashMap<>(); - - if(componentInstance.getArtifacts() != null) { - Map<String, Object> informationalArtifacts = getArtifacts(componentInstance.getArtifacts()); - if(!informationalArtifacts.isEmpty()) { - map.put(INFORMATIONAL, informationalArtifacts); - } - } - - if(componentInstance.getDeploymentArtifacts() != null) { - Map<String, Object> deploymentArtifacts = getArtifacts(componentInstance.getDeploymentArtifacts()); - if(!deploymentArtifacts.isEmpty()) { - map.put(DEPLOYMENT, deploymentArtifacts); - } - } - - return map; - } - - public Map<String, Object> getArtifactsOfComponent(Component component) { - Map<String, Object> map = new HashMap<>(); - - if(component.getArtifacts() != null) { - Map<String, Object> informationalArtifacts = getArtifacts(component.getArtifacts()); - if(!informationalArtifacts.isEmpty()) { - map.put(INFORMATIONAL, informationalArtifacts); - } - } - - if(component.getDeploymentArtifacts() != null) { - Map<String, Object> deploymentArtifacts = getArtifacts(component.getDeploymentArtifacts()); - if(!deploymentArtifacts.isEmpty()) { - map.put(DEPLOYMENT, deploymentArtifacts); - } - } - - return map; - } - - public Map<String, Object> getArtifacts(Map<String, ArtifactDefinition> artifacts) { - Map<String, Object> map = new HashMap<>(); - - for(String artifact: artifacts.keySet()) { - ArtifactDefinition artifactDefinition = artifacts.get(artifact); - if((artifactDefinition.getEsId() != null) && (!artifactDefinition.getEsId().equals("")) && (!artifactDefinition.getArtifactType().equals("HEAT_ENV"))) { - if(map.containsKey(artifactDefinition.getArtifactType())) { - ((List<String>) map.get(artifactDefinition.getArtifactType())).add(artifactDefinition.getArtifactName()); - } else { - ArrayList<String> list = new ArrayList<>(); - list.add(artifactDefinition.getArtifactName()); - map.put(artifactDefinition.getArtifactType(), list); - } - } - } - - return map; - } - - public ImmutablePair<ComponentInstance, ArtifactDefinition> uploadArtifactOnRandomRI(Component component) throws Exception { - ArtifactReqDetails artifactReqDetails = getRandomArtifact(); - Random random = new Random(); - int randInt = random.nextInt(component.getComponentInstances().size()); - User defaultUser = ElementFactory.getDefaultUser(getRole()); - ComponentInstance componentInstance = component.getComponentInstances().get(randInt); - - RestResponse uploadArtifactRestResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(component, defaultUser, artifactReqDetails, componentInstance); - - // Check response of external API - Integer responseCode = uploadArtifactRestResponse.getErrorCode(); - Assert.assertEquals(responseCode, (Integer)200, "Response code is not correct."); - - ImmutablePair<ComponentInstance, ArtifactDefinition> pair = ImmutablePair.of(componentInstance, ResponseParser.convertArtifactDefinitionResponseToJavaObject(uploadArtifactRestResponse.getResponse())); - - return pair; - } - - public ImmutablePair<ComponentInstance, ArtifactDefinition> uploadArtifactOnRandomRI(Resource resource) throws Exception { - ArtifactReqDetails artifactReqDetails = getRandomVfcArtifact(); - Random random = new Random(); - int randInt = random.nextInt(resource.getComponentInstances().size()); - User defaultUser = ElementFactory.getDefaultUser(getRole()); - ComponentInstance componentInstance = resource.getComponentInstances().get(randInt); - - RestResponse uploadArtifactRestResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(resource, defaultUser, artifactReqDetails, componentInstance); - // Check response of external API - Integer responseCode = uploadArtifactRestResponse.getErrorCode(); - Assert.assertEquals(responseCode, (Integer)200, "Response code is not correct."); - ImmutablePair<ComponentInstance, ArtifactDefinition> pair = ImmutablePair.of(componentInstance, ResponseParser.convertArtifactDefinitionResponseToJavaObject(uploadArtifactRestResponse.getResponse())); - return pair; - } - - public ArtifactReqDetails getRandomArtifact() throws Exception { - List<String> artifactsTypeList = Arrays.asList("Other"); - return getRandomArtifact(artifactsTypeList); - } - - public ArtifactReqDetails getRandomVfcArtifact() throws Exception { - List<String> vfcArtifactsTypeList = Arrays.asList( - ArtifactTypeEnum.DCAE_INVENTORY_TOSCA.getType(), - ArtifactTypeEnum.DCAE_INVENTORY_JSON.getType(), - ArtifactTypeEnum.DCAE_INVENTORY_POLICY.getType(), - ArtifactTypeEnum.DCAE_INVENTORY_DOC.getType(), - ArtifactTypeEnum.DCAE_INVENTORY_BLUEPRINT.getType(), - ArtifactTypeEnum.DCAE_INVENTORY_EVENT.getType(), - ArtifactTypeEnum.SNMP_POLL.getType(), - ArtifactTypeEnum.SNMP_TRAP.getType()); - return getRandomArtifact(vfcArtifactsTypeList); - } - - public ArtifactReqDetails getRandomArtifact(List<String> artifactType) throws Exception { - Random random = new Random(); - return ElementFactory.getArtifactByType("ci", artifactType.get(random.nextInt(artifactType.size())), true, false); - } - - @Override - protected UserRoleEnum getRole() { - return UserRoleEnum.DESIGNER; - } + public static final String DEPLOYMENT = "Deployment"; + public static final String INFORMATIONAL = "Informational"; + private String filePath; + + @BeforeClass + public void beforeClass() { + filePath = System.getProperty("filePath"); + if (filePath == null && System.getProperty("os.name").contains("Windows")) { + filePath = FileHandling.getResourcesFilesPath() + "AddComponentInstancesArtifactsInCsar" + File.separator; + } else if (filePath.isEmpty() && !System.getProperty("os.name").contains("Windows")) { + filePath = FileHandling.getBasePath() + File.separator + "Files" + File.separator + "AddComponentInstancesArtifactsInCsar" + File.separator; + } + } + + // US847439 - Story [BE] - Add Component Instance's artifacts in CSAR + // TC1521795 - VF CSAR - The Flow + @Test + public void vfAndServiceCsarTheFlow() throws Exception { + ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser()); + + String vnfFile = "FDNT.zip"; + String snmpFile = "Fault-alarms-ASDC-vprobes-vLB.zip"; + + AmdocsLicenseMembers amdocsLicenseMembers = VendorLicenseModelRestUtils.createVendorLicense(getUser()); + ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource();//getResourceReqDetails(ComponentConfigurationTypeEnum.DEFAULT); + VendorSoftwareProductObject createVSP = VendorSoftwareProductRestUtils.createVSP(resourceReqDetails, vnfFile, filePath, getUser(), amdocsLicenseMembers); + String vspName = createVSP.getName(); + resourceMetaData.setName(vspName); + VendorSoftwareProductRestUtils.addVFCArtifacts(filePath, snmpFile, null, createVSP, getUser()); + VendorSoftwareProductRestUtils.prepareVspForUse(getUser(), createVSP, true); + + HomePage.showVspRepository(); + OnboardingUiUtils.importVSP(createVSP); + resourceMetaData.setVersion("0.1"); + Resource vfResource = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, resourceMetaData.getName(), resourceMetaData.getVersion()); + + Map<String, Object> artifacts = getArtifactsOfComponentAndComponentsInstance(vfResource); + + List<ImmutablePair<ComponentInstance, ArtifactDefinition>> artifactsUploadedToComponentInstance = new LinkedList<>(); + Random random = new Random(); + final int randomIntForLoop = random.nextInt(10) + 10; + for (int i = 0; i < randomIntForLoop; i++) { + ImmutablePair<ComponentInstance, ArtifactDefinition> uploadArtifactOnRandomVfc = uploadArtifactOnRandomRI(vfResource); + + if (uploadArtifactOnRandomVfc.getRight().getArtifactName() != null) { + artifactsUploadedToComponentInstance.add(uploadArtifactOnRandomVfc); + } + } + + if (!artifactsUploadedToComponentInstance.isEmpty()) { + Map<String, Object> artifactsOfResourceInstance = getArtifactsOfResourceInstance(artifactsUploadedToComponentInstance); + artifacts.put("Resources", artifactsOfResourceInstance); + } + + ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen(); + ToscaArtifactsPage.downloadCsar(); + File latestFilefromDir = FileHandling.getLastModifiedFileNameFromDir(); + Map<String, Object> combineHeatArtifacstWithFolderArtifacsToMap = ArtifactFromCsar.getVFCArtifacts(latestFilefromDir.getAbsolutePath()); + + compareArtifactFromFileStructureToArtifactsFromJavaObject(artifacts, combineHeatArtifacstWithFolderArtifacsToMap); + + } + + public void compareArtifactFromFileStructureToArtifactsFromJavaObject(Map<String, Object> artifactFromJavaObject, Map<String, Object> artifactsFromFileStructure) { + for (String key : artifactFromJavaObject.keySet()) { + if ((!key.equals(DEPLOYMENT)) && (!key.equals(INFORMATIONAL))) { + Map<String, Object> newArtifactFromJavaObject = (Map<String, Object>) artifactFromJavaObject.get(key); + Map<String, Object> newArtifactsFromFileStructure = (Map<String, Object>) artifactsFromFileStructure.get(key); + compareArtifactFromFileStructureToArtifactsFromJavaObject(newArtifactFromJavaObject, newArtifactsFromFileStructure); + } else { + compareArtifacts(artifactFromJavaObject.get(key), artifactsFromFileStructure.get(key)); + } + } + } + + + private void compareArtifacts(Object artifactFromJavaObject, Object artifactsFromFileStructure) { + Map<String, List<String>> artifactsMap = (Map<String, List<String>>) artifactFromJavaObject; + List<HeatMetaFirstLevelDefinition> artifactsList = (List<HeatMetaFirstLevelDefinition>) artifactsFromFileStructure; + + for (HeatMetaFirstLevelDefinition heatMetaFirstLevelDefinition : artifactsList) { + Assert.assertTrue(artifactsMap.get(heatMetaFirstLevelDefinition.getType()).contains(heatMetaFirstLevelDefinition.getFileName()), + "Expected that artifacts will be the same. Not exists: " + heatMetaFirstLevelDefinition.getFileName() + " of type: " + heatMetaFirstLevelDefinition.getType()); + } + + for (String key : artifactsMap.keySet()) { + List<String> artifacts = artifactsMap.get(key); + + for (HeatMetaFirstLevelDefinition heatMetaFirstLevelDefinition : artifactsList) { + if (heatMetaFirstLevelDefinition.getType().equals(key)) { + if (artifacts.contains(heatMetaFirstLevelDefinition.getFileName())) { + artifacts.remove(heatMetaFirstLevelDefinition.getFileName()); + } + } + } + + Assert.assertEquals(artifacts.size(), 0, "Expected that all artifacts equal. There is artifacts which not equal: " + artifacts.toString()); + } + } + + + public Map<String, Object> getArtifactsOfResourceInstance(List<ImmutablePair<ComponentInstance, ArtifactDefinition>> riList) { + Map<String, Object> artifacts = new HashMap<>(); + + for (ImmutablePair<ComponentInstance, ArtifactDefinition> ri : riList) { + ArtifactDefinition artifactDefinition = ri.getRight(); + ComponentInstance componentInstance = ri.getLeft(); + if (artifacts.containsKey(componentInstance.getNormalizedName())) { + if (((Map<String, ArrayList<String>>) ((Map<String, Object>) artifacts.get(componentInstance.getNormalizedName())).get(DEPLOYMENT)).containsKey(artifactDefinition.getArtifactType())) { + + ((Map<String, ArrayList<String>>) ((Map<String, Object>) artifacts.get(componentInstance.getNormalizedName())).get(DEPLOYMENT)).get(artifactDefinition.getArtifactType()).add(artifactDefinition.getArtifactName()); + + } else { + ArrayList<String> list = new ArrayList<>(); + list.add(artifactDefinition.getArtifactName()); + ((Map<String, ArrayList<String>>) ((Map<String, Object>) artifacts.get(componentInstance.getNormalizedName())).get(DEPLOYMENT)).put(artifactDefinition.getArtifactType(), list); + } + + } else { + try { + + + ArrayList<String> list = new ArrayList<>(); + list.add(artifactDefinition.getArtifactName()); + + Map<String, ArrayList<String>> map = new HashMap<>(); + map.put(artifactDefinition.getArtifactType(), list); + + Map<String, Map<String, ArrayList<String>>> addMap = new HashMap<>(); + addMap.put(DEPLOYMENT, map); + + artifacts.put(componentInstance.getNormalizedName(), addMap); + } catch (Exception e) { + Assert.fail("Artifact name is null for componentInstance: " + componentInstance.getNormalizedName()); + } + } + } + return artifacts; + } + + public Map<String, Object> getArtifactsOfComponentAndComponentsInstance(Component component) { + Map<String, Object> artifacts = getArtifactsOfComponent(component); + + for (ComponentInstance componentInstance : component.getComponentInstances()) { + Map<String, Object> artifactsOfComponentInstance = getArtifactsOfComponentInstance(componentInstance); + if (!artifactsOfComponentInstance.isEmpty()) { + artifacts.put(componentInstance.getToscaComponentName() + "." + componentInstance.getComponentVersion(), artifactsOfComponentInstance); + } + } + + return artifacts; + } + + public Map<String, Object> getArtifactsOfComponentInstance(ComponentInstance componentInstance) { + Map<String, Object> map = new HashMap<>(); + + if (componentInstance.getArtifacts() != null) { + Map<String, Object> informationalArtifacts = getArtifacts(componentInstance.getArtifacts()); + if (!informationalArtifacts.isEmpty()) { + map.put(INFORMATIONAL, informationalArtifacts); + } + } + + if (componentInstance.getDeploymentArtifacts() != null) { + Map<String, Object> deploymentArtifacts = getArtifacts(componentInstance.getDeploymentArtifacts()); + if (!deploymentArtifacts.isEmpty()) { + map.put(DEPLOYMENT, deploymentArtifacts); + } + } + + return map; + } + + public Map<String, Object> getArtifactsOfComponent(Component component) { + Map<String, Object> map = new HashMap<>(); + + if (component.getArtifacts() != null) { + Map<String, Object> informationalArtifacts = getArtifacts(component.getArtifacts()); + if (!informationalArtifacts.isEmpty()) { + map.put(INFORMATIONAL, informationalArtifacts); + } + } + + if (component.getDeploymentArtifacts() != null) { + Map<String, Object> deploymentArtifacts = getArtifacts(component.getDeploymentArtifacts()); + if (!deploymentArtifacts.isEmpty()) { + map.put(DEPLOYMENT, deploymentArtifacts); + } + } + + return map; + } + + public Map<String, Object> getArtifacts(Map<String, ArtifactDefinition> artifacts) { + Map<String, Object> map = new HashMap<>(); + + for (String artifact : artifacts.keySet()) { + ArtifactDefinition artifactDefinition = artifacts.get(artifact); + if ((artifactDefinition.getEsId() != null) && (!artifactDefinition.getEsId().equals("")) && (!artifactDefinition.getArtifactType().equals("HEAT_ENV"))) { + if (map.containsKey(artifactDefinition.getArtifactType())) { + ((List<String>) map.get(artifactDefinition.getArtifactType())).add(artifactDefinition.getArtifactName()); + } else { + ArrayList<String> list = new ArrayList<>(); + list.add(artifactDefinition.getArtifactName()); + map.put(artifactDefinition.getArtifactType(), list); + } + } + } + + return map; + } + + public ImmutablePair<ComponentInstance, ArtifactDefinition> uploadArtifactOnRandomRI(Component component) throws Exception { + ArtifactReqDetails artifactReqDetails = getRandomArtifact(); + Random random = new Random(); + int randInt = random.nextInt(component.getComponentInstances().size()); + User defaultUser = ElementFactory.getDefaultUser(getRole()); + ComponentInstance componentInstance = component.getComponentInstances().get(randInt); + + RestResponse uploadArtifactRestResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(component, defaultUser, artifactReqDetails, componentInstance); + + // Check response of external API + Integer responseCode = uploadArtifactRestResponse.getErrorCode(); + Assert.assertEquals(responseCode, (Integer) HttpStatus.SC_OK, "Response code is not correct."); + + ImmutablePair<ComponentInstance, ArtifactDefinition> pair = ImmutablePair.of(componentInstance, ResponseParser.convertArtifactDefinitionResponseToJavaObject(uploadArtifactRestResponse.getResponse())); + + return pair; + } + + public ImmutablePair<ComponentInstance, ArtifactDefinition> uploadArtifactOnRandomRI(Resource resource) throws Exception { + ArtifactReqDetails artifactReqDetails = getRandomVfcArtifact(); + Random random = new Random(); + int randInt = random.nextInt(resource.getComponentInstances().size()); + User defaultUser = ElementFactory.getDefaultUser(getRole()); + ComponentInstance componentInstance = resource.getComponentInstances().get(randInt); + + RestResponse uploadArtifactRestResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(resource, defaultUser, artifactReqDetails, componentInstance); + // Check response of external API + Integer responseCode = uploadArtifactRestResponse.getErrorCode(); + Assert.assertEquals(responseCode, (Integer) HttpStatus.SC_OK, "Response code is not correct."); + ImmutablePair<ComponentInstance, ArtifactDefinition> pair = ImmutablePair.of(componentInstance, ResponseParser.convertArtifactDefinitionResponseToJavaObject(uploadArtifactRestResponse.getResponse())); + return pair; + } + + public ArtifactReqDetails getRandomArtifact() throws Exception { + List<String> artifactsTypeList = Arrays.asList("Other"); + return getRandomArtifact(artifactsTypeList); + } + + public ArtifactReqDetails getRandomVfcArtifact() throws Exception { + List<String> vfcArtifactsTypeList = Arrays.asList( + ArtifactTypeEnum.DCAE_INVENTORY_TOSCA.getType(), + ArtifactTypeEnum.DCAE_INVENTORY_JSON.getType(), + ArtifactTypeEnum.DCAE_INVENTORY_POLICY.getType(), + ArtifactTypeEnum.DCAE_INVENTORY_DOC.getType(), + ArtifactTypeEnum.DCAE_INVENTORY_BLUEPRINT.getType(), + ArtifactTypeEnum.DCAE_INVENTORY_EVENT.getType(), + ArtifactTypeEnum.SNMP_POLL.getType(), + ArtifactTypeEnum.SNMP_TRAP.getType()); + return getRandomArtifact(vfcArtifactsTypeList); + } + + public ArtifactReqDetails getRandomArtifact(List<String> artifactType) throws Exception { + Random random = new Random(); + return ElementFactory.getArtifactByType("ci", artifactType.get(random.nextInt(artifactType.size())), true, false); + } + + @Override + protected UserRoleEnum getRole() { + return UserRoleEnum.DESIGNER; + } } |